Skip to content

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

to move, to open esc to close

Fix "Sign in to confirm your age" in yt-dlp

Tested on yt-dlp 2026.07.28 Updated
What yt-dlp prints
ERROR: [youtube] dQw4w9WgXcQ: Sign in to confirm your age. This video may be inappropriate for some users.

Quick answer

Most advice online for this error predates 2021, when YouTube closed the endpoint every bypass relied on. What works now is cookies from an account YouTube has confirmed as an adult — and a client that is not separately challenged:

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

Why the old tricks stopped working

Age-restricted videos used to be reachable through an embedded-player endpoint that returned full metadata without checking anything. yt-dlp used it, every guide documented it, and YouTube removed it in 2021.

What replaced it is a straightforward check: the request must carry a session belonging to an account YouTube believes is an adult. Not merely signed in — verified. In several countries that verification requires ID or a payment card, and an account that has not done it is treated exactly like one that is not signed in at all.

Two flags still recommended widely, both of which do nothing here:

  • --age-limit 18 — a filter, and one that points the wrong way. It tells yt-dlp to skip anything rated above the number. It was never a bypass.
  • --no-check-certificate — TLS verification, entirely unrelated. It appears in this context only because it appears in every copied answer.

Telling this apart from the bot check

Both ask you to sign in and the fixes differ, so read the message:

MessageWhat it isWhere to go
"confirm your age" Age gate This page
"confirm you're not a bot" Origin check Bot check
"granted access to this video" Private video Private video

The working approach

1. Sign in, in a browser, on a verified adult account

Play the video there first. If the browser also refuses, the account is not verified and no downloader can substitute for that.

2. Hand yt-dlp the session

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

3. Add a client that is not separately challenged

Cookies satisfy the age check; they do not satisfy the origin check. On age-restricted content you often hit both at once, and need to answer both:

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

If that pairing logs you out of the browser you exported from, use web_safari instead — the TV client authenticates differently and the mismatch can invalidate the session.

Confirming it worked

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

A format table means the gate cleared. A table that stops at 360p means it cleared and the formats are being withheld for a different reason — PO tokens.

If it still fails

  • Cookies load and the gate holds. The account is signed in but not age-verified. Check youtube.com/account for a verification prompt.
  • The browser plays it and yt-dlp does not. Wrong profile exported, or the export was from a different Google session than the tab that plays it.
  • Only in some countries. Age rules are regional. A video ungated in one country can be gated in another, and the connecting address decides which rules apply.
  • It worked last week. Session rotated — re-export. This is routine.

Frequently asked

Why did the old age-gate bypass stop working?
It relied on an embedded-player endpoint that returned full metadata without checking age. YouTube closed it in 2021, and every guide still recommending --age-limit or an embed trick predates that.
Does my account need to be age-verified?
Yes. Cookies from an account YouTube has not confirmed as an adult get the same gate. In several countries that confirmation now requires ID or a card, and there is no way around it from a downloader.
Is this the same as the bot check?
No, though both ask you to sign in. Age gates name the age; bot checks say "confirm you're not a bot". Read the message — the fixes are different and trying one against the other wastes time.
What does --age-limit actually do?
It filters, in the opposite direction: --age-limit 18 tells yt-dlp to skip anything rated above 18. It has never been a bypass, which is why the advice to use it here has never worked.