Skip to content

Instagram extraction fails due to missing impersonate target (curl_cffi) on Android #2566

Description

@birkul

Checklist

Describe the bug

Hi,
Thank you for this great App, but downloading now an Instagram Reel fails because the extractor requires browser impersonation (curl_cffi), which is not available u think in the Android build of yt-dlp/Seal.

To Reproduce

  1. Open Seal (yt-dlp nightly channel)
  2. Paste an Instagram Reel URL shared via the "X shared this reel with you" link (igsh parameter)
  3. Tap download

Expected behavior:
The video should download, or fall back to a non-impersonation method, like it used to before Instagram started requiring impersonation.

On yt-dlp stable (2026.06.09):
#WARNING: [Instagram] DaI91choaNb: No csrf token set by Instagram API
ERROR: [Instagram] DaI91choaNb: Instagram sent an empty media response. Check if this post is accessible in your browser without being logged-in...

On yt-dlp nightly (2026.06.28.234618):
#ERROR: [Instagram] DaI91choaNb: The extractor is attempting impersonation, but no impersonate target is available. See https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies

App version: 1.13.1 (11312)
Device information: Android 16 (API 36)
Supported ABIs: [arm64-v8a]
URL: https://www.instagram.com/reel/DaI91choaNb/?igsh=cWFhN3R1enA3bjg0
(Note: the video plays fine in a regular browser, logged-out, after dismissing the "Continue with web" prompt — so this isn't a login-gated post.)

Error reports

On yt-dlp stable (2026.06.09):
App version: 1.13.1 (11312)
Device information: Android 16 (API 36)
Supported ABIs: [arm64-v8a]
Yt-dlp version: 2026.06.09

URL: https://www.instagram.com/reel/DaI91choaNb/?igsh=cWFhN3R1enA3bjg0
WARNING: [Instagram] DaI91choaNb: No csrf token set by Instagram API
ERROR: [Instagram] DaI91choaNb: Instagram sent an empty media response. Check if this post is accessible in your browser without being logged-in. If it is not, then use --cookies-from-browser or --cookies for the authentication. See https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp for how to manually pass cookies. Otherwise, if the post is accessible in browser without being logged-in, please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U

After switching to yt-dlp nightly (2026.06.28.234618), the error changed to:

App version: 1.13.1 (11312)
Device information: Android 16 (API 36)
Supported ABIs: [arm64-v8a]
Yt-dlp version: 2026.06.28.234618

URL: https://www.instagram.com/reel/DaI91choaNb/?igsh=cWFhN3R1enA3bjg0
ERROR: [Instagram] DaI91choaNb: The extractor is attempting impersonation, but no impersonate target is available. See https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies

Screenshots & Screen Records

No response

Additional context

curl_cffi now publishes an official Android wheel (curl_cffi-0.15.0-cp313-abi3-android_24_arm64_v8a.whl on PyPI, since ~April 2026). Could Seal's build pipeline (Chaquopy?) bundle this so impersonation works on Android, the same way it does on desktop yt-dlp builds?

This seems related to the same root cause as #2487 and #2372 (TikTok impersonation missing on Android), but now also affects Instagram

Metadata

Metadata

Assignees

No one assigned

    Labels

    action-closedbugSomething isn't workingduplicateThis issue or pull request already exists

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions