aiograpi
We recommend using our services:
- LamaTok for TikTok API π₯
- HikerAPI for Instagram API β‘β‘β‘
- DataLikers for Instagram Datasets π
Asynchronous Instagram Private API wrapper 2024. Use the most recent version of the API from Instagram, which was obtained using reverse-engineering with Charles Proxy and Proxyman.
Instagram API valid for 27 Feb 2024 (last reverse-engineering check)
Support Python >= 3.10
For any other languages (e.g. C++, C#, F#, D, Golang, Erlang, Elixir, Nim, Haskell, Lisp, Closure, Julia, R, Java, Kotlin, Scala, OCaml, JavaScript, Crystal, Ruby, Rust, Swift, Objective-C, Visual Basic, .NET, Pascal, Perl, Lua, PHP and others), I suggest using instagrapi-rest
Support Chat in Telegram and GitHub Discussions
Features
- Performs Public API (web, anonymous) or Private API (mobile app, authorized) requests depending on the situation (to avoid Instagram limits)
- Login by username and password, including 2FA and by sessionid
- Challenge Resolver have Email and SMS handlers
- Support upload a Photo, Video, IGTV, Reels, Albums and Stories
- Support work with User, Media, Comment, Insights, Collections, Location (Place), Hashtag and Direct Message objects
- Like, Follow, Edit account (Bio) and much more else
- Insights by account, posts and stories
- Build stories with custom background, font animation, swipe up link and mention users
- In the next release, account registration and captcha passing will appear
Example
Basic Usage
from aiograpi import Client
cl = Client()
await cl.login(ACCOUNT_USERNAME, ACCOUNT_PASSWORD)
user_id = await cl.user_id_from_username("example")
medias = await cl.user_medias(user_id, 20)
The full example
from aiograpi import Client
from aiograpi.types import StoryMention, StoryMedia, StoryLink, StoryHashtag
cl = Client()
await cl.login(USERNAME, PASSWORD, verification_code="<2FA CODE HERE>")
media_pk = await cl.media_pk_from_url('https://www.instagram.com/p/CGgDsi7JQdS/')
media_path = await cl.video_download(media_pk)
example = await cl.user_info_by_username('example')
hashtag = await cl.hashtag_info('dhbastards')
await cl.video_upload_to_story(
media_path,
"Credits @example",
mentions=[StoryMention(user=example, x=0.49892962, y=0.703125, width=0.8333333333333334, height=0.125)],
links=[StoryLink(webUri='https://github.com/subzeroid/aiograpi')],
hashtags=[StoryHashtag(hashtag=hashtag, x=0.23, y=0.32, width=0.5, height=0.22)],
medias=[StoryMedia(media_pk=media_pk, x=0.5, y=0.5, width=0.6, height=0.8)]
)
Requests
Public
orGraphql
(anonymous request via web api) methods have a suffix_gql
Private
(authorized request via mobile api) methods have_v1
suffix
The first request to fetch media/user is public
(anonymous), if instagram raise exception, then use private
(authorized). Example (pseudo-code):
async def media_info(media_pk):
try:
return await self.media_info_gql(media_pk)
except ClientError as e:
# Restricted Video: This video is not available in your country.
# Or media from private account
return await self.media_info_v1(media_pk)
Detailed Documentation
To learn more about the various ways aiograpi
can be used, read the Usage Guide page.
- Getting Started
- Usage Guide
- Interactions
Media
- Publication (also called post): Photo, Video, Album, IGTV and ReelsResource
- Part of Media (for albums)MediaOembed
- Short version of MediaAccount
- Full private info for your account (e.g. email, phone_number)TOTP
- 2FA TOTP helpers (generate seed, enable/disable TOTP, generate code as Google Authenticator)User
- Full public user dataUserShort
- Short public user data (used in Usertag, Comment, Media, Direct Message)Usertag
- Tag user in Media (coordinates + UserShort)Location
- GEO location (GEO coordinates, name, address)Hashtag
- Hashtag object (id, name, picture)Collection
- Collection of medias (name, picture and list of medias)Comment
- Comments to MediaHighlight
- Highlights- βNotesβ - Notes
Story
- StoryStoryLink
- Link (Swipe up)StoryLocation
- Tag Location in Story (as sticker)StoryMention
- Mention users in Story (user, coordinates and dimensions)StoryHashtag
- Hashtag for story (as sticker)StorySticker
- Tag sticker to story (for example from giphy)StoryBuild
- StoryBuilder return path to photo/video and mention co-ordinatesDirectThread
- Thread (topic) with messages in Direct MessageDirectMessage
- Message in Direct MessageInsight
- Insights for a postTrack
- Music track (for Reels/Clips)
- Best Practices
- Development Guide
- Handle Exceptions
- Challenge Resolver
- Exceptions