Skip to content

Start typing. Errors match on their exact yt-dlp output.

to move, to open esc to close

Fix "Private video: Sign in if you've been granted access" in yt-dlp

Tested on yt-dlp 2026.07.28 Updated
What yt-dlp prints
ERROR: [youtube] dQw4w9WgXcQ: Private video. Sign in if you've been granted access to this video

Quick answer

yt-dlp can download a private video if the account you hand it can already watch that video. It cannot get around the permission itself. The whole job is exporting a session from a browser where you are signed in as the right account:

bash
yt-dlp --cookies-from-browser firefox "URL"

Check access first

Before debugging cookies, confirm the account actually has access. Open the URL in a browser where you are signed in as that account. If it plays, cookies will work. If it does not, nothing on this page will, and the problem is that the video was never shared with you.

It is worth being precise about which account. Browsers hold several Google sessions at once and pick between them per tab, so "I am signed in" and "I am signed in as the account that was granted access" are different statements.

Getting the session across

Reading the browser directly

Simplest when it works. Firefox is the reliable choice — Chromium browsers lock their cookie database and, on recent versions, encrypt it against the browser process:

bash
yt-dlp --cookies-from-browser firefox "URL"
a specific profile, when you have several
yt-dlp --cookies-from-browser "firefox:Work" "URL"

Chrome failures here are their own problem, covered on the Chrome cookie database page.

Exporting to a file

More reliable, and the only option for anything scheduled. Export with a cookies.txt extension while on the video's page, then:

bash
yt-dlp --cookies cookies.txt "URL"

Members-only and purchased videos

Same mechanism, and the same warning applies more strongly. A channel membership or a purchase is attached to an account you care about, so the cookies you are exporting belong to an account whose loss would matter:

bash
yt-dlp --cookies-from-browser firefox --extractor-args "youtube:player_client=web_safari" "URL"

Confirming it worked

bash
yt-dlp --cookies-from-browser firefox --simulate -v "URL"

The verbose output states how many cookies were extracted. Zero means the wrong profile or the wrong browser. A few hundred with the video still refused means the session is valid but belongs to an account without access — back to the browser check at the top.

Your own private uploads

Recovering your own videos is the most legitimate reason to be here, and worth doing in bulk:

bash
yt-dlp --cookies-from-browser firefox -i --download-archive mine.txt \
  -o "%(upload_date>%Y-%m-%d)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/feed/library"

Output templates covers the naming, and the playlist guide the archive file that lets an interrupted run resume.

If it still fails

  • Cookies load, still "Private video". The account genuinely lacks access. Verify in a browser signed in as that exact account.
  • Worked yesterday. The session rotated. Re-export; this is normal and will keep happening.
  • "Sign in to confirm you're not a bot" instead. A different check, and cookies are not the answer to it — see that page.
  • A Vimeo password-protected video. Not cookies at all: --video-password is the flag.
  • An unlisted video. Those need no cookies. If one is refused, the link is wrong or the video is now private.

Frequently asked

Can yt-dlp download any private video?
No. It can download a private video that the account whose cookies you supply has been granted access to. It has no way around the permission itself — if you cannot watch it signed in to that account in a browser, no flag changes that.
Why does an incognito export not work?
An incognito window has its own cookie jar that is discarded when the window closes, and the browser-reading flags do not look at it. Sign in normally, in a regular window, and export from there.
Unlisted is not the same as private, is it?
No, and yt-dlp handles unlisted videos with no cookies at all — the link is the access control. If an unlisted video is refused, the link is wrong or the video was changed to private.
How long do exported cookies last?
Days to weeks, unpredictably. YouTube rotates sessions, and faster for accounts it considers unusual. For anything scheduled, expect to re-export periodically and make the script fail loudly rather than silently.