ytdlp.org

Practical yt-dlp docs: install, commands, fixes, cookies, and workflows.

Current section

Platform guide

How to download Instagram videos and Reels with yt-dlp

Instagram is the platform where the plain-URL approach fails first. Nearly everything now sits behind a login wall, so anonymous yt-dlp requests either error out or get redirected to a sign-in page. The working setup is simple, but it starts with cookies — not with the URL.

Quick answer

yt-dlp --cookies-from-browser chrome "https://www.instagram.com/reel/ABC123xyz/"

Log in to Instagram in Chrome (or swap in firefox, edge, safari), then run the command above. The cookies flag is not an optional extra here — without a logged-in session, expect a login wall or an empty extraction.

What needs cookies

Assume the answer is "everything". An occasional public reel may extract anonymously, but Instagram has tightened anonymous access steadily, and what works today without login tends to stop working without notice. Building the cookies flag into your command from the start saves you a debugging session later.

URL types that work

  • Reels: instagram.com/reel/SHORTCODE/ — the most reliable target.
  • Video posts: instagram.com/p/SHORTCODE/ — regular feed posts that contain video.
  • IGTV (legacy): instagram.com/tv/SHORTCODE/ — old IGTV links still resolve, though Instagram folded the format into regular video.

Rate-limit reality

Instagram actively flags accounts that fetch aggressively, and those flags land on the account whose cookies you are using. Keep the volume low, add pauses between requests, and treat every fetch as something Instagram is counting:

yt-dlp --cookies-from-browser chrome --sleep-requests 2 "https://www.instagram.com/reel/ABC123xyz/"

Stories and highlights: less reliable

Honest answer: stories and highlights extract less reliably than reels and posts. They are ephemeral, served through different endpoints, and support breaks more often between releases. If a story URL fails with current yt-dlp and valid cookies, that is a known rough edge — not something a different flag will fix.

The mistake to avoid

Do not run high-volume Instagram fetching through your personal account cookies. That is exactly the pattern that gets accounts action-blocked or suspended — and the block hits the account, not the script. Keep personal-account usage occasional and low-volume.

Recurring sources

Pulling from the same sources on repeat?

Paste a link to preview what a maintained import API returns for it — across 500+ platforms.

Straightforward yt-dlp help for installs, commands, fixes, cookies, and repeatable workflows.

ytdlp.org is an independent, community-maintained documentation site. It is not affiliated with the yt-dlp project — the official source code lives at github.com/yt-dlp/yt-dlp.