yt-dlp で年齢制限付き YouTube 動画をダウンロードする

このエラーの見え方
yt-dlp は次のような出力を表示します:
ERROR: [youtube] {VIDEO_ID}: Sign in to confirm your age. This video may be inappropriate for some users.
YouTube がこの動画を 18+ としてマークし、ログイン済みで年齢認証済みのアカウントの背後にストリームをロックしています。yt-dlp はデフォルトで匿名ダウンロードのため、このゲートを越えられません。
クッキーで突破するルート
ログイン中のブラウザセッションからクッキーをエクスポートし、yt-dlp に渡します:
yt-dlp --cookies-from-browser firefox {URL}
# または
yt-dlp --cookies-from-browser chrome {URL}
# あるいは Netscape 形式の cookies.txt
yt-dlp --cookies cookies.txt {URL}
これはクッキーを出力したアカウントが YouTube 上で年齢認証済みである場合に機能します。生年月日が 18 歳未満で作成されたアカウントや、年齢認証を一度も通っていないアカウントでは、クッキーがあっても通りません。
注意: クッキーファイルは絶対に git にコミットしないでください。あなたの YouTube アカウントへのアクセス権を持つセッショントークンが含まれています。
OAuth で突破するルート
一部のビルドの yt-dlp は対話型 OAuth にも対応しています:
yt-dlp --username oauth2 --password '' {URL}
デバイスコードが表示されるので、youtube.com/activate を開いてそのコードを入力すると、yt-dlp が取得したトークンを使ってダウンロードします。クッキーを書き出す必要がなく、セッションも長く保てます。
どちらでも駄目なとき
- 動画が、YouTube が政府発行身分証での認証を要求する地域 (EU の一部) のものである場合。ログイン済みのアカウントでも、身分証をアップロードするまでブロックされたままになることがあります。
- 投稿者が動画を「公開後に非公開」へ切り替えた。
- 動画が年齢制限付きであった うえに その後削除された。URL は応答するがストリームは存在しない。
これらのケースでは、どのダウンローダーでもゲートを越えられません。あなたのアカウントから見て、そのコンテンツは本当に利用不可です。
代わりに Any4K を使う
Any4K は公開ストリームの URL にアクセスし、あなたの YouTube アカウントにはログインしません。そのため Any4K 単体では年齢制限を越えられません。一方で、公開されており (年齢制限がない) 別のエラーで困っていた動画については、Any4K がクッキーや OAuth の設定なしで any4k.com から処理します。
本当に年齢制限のかかった動画については、次の流れになります:
- YouTube アカウントが認証済みかつ 18+ であることを確認する。
- yt-dlp と
--cookies-from-browserを使い、その認証情報をダウンロードに引き継ぐ。 - クッキーファイルは外部に出さない。
年齢制限のない動画における Any4K の利点
- クッキー管理が不要: エクスポート・保管・更新するものが何もない。
- ログインが不要: 公開動画なら匿名で動作。
- より高い最高画質: ソースが対応していれば最大 8K まで。
- マルチプラットフォーム: YouTube、TikTok、Twitter、Instagram、Facebook、Reddit、Shorts。
まとめ
年齢制限付きの YouTube 動画は、認証済みアカウントのセッションが必須です。つまり yt-dlp と --cookies-from-browser か OAuth の組み合わせが必要になります。それ以外のケースでは、Any4K Video Downloader のほうが断然シンプルです。