本文へスキップ
yt-dlp

yt-dlp チートシート

覚えておく価値のある yt-dlp コマンド:画質の選択、MP3 の抽出、再生リスト、字幕、cookies、そして実際に遭遇するエラーの対処法。

yt-dlp 2026.07.21 を基準に書かれています。バージョン間でオプションの追加や改名があるため、yt-dlp --version で自分のバージョンを確認してください。

基本のダウンロード

オプションを何も付けなければ、yt-dlp は結合できる中で最良の組み合わせを選び、タイトルからファイル名を付けます。意外なほど多くの場合、これが正解のコマンドです。

yt-dlp URL

大きなものを落とす前に、実際に何が提供されているかを見ておく価値があります。これはフォーマット一覧を表示して、何もダウンロードせずに終了します。

yt-dlp -F URL

その表の左の列がフォーマット id で、あとから直接指定できます。id を二つ + でつなぐと「両方落として結合する」という意味になります。

yt-dlp -f 137+140 URL

画質とフォーマットの選択

べた書きのフォーマット id は、サイトがエンコードの構成を変えた途端に壊れます。セレクター式のほうが長持ちします。ほしい性質を指定して、最良の一致を探すのは yt-dlp に任せる書き方です。

yt-dlp -f "bv*[height<=1080]+ba/b[height<=1080]" URL

読み方はこうです。高さ 1080 以下で最良の映像ストリームと最良の音声、その組み合わせが存在しなければ高さ 1080 以下で最良の単一ファイル。スラッシュのあとのこの代替こそが、プログレッシブなストリームしか公開していないサイトでコマンドが失敗するのを防ぎます。

二つのストリームを結合すると、yt-dlp はコンテナを選ばなければなりません。MP4 はどこでも再生でき、MKV は何でも受け入れます。字幕やチャプターが絡んでくると後者が効いてきます。

yt-dlp -f "bv*+ba" --merge-output-format mp4 URL

厳しい上限ではなく好みを表したいなら、絞り込みではなく並べ替えを使います。これは 1080p と MP4 を優先しますが、どちらもないときでも何かはダウンロードします。

yt-dlp -S "res:1080,ext:mp4" URL

音声と MP3

音声の抽出には ffmpeg が必要です。入れたばかりの環境で下のコマンドが失敗する理由は、圧倒的にこれです。

yt-dlp -x --audio-format mp3 URL

ジャケット画像とタグの追加はフラグ二つで済み、結果を「名前のないファイルの入ったフォルダ」ではなく音楽ライブラリで使えるものにしてくれます。

yt-dlp -x --audio-format mp3 --audio-quality 0 --embed-thumbnail --embed-metadata URL

--audio-quality 0 は「品質ゼロ」ではなく、可変ビットレートの最良設定という意味です。固定ビットレートが必要なら数値で指定します: --audio-quality 320K

元がすでに AAC や Opus なら、MP3 に変換するのは再エンコードであり、意味なく品質を落とすだけです。元のまま保つほうが速くて良い結果になります。

yt-dlp -x --audio-format best URL

字幕

埋め込んだ字幕はファイルと一緒に移動します。別ファイルの .srt は編集や他のツールへの受け渡しが楽です。

yt-dlp --embed-subs --sub-langs en URL
yt-dlp --write-subs --sub-langs en,vi --convert-subs srt URL

自動生成の字幕は別のスイッチです。付けないと、人手の字幕がない動画では何も出力されず、エラーも出ません。

yt-dlp --write-auto-subs --sub-langs en --convert-subs srt --skip-download URL

プレイリストとチャンネル

YouTube の URL は動画とプレイリストの両方に属していることが多く、yt-dlp はどちらのつもりかを推測することになります。明示してください。

yt-dlp --no-playlist URL
yt-dlp --yes-playlist URL

長いものを扱うなら、ここにある他のどのオプションよりもアーカイブファイルが重要です。何をダウンロード済みかを記録するので、やり直しても最初からではなく止まったところから続きます。

yt-dlp --yes-playlist -i \
  --download-archive archive.txt \
  -o "%(playlist_index)02d - %(title)s.%(ext)s" \
  URL

-i と組み合わせれば、地域制限や削除された動画が一本あっても残り二百本を巻き込んで止まることはありません。全部ではなく一部だけ取るなら、-I が範囲とリストを受け取ります: -I 1:10-I "1,3,7-10"

切り出し、チャプター、スポンサー区間

動画全体ではなく一部だけをダウンロードできます。先頭のアスタリスクはチャプター名ではなくタイムスタンプであることを表し、引用符は必須です。裸の * は bash があなたのファイル名に展開してしまいます。

yt-dlp --download-sections "*00:01:30-00:03:00" URL

SponsorBlock はコミュニティが投稿したマーカーを使って、区間をまるごと切り落とすか、自分で飛ばせるチャプターとして残すかを選べます。

yt-dlp --sponsorblock-remove default URL
yt-dlp --sponsorblock-mark all --embed-chapters URL

ログイン、Cookie、ボット判定

非公開・年齢制限あり・メンバー限定の内容には、あなたのセッションが要ります。ブラウザから直接読むのが最も間違いの少ない方法です。

yt-dlp --cookies-from-browser chrome URL
yt-dlp --cookies-from-browser "firefox:Profile 1" URL

先にブラウザを閉じてください。Chrome と Edge は起動中に Cookie のデータベースをロックしますが、出てくるエラーメッセージはそれを教えてくれません。

サイトが 403 を返し始めたり、ボットでないことの確認を求めてきたときは、リクエストを本物のブラウザらしく見せると大抵は通ります。

yt-dlp --impersonate chrome URL

ファイル名とフォルダ

出力テンプレートが両方を決めます。スラッシュはディレクトリを作るので、テンプレート一つでアーカイブ全体の構成を組めます。

yt-dlp -o "%(uploader)s/%(upload_date>%Y-%m-%d)s - %(title)s.%(ext)s" URL

タイトルには、ファイルシステムによっては受け付けない文字がしばしば入っています。--restrict-filenames はすべてを素の ASCII に落とします。マシン間を移動させるものなら、それだけの価値があります。

Windows の .bat ファイルでは % をすべて二重にする必要があります(%%(title)s)。さもないとバッチの解釈側が、yt-dlp に届く前にテンプレートを食べてしまいます。.bat をダウンロードするときは、ジェネレーターがこれをやっておきます。

実際に遭遇するエラー

ffmpeg not found

結合・変換・埋め込み・切り出しをするものはすべて、PATH の通った ffmpeg を必要とします。インストールしてから ffmpeg -version で確認してください。

Sign in to confirm you are not a bot

まず --impersonate chrome、次に --cookies-from-browser を試してください。どちらも駄目なら yt-dlp を更新します。この判定はとくに頻繁に変わり、修正はたいてい数日のうちにリリースされます。

Unable to extract player response

ほぼ確実に yt-dlp が古いだけです。他を触る前にまず更新してください: yt-dlp -U、パッケージマネージャーで入れたならそちらで。

Requested format is not available

セレクターが何にも一致しませんでした。-F で存在するものを確認し、厳しい絞り込みよりも並べ替え(-S)を選べば、代替が常に残ります。

HTTP Error 403

その URL は別のセッションか別の地域向けに署名されています。新しい Cookie で実行し直すか、--impersonate chrome を足すか、--geo-bypass を試してください。

yt-dlp を最新に保つ

報告される不具合は、どのフラグよりも更新によって直る数のほうが多いです。単体のバイナリを入れた場合:

yt-dlp -U

パッケージマネージャー経由で入れたなら、入れたのと同じ方法で更新してください。-U は拒否しますが、それが正しい振る舞いです。

よくある質問

「Sign in to confirm you are not a bot」はどう直しますか?
まず --impersonate chrome を、次にログイン済みセッションを使う --cookies-from-browser chrome を試してください。どちらも駄目なら yt-dlp を更新してください —— この確認はよく変わり、修正はふつう数日で出ます。
「Unable to extract player response」とはどういう意味ですか?
サイト側が何かを変え、あなたの yt-dlp が修正より古いという意味です。他を触る前に更新してください。このエラーが flag で解決することはほぼありません。
ffmpeg not found と出ます。
結合・変換・埋め込み・切り出しはすべて PATH の ffmpeg を必要とします。入れてから ffmpeg -version で確認してください。
yt-dlp はどれくらいの頻度で更新すべきですか?
何かが動かなくなったときは必ず、それ以外は数週間ごとに。サイトは常に変わり、壊れたところの大半はプロジェクト側で早く直されます。
yt-dlp と youtube-dl の違いは何ですか?
yt-dlp は保守が続いているフォークで、extractor も機能もはるかに多いです —— SponsorBlock、区間ダウンロード、ブラウザ偽装、並列 fragment。youtube-dl のオプション名を引き継いでいるので、単純なコマンドはどちらでも動きます。