From 8d792ffa61efc88f6c40d75de4f8aa9baca7ab0b Mon Sep 17 00:00:00 2001 From: Kaif Date: Wed, 3 Jun 2026 09:27:29 +0530 Subject: [PATCH 1/2] add: instagram grphql extractor --- socid_extractor/schemes.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/socid_extractor/schemes.py b/socid_extractor/schemes.py index 71e50d5..6b26f10 100644 --- a/socid_extractor/schemes.py +++ b/socid_extractor/schemes.py @@ -806,6 +806,33 @@ def _gh_handle_for(accounts, provider): 'following_count': lambda x: x.get('edge_follow', {}).get('count'), } }, + 'Instagram GraphQL': { + 'url_hints': ('instagram.com', 'cdninstagram.com'), + 'flags': ['"biography"', '"edge_followed_by"', '"profile_pic_url_hd"'], + 'regex': r'^(\{[\s\S]+\})$', + 'extract_json': True, + 'transforms': [ + json.loads, + lambda x: (x.get('data') or {}).get('user') or {}, + json.dumps, + ], + 'fields': { + 'username': lambda x: x.get('username'), + 'fullname': lambda x: x.get('full_name'), + 'id': lambda x: x.get('id'), + 'image': lambda x: x.get('profile_pic_url_hd'), + 'bio': lambda x: x.get('biography'), + 'business_email': lambda x: x.get('business_email'), + 'external_url': lambda x: x.get('external_url'), + 'facebook_uid': lambda x: x.get('fbid'), + 'is_business': lambda x: x.get('is_business_account'), + 'is_joined_recently': lambda x: x.get('is_joined_recently'), + 'is_private': lambda x: x.get('is_private'), + 'is_verified': lambda x: x.get('is_verified'), + 'follower_count': lambda x: (x.get('edge_followed_by') or {}).get('count'), + 'following_count': lambda x: (x.get('edge_follow') or {}).get('count'), + } + }, 'Spotify API': { 'url_hints': ('spotify.com', 'open.spotify.com'), 'flags': ['"uri": "spotify:user:'], From 72444f381a9f76b83cbb0e8e678182c8c4a28aff Mon Sep 17 00:00:00 2001 From: Kaif Date: Wed, 3 Jun 2026 09:59:29 +0530 Subject: [PATCH 2/2] add: instagram grphql e2e test with revised METHODS.md --- METHODS.md | 245 +++++++++++++++++++++++----------------------- tests/test_e2e.py | 26 +++++ 2 files changed, 149 insertions(+), 122 deletions(-) diff --git a/METHODS.md b/METHODS.md index 26c6a43..22051c9 100644 --- a/METHODS.md +++ b/METHODS.md @@ -36,126 +36,127 @@ 31 | Instagram | [instagram](https://github.com/soxoj/socid-extractor/search?q=test_instagram) | requests from GitHub Actions CI servers are blocked, broken. needs deeper rework | 32 | Instagram API | [instagram_api](https://github.com/soxoj/socid-extractor/search?q=test_instagram_api) | requests from GitHub Actions CI servers are blocked | 33 | Instagram page JSON | [instagram](https://github.com/soxoj/socid-extractor/search?q=test_instagram) | requests from GitHub Actions CI servers are blocked, broken. needs deeper rework | -34 | Spotify API | | | -35 | EyeEm | [eyeem](https://github.com/soxoj/socid-extractor/search?q=test_eyeem) | EyeEm returns 403 for automated clients (2026) | -36 | Medium RSS | | | -37 | Medium | [medium](https://github.com/soxoj/socid-extractor/search?q=test_medium) | | -38 | Odnoklassniki | [odnoklassniki](https://github.com/soxoj/socid-extractor/search?q=test_odnoklassniki) | | -39 | Habrahabr HTML (old) | | | -40 | Habrahabr JSON | [habr](https://github.com/soxoj/socid-extractor/search?q=test_habr), [habr_no_image](https://github.com/soxoj/socid-extractor/search?q=test_habr_no_image) | requests from GitHub Actions CI servers are blocked, requests from GitHub Actions CI servers are blocked | -41 | My Mail.ru | | | -42 | Behance | [behance](https://github.com/soxoj/socid-extractor/search?q=test_behance) | broken | -43 | Blogger | [blogger](https://github.com/soxoj/socid-extractor/search?q=test_blogger) | Failed in GitHub CI | -44 | D3.ru | [d3](https://github.com/soxoj/socid-extractor/search?q=test_d3) | requests from GitHub Actions CI servers are blocked | -45 | Gitlab | | | -46 | 500px userByUsername API | | | -47 | 500px GraphQL API | [500px](https://github.com/soxoj/socid-extractor/search?q=test_500px) | non-actual, 500px requires POST requests for now | -48 | Google Document API | [google_documents](https://github.com/soxoj/socid-extractor/search?q=test_google_documents) | | -49 | Google Document | | | -50 | Google Maps contributions | | | -51 | YouTube ytInitialData | | | -52 | Youtube Channel | | | -53 | Bitbucket | [bitbucket](https://github.com/soxoj/socid-extractor/search?q=test_bitbucket) | Bitbucket UI/embed changed; test user URL 404 (2026) | -54 | Pinterest API | [pinterest_api](https://github.com/soxoj/socid-extractor/search?q=test_pinterest_api) | broken | -55 | Pinterest profile/board page | [pinterest_account](https://github.com/soxoj/socid-extractor/search?q=test_pinterest_account) | | -56 | Reddit | [reddit](https://github.com/soxoj/socid-extractor/search?q=test_reddit) | broken | -57 | Steam | [steam](https://github.com/soxoj/socid-extractor/search?q=test_steam) | cloudflare | -58 | Steam Addiction | | | -59 | Stack Exchange API | [stack_exchange_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_stack_exchange_api_e2e) | anti-bot / captcha / rate limiting from the site | -60 | Stack Overflow & similar | | | -61 | SoundCloud | [soundcloud](https://github.com/soxoj/socid-extractor/search?q=test_soundcloud) | SoundCloud returns 403 / empty embed for automated clients (2026) | -62 | TikTok | [tiktok](https://github.com/soxoj/socid-extractor/search?q=test_tiktok), [tiktok_hydration_e2e](https://github.com/soxoj/socid-extractor/search?q=test_tiktok_hydration_e2e) | requests from GitHub Actions CI servers are blocked, requests from GitHub Actions CI servers are blocked | -63 | TikTok (legacy SIGI_STATE) | [tiktok_hydration_e2e](https://github.com/soxoj/socid-extractor/search?q=test_tiktok_hydration_e2e) | requests from GitHub Actions CI servers are blocked | -64 | Picsart API | [picsart_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_picsart_api_e2e) | requests from GitHub Actions CI servers are blocked | -65 | VC.ru | | | -66 | LiveJournal | [livejournal](https://github.com/soxoj/socid-extractor/search?q=test_livejournal) | requests from GitHub Actions CI servers are blocked | -67 | MySpace | [myspace](https://github.com/soxoj/socid-extractor/search?q=test_myspace) | doesnt work without proxy, 503 error | -68 | Keybase API | | | -69 | Wikimapia | | | -70 | Vimeo HTML | [vimeo_html_e2e](https://github.com/soxoj/socid-extractor/search?q=test_vimeo_html_e2e) | | -71 | Vimeo GraphQL API | | | -72 | DeviantArt | [deviantart](https://github.com/soxoj/socid-extractor/search?q=test_deviantart) | it works but is skipped for the sake of successful tests | -73 | mssg.me | [mssg_me](https://github.com/soxoj/socid-extractor/search?q=test_mssg_me) | broken | -74 | Telegram | [telegram](https://github.com/soxoj/socid-extractor/search?q=test_telegram) | | -75 | BuzzFeed | [buzzfeed](https://github.com/soxoj/socid-extractor/search?q=test_buzzfeed) | requests from GitHub Actions CI servers are blocked | -76 | Linktree | [linktree](https://github.com/soxoj/socid-extractor/search?q=test_linktree) | broken | -77 | Twitch | [twitch](https://github.com/soxoj/socid-extractor/search?q=test_twitch) | broken | -78 | vBulletinEngine | | | -79 | Tumblr (default theme) | | | -80 | 1x.com | | | -81 | Last.fm | [last_fm](https://github.com/soxoj/socid-extractor/search?q=test_last_fm) | | -82 | Ask.fm | [ask_fm](https://github.com/soxoj/socid-extractor/search?q=test_ask_fm) | broken | -83 | Launchpad | [launchpad](https://github.com/soxoj/socid-extractor/search?q=test_launchpad) | requests from GitHub Actions CI servers are blocked | -84 | Xakep.ru | | | -85 | Tproger.ru | [tproger_ru](https://github.com/soxoj/socid-extractor/search?q=test_tproger_ru) | no more author pages for now | -86 | Jsfiddle.net | | | -87 | Disqus API | [disqus_api](https://github.com/soxoj/socid-extractor/search?q=test_disqus_api) | | -88 | uCoz-like profile page | | | -89 | uID.me | | | -90 | tapd | [tapd](https://github.com/soxoj/socid-extractor/search?q=test_tapd) | down | -91 | freelancer.com | | | -92 | Yelp | [yelp_userid](https://github.com/soxoj/socid-extractor/search?q=test_yelp_userid), [yelp_username](https://github.com/soxoj/socid-extractor/search?q=test_yelp_username) | broken, broken | -93 | Trello API | [trello](https://github.com/soxoj/socid-extractor/search?q=test_trello) | | -94 | Weibo API | [weibo_api](https://github.com/soxoj/socid-extractor/search?q=test_weibo_api), [weibo_api_by_id](https://github.com/soxoj/socid-extractor/search?q=test_weibo_api_by_id) | requests from GitHub Actions CI servers are blocked, requests from GitHub Actions CI servers are blocked | -95 | Weibo | [weibo](https://github.com/soxoj/socid-extractor/search?q=test_weibo) | needs rework, cookies are required to get content, requests from GitHub Actions CI servers are blocked | -96 | ICQ | [icq](https://github.com/soxoj/socid-extractor/search?q=test_icq) | broken forever | -97 | Pastebin | [pastebin](https://github.com/soxoj/socid-extractor/search?q=test_pastebin) | | -98 | Periscope | | | -99 | Imgur API | [imgur_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_imgur_api_e2e) | | -100 | PayPal | | | -101 | Tinder | [tinder](https://github.com/soxoj/socid-extractor/search?q=test_tinder) | broken | -102 | ifunny.co | [ifunny_co](https://github.com/soxoj/socid-extractor/search?q=test_ifunny_co) | | -103 | Wattpad API | [wattpad_api](https://github.com/soxoj/socid-extractor/search?q=test_wattpad_api) | | -104 | Kik | [kik](https://github.com/soxoj/socid-extractor/search?q=test_kik) | broken | -105 | Docker Hub API | [docker_hub_api](https://github.com/soxoj/socid-extractor/search?q=test_docker_hub_api) | | -106 | Mixcloud API | [mixcloud_api](https://github.com/soxoj/socid-extractor/search?q=test_mixcloud_api) | | -107 | binarysearch API | [binarysearch_api](https://github.com/soxoj/socid-extractor/search?q=test_binarysearch_api) | down | -108 | pr0gramm API | [pr0gramm_api](https://github.com/soxoj/socid-extractor/search?q=test_pr0gramm_api) | | -109 | Aparat API | [aparat_api](https://github.com/soxoj/socid-extractor/search?q=test_aparat_api) | broken | -110 | UnstoppableDomains | | | -111 | memory.lol | [memory_lol](https://github.com/soxoj/socid-extractor/search?q=test_memory_lol) | | -112 | Duolingo API | [duolingo_api](https://github.com/soxoj/socid-extractor/search?q=test_duolingo_api) | | -113 | TwitchTracker | | | -114 | Chess.com API | [chess_com_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_chess_com_api_e2e) | | -115 | Roblox user API | [roblox_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_roblox_api_e2e) | | -116 | Roblox username lookup API | | | -117 | MyAnimeList profile | | | -118 | XVideos profile | | | -119 | lnk.bio | | | -120 | Wikipedia user API | | | -121 | Fandom MediaWiki API | | | -122 | Substack public profile API | | | -123 | Lesswrong GraphQL API | | | -124 | hashnode GraphQL API | | | -125 | Rarible API | | | -126 | CSSBattle | | | -127 | Max (max.ru) profile | | | -128 | Bluesky API | | | -129 | Scratch API | | | -130 | DailyMotion API | | | -131 | SlideShare | | | -132 | WordPress.org Profile | | | -133 | Weebly | | | -134 | Calendly | | | -135 | Google Play Developer | | | -136 | Amazon Author | | | -137 | Habr | | | -138 | Taplink | | | -139 | Product Hunt | | | -140 | Chess.com HTML | [chess_com_html_e2e](https://github.com/soxoj/socid-extractor/search?q=test_chess_com_html_e2e) | | -141 | Roblox HTML | [roblox_html_e2e](https://github.com/soxoj/socid-extractor/search?q=test_roblox_html_e2e) | | -142 | LeetCode GraphQL | [leetcode_graphql_e2e](https://github.com/soxoj/socid-extractor/search?q=test_leetcode_graphql_e2e) | | -143 | Boosty API | [boosty_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_boosty_api_e2e) | | -144 | Threads | | | -145 | Smule | | | -146 | Warpcast API | [warpcast_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_warpcast_api_e2e) | | -147 | Paragraph API | [paragraph_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_paragraph_api_e2e) | | -148 | Fragment | [fragment_e2e](https://github.com/soxoj/socid-extractor/search?q=test_fragment_e2e) | | -149 | Tonometerbot | [tonometerbot_e2e](https://github.com/soxoj/socid-extractor/search?q=test_tonometerbot_e2e) | anti-bot / captcha / rate limiting from the site | -150 | Spatial | [spatial_e2e](https://github.com/soxoj/socid-extractor/search?q=test_spatial_e2e) | requests from GitHub Actions CI servers are blocked | -151 | OpenSea | | | -152 | Hive Blog | | | -153 | BuyMeACoffee | [buymeacoffee](https://github.com/soxoj/socid-extractor/search?q=test_buymeacoffee) | | -154 | Discourse API | | | +34 | Instagram GraphQL | [instagram_graphql_e2e](https://github.com/soxoj/socid-extractor/search?q=test_instagram_graphql_e2e) | anti-bot / captcha / rate limiting from the site, requests from GitHub Actions CI servers are blocked | +35 | Spotify API | | | +36 | EyeEm | [eyeem](https://github.com/soxoj/socid-extractor/search?q=test_eyeem) | EyeEm returns 403 for automated clients (2026) | +37 | Medium RSS | | | +38 | Medium | [medium](https://github.com/soxoj/socid-extractor/search?q=test_medium) | | +39 | Odnoklassniki | [odnoklassniki](https://github.com/soxoj/socid-extractor/search?q=test_odnoklassniki) | | +40 | Habrahabr HTML (old) | | | +41 | Habrahabr JSON | [habr](https://github.com/soxoj/socid-extractor/search?q=test_habr), [habr_no_image](https://github.com/soxoj/socid-extractor/search?q=test_habr_no_image) | requests from GitHub Actions CI servers are blocked, requests from GitHub Actions CI servers are blocked | +42 | My Mail.ru | | | +43 | Behance | [behance](https://github.com/soxoj/socid-extractor/search?q=test_behance) | broken | +44 | Blogger | [blogger](https://github.com/soxoj/socid-extractor/search?q=test_blogger) | Failed in GitHub CI | +45 | D3.ru | [d3](https://github.com/soxoj/socid-extractor/search?q=test_d3) | requests from GitHub Actions CI servers are blocked | +46 | Gitlab | | | +47 | 500px userByUsername API | | | +48 | 500px GraphQL API | [500px](https://github.com/soxoj/socid-extractor/search?q=test_500px) | non-actual, 500px requires POST requests for now | +49 | Google Document API | [google_documents](https://github.com/soxoj/socid-extractor/search?q=test_google_documents) | | +50 | Google Document | | | +51 | Google Maps contributions | | | +52 | YouTube ytInitialData | | | +53 | Youtube Channel | | | +54 | Bitbucket | [bitbucket](https://github.com/soxoj/socid-extractor/search?q=test_bitbucket) | Bitbucket UI/embed changed; test user URL 404 (2026) | +55 | Pinterest API | [pinterest_api](https://github.com/soxoj/socid-extractor/search?q=test_pinterest_api) | broken | +56 | Pinterest profile/board page | [pinterest_account](https://github.com/soxoj/socid-extractor/search?q=test_pinterest_account) | | +57 | Reddit | [reddit](https://github.com/soxoj/socid-extractor/search?q=test_reddit) | broken | +58 | Steam | [steam](https://github.com/soxoj/socid-extractor/search?q=test_steam) | cloudflare | +59 | Steam Addiction | | | +60 | Stack Exchange API | [stack_exchange_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_stack_exchange_api_e2e) | anti-bot / captcha / rate limiting from the site | +61 | Stack Overflow & similar | | | +62 | SoundCloud | [soundcloud](https://github.com/soxoj/socid-extractor/search?q=test_soundcloud) | SoundCloud returns 403 / empty embed for automated clients (2026) | +63 | TikTok | [tiktok](https://github.com/soxoj/socid-extractor/search?q=test_tiktok), [tiktok_hydration_e2e](https://github.com/soxoj/socid-extractor/search?q=test_tiktok_hydration_e2e) | requests from GitHub Actions CI servers are blocked, requests from GitHub Actions CI servers are blocked | +64 | TikTok (legacy SIGI_STATE) | [tiktok_hydration_e2e](https://github.com/soxoj/socid-extractor/search?q=test_tiktok_hydration_e2e) | requests from GitHub Actions CI servers are blocked | +65 | Picsart API | [picsart_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_picsart_api_e2e) | requests from GitHub Actions CI servers are blocked | +66 | VC.ru | | | +67 | LiveJournal | [livejournal](https://github.com/soxoj/socid-extractor/search?q=test_livejournal) | requests from GitHub Actions CI servers are blocked | +68 | MySpace | [myspace](https://github.com/soxoj/socid-extractor/search?q=test_myspace) | doesnt work without proxy, 503 error | +69 | Keybase API | | | +70 | Wikimapia | | | +71 | Vimeo HTML | [vimeo_html_e2e](https://github.com/soxoj/socid-extractor/search?q=test_vimeo_html_e2e) | requests from GitHub Actions CI servers are blocked | +72 | Vimeo GraphQL API | | | +73 | DeviantArt | [deviantart](https://github.com/soxoj/socid-extractor/search?q=test_deviantart) | it works but is skipped for the sake of successful tests | +74 | mssg.me | [mssg_me](https://github.com/soxoj/socid-extractor/search?q=test_mssg_me) | broken | +75 | Telegram | [telegram](https://github.com/soxoj/socid-extractor/search?q=test_telegram) | | +76 | BuzzFeed | [buzzfeed](https://github.com/soxoj/socid-extractor/search?q=test_buzzfeed) | requests from GitHub Actions CI servers are blocked | +77 | Linktree | [linktree](https://github.com/soxoj/socid-extractor/search?q=test_linktree) | broken | +78 | Twitch | [twitch](https://github.com/soxoj/socid-extractor/search?q=test_twitch) | broken | +79 | vBulletinEngine | | | +80 | Tumblr (default theme) | | | +81 | 1x.com | | | +82 | Last.fm | [last_fm](https://github.com/soxoj/socid-extractor/search?q=test_last_fm) | | +83 | Ask.fm | [ask_fm](https://github.com/soxoj/socid-extractor/search?q=test_ask_fm) | broken | +84 | Launchpad | [launchpad](https://github.com/soxoj/socid-extractor/search?q=test_launchpad) | requests from GitHub Actions CI servers are blocked | +85 | Xakep.ru | | | +86 | Tproger.ru | [tproger_ru](https://github.com/soxoj/socid-extractor/search?q=test_tproger_ru) | no more author pages for now | +87 | Jsfiddle.net | | | +88 | Disqus API | [disqus_api](https://github.com/soxoj/socid-extractor/search?q=test_disqus_api) | | +89 | uCoz-like profile page | | | +90 | uID.me | | | +91 | tapd | [tapd](https://github.com/soxoj/socid-extractor/search?q=test_tapd) | down | +92 | freelancer.com | | | +93 | Yelp | [yelp_userid](https://github.com/soxoj/socid-extractor/search?q=test_yelp_userid), [yelp_username](https://github.com/soxoj/socid-extractor/search?q=test_yelp_username) | broken, broken | +94 | Trello API | [trello](https://github.com/soxoj/socid-extractor/search?q=test_trello) | | +95 | Weibo API | [weibo_api](https://github.com/soxoj/socid-extractor/search?q=test_weibo_api), [weibo_api_by_id](https://github.com/soxoj/socid-extractor/search?q=test_weibo_api_by_id) | requests from GitHub Actions CI servers are blocked, requests from GitHub Actions CI servers are blocked | +96 | Weibo | [weibo](https://github.com/soxoj/socid-extractor/search?q=test_weibo) | needs rework, cookies are required to get content, requests from GitHub Actions CI servers are blocked | +97 | ICQ | [icq](https://github.com/soxoj/socid-extractor/search?q=test_icq) | broken forever | +98 | Pastebin | [pastebin](https://github.com/soxoj/socid-extractor/search?q=test_pastebin) | | +99 | Periscope | | | +100 | Imgur API | [imgur_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_imgur_api_e2e) | | +101 | PayPal | | | +102 | Tinder | [tinder](https://github.com/soxoj/socid-extractor/search?q=test_tinder) | broken | +103 | ifunny.co | [ifunny_co](https://github.com/soxoj/socid-extractor/search?q=test_ifunny_co) | | +104 | Wattpad API | [wattpad_api](https://github.com/soxoj/socid-extractor/search?q=test_wattpad_api) | | +105 | Kik | [kik](https://github.com/soxoj/socid-extractor/search?q=test_kik) | broken | +106 | Docker Hub API | [docker_hub_api](https://github.com/soxoj/socid-extractor/search?q=test_docker_hub_api) | | +107 | Mixcloud API | [mixcloud_api](https://github.com/soxoj/socid-extractor/search?q=test_mixcloud_api) | | +108 | binarysearch API | [binarysearch_api](https://github.com/soxoj/socid-extractor/search?q=test_binarysearch_api) | down | +109 | pr0gramm API | [pr0gramm_api](https://github.com/soxoj/socid-extractor/search?q=test_pr0gramm_api) | | +110 | Aparat API | [aparat_api](https://github.com/soxoj/socid-extractor/search?q=test_aparat_api) | broken | +111 | UnstoppableDomains | | | +112 | memory.lol | [memory_lol](https://github.com/soxoj/socid-extractor/search?q=test_memory_lol) | | +113 | Duolingo API | [duolingo_api](https://github.com/soxoj/socid-extractor/search?q=test_duolingo_api) | | +114 | TwitchTracker | | | +115 | Chess.com API | [chess_com_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_chess_com_api_e2e) | | +116 | Roblox user API | [roblox_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_roblox_api_e2e) | | +117 | Roblox username lookup API | | | +118 | MyAnimeList profile | | | +119 | XVideos profile | | | +120 | lnk.bio | | | +121 | Wikipedia user API | | | +122 | Fandom MediaWiki API | | | +123 | Substack public profile API | | | +124 | Lesswrong GraphQL API | | | +125 | hashnode GraphQL API | | | +126 | Rarible API | | | +127 | CSSBattle | | | +128 | Max (max.ru) profile | | | +129 | Bluesky API | | | +130 | Scratch API | | | +131 | DailyMotion API | | | +132 | SlideShare | | | +133 | WordPress.org Profile | | | +134 | Weebly | | | +135 | Calendly | | | +136 | Google Play Developer | | | +137 | Amazon Author | | | +138 | Habr | | | +139 | Taplink | | | +140 | Product Hunt | | | +141 | Chess.com HTML | [chess_com_html_e2e](https://github.com/soxoj/socid-extractor/search?q=test_chess_com_html_e2e) | | +142 | Roblox HTML | [roblox_html_e2e](https://github.com/soxoj/socid-extractor/search?q=test_roblox_html_e2e) | | +143 | LeetCode GraphQL | [leetcode_graphql_e2e](https://github.com/soxoj/socid-extractor/search?q=test_leetcode_graphql_e2e) | | +144 | Boosty API | [boosty_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_boosty_api_e2e) | | +145 | Threads | | | +146 | Smule | | | +147 | Warpcast API | [warpcast_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_warpcast_api_e2e) | | +148 | Paragraph API | [paragraph_api_e2e](https://github.com/soxoj/socid-extractor/search?q=test_paragraph_api_e2e) | | +149 | Fragment | [fragment_e2e](https://github.com/soxoj/socid-extractor/search?q=test_fragment_e2e) | | +150 | Tonometerbot | [tonometerbot_e2e](https://github.com/soxoj/socid-extractor/search?q=test_tonometerbot_e2e) | anti-bot / captcha / rate limiting from the site | +151 | Spatial | [spatial_e2e](https://github.com/soxoj/socid-extractor/search?q=test_spatial_e2e) | requests from GitHub Actions CI servers are blocked | +152 | OpenSea | | | +153 | Hive Blog | | | +154 | BuyMeACoffee | [buymeacoffee](https://github.com/soxoj/socid-extractor/search?q=test_buymeacoffee) | | +155 | Discourse API | | | -The table has been updated at 2026-06-01 10:57:00.710594 UTC +The table has been updated at 2026-06-03 04:26:52.125931 UTC diff --git a/tests/test_e2e.py b/tests/test_e2e.py index c1f54b3..ad9ae4c 100755 --- a/tests/test_e2e.py +++ b/tests/test_e2e.py @@ -1573,3 +1573,29 @@ def test_buymeacoffee(): assert info.get("fullname") == "John Doe" assert info.get("bio") == "Designer & Art Director, Growing brands.Welcome to my BMC page. If you like my content, please consider buying me a coffee. Thank you for your support!" assert "15211" in info.get("image") or "cdn.buymeacoffee.com" in info.get("image") + + +@pytest.mark.github_failed +@pytest.mark.rate_limited +def test_instagram_graphql_e2e(): + """Instagram GraphQL""" + headers = { + 'x-ig-app-id': '936619743392459', + 'referer': 'https://www.instagram.com/', + } + body, status_code = parse('https://www.instagram.com/api/v1/users/web_profile_info/?username=cristiano', headers=headers) + + # Gracefully skip if rate limited / blocked in current environment + if status_code in (403, 429) or not body: + pytest.skip(f"Rate limited or blocked by Instagram API (status {status_code})") + + info = extract(body) + + assert info.get('username') == 'cristiano' + assert info.get('fullname') == 'Cristiano Ronaldo' + assert info.get('id') == '173560420' + assert 'cdninstagram.com' in info.get('image', '') + assert info.get('is_business') == 'False' + assert info.get('is_private') == 'False' + assert info.get('is_verified') == 'True' + assert int(info.get('follower_count', 0)) > 500000000