yt-dlp 完全ガイド:よく使うオプション一覧と使い方

コマンドリファレンス

yt-dlp は、YouTube をはじめとする多数の動画サイトから動画や音声をダウンロードできるコマンドラインツールです。
youtube-dl をベースに改良されており、より多くのサイト対応・高速化・便利なオプションが追加されています。

ターミナルで動くことが前提のツールなので、黒い画面に苦手意識がある方は 「ターミナルは怖くない」や、「Bash」で基本的な使い方などを理解できているのが前提の解説になります。

  1. 構文(Syntax)
    1. yt-dlp のオプション一覧
  2. yt-dlp のインストール方法
    1. 1. pip(Python パッケージ)でインストール
    2. 2. バイナリ(単体ファイル)を使う
    3. 3. Homebrew(macOS / Linux)
    4. 4. Scoop(Windows)
    5. 5. 更新方法
    6. 補足
  3. yt-dlp 実行例
    1. 基本的な動画ダウンロード
    2. 利用可能なフォーマットを確認
    3. 特定フォーマットを指定してダウンロード
    4. 音声のみを MP3 で保存
    5. 保存ファイル名をカスタマイズ
    6. プレイリストの一部だけダウンロード
    7. 既にダウンロードした動画をスキップ
    8. エラー例(存在しない動画URL)
  4. yt-dlp 画質指定
    1. -f 基本の考え方
    2. 書式の全体像
    3. 選択子の種類
      1. 1) フォーマットIDを直指定
      2. 2) ショートハンド
      3. 3) 角括弧のフィルタ(条件指定)
    4. 主なキー(よく使うもの)
    5. 演算子
    6. 使用例
    7. 合体(+)とフォールバック(/)
    8. -f と -S(ソート)を組み合わせる
    9. よくあるつまずき
    10. ミニチートシート
  5. yt-dlp ダウンロード対応の動画/音声サイト
    1. よく使われる代表例
    2. うまくいくかの簡易チェック
  6. よくある質問
    1. Q. Yt-dlpとは何ですか?
    2. Q. Yt-dltとは?
    3. Q. Yt-dlpでTVerをダウンロードできなくなったのはなぜですか?
    4. Q. 「yt-dlp: command not found」と出るのはなぜですか?
    5. Q. 「HTTP Error 403: Forbidden」が出て取得できません
    6. Q. Yt-dlgとは何ですか?
  7. 字幕・サムネ・メタデータのダウンロード
  8. yt-dlp Windows での使い方
    1. 方法1:exeファイルをダウンロードして使う(最も簡単)
    2. 方法2:Scoopでインストール
    3. 方法3:wingetでインストール(Windows 11/10対応)
  9. 関連コマンド
    1. yt-dlp と youtube-dl の違い(早見表)
  10. 備考
  11. 参考
  12. 関連記事

構文(Syntax)

yt-dlp [オプション] <URL>

yt-dlp のオプション一覧

オプション説明使用例
<URL>ダウンロードする動画のURLを指定yt-dlp https://youtu.be/abc123
-F利用可能なフォーマット一覧を表示yt-dlp -F https://youtu.be/abc123
-f FORMATダウンロードするフォーマットを指定yt-dlp -f 22 https://youtu.be/abc123
-o TEMPLATE保存ファイル名を指定yt-dlp -o "%(title)s.%(ext)s" URL
-x音声のみ抽出yt-dlp -x https://youtu.be/abc123
--audio-format mp3音声を特定形式に変換yt-dlp -x --audio-format mp3 URL
--playlist-items ITEM_SPECプレイリストの特定アイテムだけ取得yt-dlp --playlist-items 1,3,5 URL
--download-archive FILEダウンロード済みを記録して重複防止yt-dlp --download-archive archive.txt URL
--merge-output-format FORMAT動画と音声を結合するときの形式指定yt-dlp -f "bestvideo+bestaudio" --merge-output-format mp4 URL
-P PATH保存先ディレクトリを指定yt-dlp -P ./downloads URL

yt-dlp のインストール方法

yt-dlp は Python 製のツールなので、環境によっていくつかの導入手順があります。
以下では代表的な方法を紹介します。

1. pip(Python パッケージ)でインストール

最も標準的で推奨される方法です。Python3 が入っていれば利用できます。

# インストール
pip install -U yt-dlp

# インストール確認
yt-dlp --version

-U を付けることで最新版にアップデートも行えます。

2. バイナリ(単体ファイル)を使う

Python 環境を準備したくない場合は、配布されている単体バイナリを利用できます。

# Linux / macOS
wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp
chmod a+rx yt-dlp
sudo mv yt-dlp /usr/local/bin/

# Windows(PowerShell)
Invoke-WebRequest https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe -OutFile yt-dlp.exe

ダウンロードしたファイルをそのまま実行できます。
例:./yt-dlp <URL> または yt-dlp.exe <URL>

3. Homebrew(macOS / Linux)

Homebrew を利用している場合は次の方法で導入できます。

brew install yt-dlp

4. Scoop(Windows)

Windows で Scoop を使う場合は以下。

scoop install yt-dlp

5. 更新方法

  • pip インストール版 pip install -U yt-dlp
  • バイナリ版 yt-dlp -U (自己アップデート機能で最新版を取得)

補足

  • FFmpeg が必要な機能(音声抽出・結合など)も多いため、あわせてインストールしておくと便利です。
  • Windows の場合、yt-dlp.exePATH が通ったディレクトリ(例: C:\Windows\System32)に置くとどこからでも実行できます。

手軽に始めたいなら バイナリ版、普段から Python を使うなら pip 版が便利です。

yt-dlp 実行例

基本的な動画ダウンロード

yt-dlp https://youtu.be/abc123

利用可能なフォーマットを確認

yt-dlp -F https://youtu.be/abc123

出力例:

format code  extension  resolution  note
249          webm       audio only tiny   50k , opus @ 50k
140          m4a        audio only medium 128k , m4a
18           mp4        360p       small
22           mp4        720p       hd720

特定フォーマットを指定してダウンロード

yt-dlp -f 22 https://youtu.be/abc123

音声のみを MP3 で保存

yt-dlp -x --audio-format mp3 https://youtu.be/abc123

保存ファイル名をカスタマイズ

yt-dlp -o "%(title)s.%(ext)s" https://youtu.be/abc123

プレイリストの一部だけダウンロード

yt-dlp --playlist-items 1,3,5 https://youtube.com/playlist?list=xyz

既にダウンロードした動画をスキップ

yt-dlp --download-archive archive.txt https://youtu.be/abc123

エラー例(存在しない動画URL)

yt-dlp https://youtu.be/notfound

出力例:

ERROR: [youtube] notfound: Video unavailable

yt-dlp 画質指定

まずは実行できるサンプルコードがこちら

# 最高画質 分離ストリーム優先 → まとめて1ファイルに
yt-dlp -f "bv*+ba/b" --remux-video mp4 "URL"

# 1080p上限
yt-dlp -f "bv*[height<=?1080]+ba/b[height<=?1080]" --remux-video mp4 "URL"

# 720p上限
yt-dlp -f "bv*[height<=?720]+ba/b[height<=?720]" --remux-video mp4 "URL"

# H.264優先
yt-dlp -f "bv*[vcodec~=^avc1][height<=?1080]+ba[acodec~=^mp4a]/b[ext=mp4][height<=?1080]" --remux-video mp4 "URL"

# 音声のみ m4a
yt-dlp -f "bestaudio[ext=m4a]/bestaudio" -x --audio-format m4a "URL"

画質について変更する場合には ffmpeg が必要になるので、あらかじめインストールしておいてください。

-f 基本の考え方

  • まず yt-dlp -F "URL"配信側が用意しているフォーマット一覧(ID・解像度・コーデック等)を確認。
  • -f はその一覧から 「どれを取るか」 を指定する仕組みです。
  • 典型は 映像と音声を別々に選んで結合video + audio)、ダメなら 一体型へフォールバック/)という流れ。

書式の全体像

-f "<selector>[/<fallback>[/<fallback>...]]"
  • <selector> … 取りたい形式を表す“選択子”
  • / で区切ると 上から順に試して、無ければ次へ(フォールバック)

選択子の種類

1) フォーマットIDを直指定

-f 137+140      # 例:137(映像)+ 140(音声)
  • -F で見えた format_id をそのまま使う。確実だが都度 ID を調べる必要あり。

2) ショートハンド

best            # そのサイトで“最良”と判定された単体(映像+音声一体型ならそれ)
worst
bestvideo       # 映像だけの最良
bestaudio       # 音声だけの最良
worstvideo / worstaudio
  • 組み合わせて使うのが実務では便利: -f "bestvideo+bestaudio/best" まずは分離ストリームの最良同士を結合、無ければ一体型の最良。

3) 角括弧のフィルタ(条件指定)

選択子の末尾に [key OP value] を重ねて、条件で絞り込みます(複数可)。

主なキー(よく使うもの)

  • ext(コンテナ拡張子: mp4, webm など)
  • vcodec / acodec(映像/音声コーデック: avc1, h264, vp9, av01, mp4a など)
  • height, width, fps
  • tbr(総ビットレート, kbps 相当), vbr, abr
  • filesize / filesize_approx(単位は K, M, G 可)
  • language, proto(http, https, m3u8 など)

演算子

  • =, !=, <, <=, >, >=
  • 文字列向け:^=(前方一致), $=(後方一致), *=(部分一致), ~=(正規表現)
  • 安全比較(値が不明でも落とさない):比較記号の直後に ?
    例:[height<=?1080] … 高さが不明なら“合格扱い”にする

使用例

# 1080p 以内
-f "bestvideo[height<=?1080]+bestaudio/best[height<=?1080]"

# H.264(AAC) を優先(古い再生環境向け)
-f "bestvideo[vcodec^=avc1][height<=?1080]+bestaudio[acodec^=mp4a]/best[ext=mp4]"

# 60fps 以上に限定(上限1080p)
-f "bestvideo[fps>=60][height<=?1080]+bestaudio/best[height<=?1080]"

# ファイルサイズを 800MB 未満に(※サイズ情報がない配信では効かない)
-f "bestvideo[filesize<=800M]+bestaudio/best[filesize<=800M]"

合体(+)とフォールバック(/)

  • +複数の形式を同時に選んで結合(主に「映像だけ」+「音声だけ」)
  • /無かった時の代替を順に書く

実務の定番:

yt-dlp -f "bestvideo+bestaudio/best" --remux-video mp4 "URL"
  • まずは分離ストリームの最良同士を取り、ffmpeg で結合
  • 分離が無い/結合不可なら 一体型の最良
  • --remux-video mp4再エンコード無しで MP4 に詰め替え(速くて劣化なし)

変換まで強制したいなら --recode-video mp4(再エンコードあり)

-f と -S(ソート)を組み合わせる

-f は“どのグループから選ぶか”“条件で除外するか”が得意、
どれを優先的に選ぶかの細かな好み-S--format-sort)が得意です。

例:解像度 → fps → コーデック(H.264 を優先)→ ビットレートの順で最良を選びたい

yt-dlp -S "res,fps,codec:avc1,tbr" -f "bestvideo+bestaudio/best" --remux-video mp4 "URL"
  • まず -S で並べ替え → -f の先頭候補が自然に“望む最良”になる
  • “とにかく MP4 がいい”なら -S "ext:mp4:m4a,res,fps" なども

よくあるつまずき

  • 結合に ffmpeg が必要sudo apt install -y ffmpeg
  • 条件が厳しすぎてヒットゼロ[height<=1080]<=?1080 のように 安全比較を使う
  • MP4 が出てこない--remux-video mp4(詰め替え)か、無理なら --recode-video mp4
  • サイズ制限が効かない:配信側がサイズ未提供だと filesize 条件は機能しません

ミニチートシート

best / worst / bestvideo / bestaudio
[height<=?1080] [fps>=60] [ext=mp4]
[vcodec^=avc1] [acodec^=mp4a]
[filesize&lt;=800M]

video+audio / fallback with "/"

-F で現物を見て → 上の部品を組み合わせれば、狙い通りの“画質・互換・サイズ”で安定して落とせます。
もし「このURLで“厳密に 1080p・H.264・m4a・サイズ<1GB”」のようなピンポイント条件があれば、その URL を前提に最適な -f 式を作って渡します。

yt-dlp ダウンロード対応の動画/音声サイト

ざっくり言うと、対応サイトの“正式な一覧”は公式の supportedsites.md にまとまっています(数千サイト対応)。最新はここで確認できます。

よく使われる代表例

  • YouTube
  • Vimeo
  • SoundCloud
  • Twitch
  • X(旧Twitter)
  • Instagram
  • Facebook
  • TikTok
  • Bilibili
  • ニコニコ動画

など、メジャーどころは広く対応しています(完全版は公式の supportedsites.md 参照)。 GitHub

うまくいくかの簡易チェック

対応リストから探すよりも、実際にコマンドを打つことで対応しているかが確認できます。

# 実際にダウンロードせず、取得可否だけ確認
yt-dlp -s <URL>

# 取得可能なフォーマット一覧を確認
yt-dlp -F <URL>

-F/--list-formats は各サイトごとの対応フォーマットを確認するのに便利です。) PyPI

注意:DRM付き配信や海賊版サイトは非対応だったり、利用規約に反するダウンロードは違法になる場合があります。合法かつ規約に従って使ってください。最近は「海賊版用途が主」と判断されたサイトがサポート外と明言されるケースもあります。 The FreeBSD Forums

よくある質問

Q. Yt-dlpとは何ですか?

yt-dlp は、動画配信サイトからのダウンロードやメタデータ抽出を行うコマンドラインツールです。元祖の youtube-dl をフォークしており、対応サイトの多さ・更新の速さ・高度なオプション(字幕・サムネ・チャプター・プレイリスト一括取得、リマックス/再エンコード制御 など)が特徴です。

基本形は次の通りです。

# 単体動画
yt-dlp <URL>

# プレイリストをまとめて
yt-dlp -o "%(playlist_index)s-%(title)s.%(ext)s" <PLAYLIST_URL>

# 字幕・サムネ・説明文も保存
yt-dlp --write-subs --sub-langs all --embed-subs \
       --embed-thumbnail --write-description --write-info-json <URL>

Q. Yt-dltとは?

yt-dlt はしばしば見かける誤記です。正式名称は yt-dlp
関連用語として、フォーク元の youtube-dl(更新が緩やか)や、GUI フロントエンドの yt-dlg(後述)があります。

Q. Yt-dlpでTVerをダウンロードできなくなったのはなぜですか?

代表的な原因は次のとおりです(複数が同時に絡むこともあります)。

  1. サイト側の仕様変更
    再生ページ構造やトークン取得手順が変わると、旧バージョンの yt-dlp は失敗します。
    → まずは最新版へ更新してください。 yt-dlp -U # 自己更新(配布形態によっては権限が必要) # あるいは pip install -U yt-dlp
  2. DRM(著作権保護)による暗号化
    TVer では作品や時期により Widevine などの DRM が用いられる場合があり、
    DRM 付き配信は yt-dlp ではダウンロードできません(技術的・法的に非対応)。
  3. ログイン・地域・年齢制限
    アカウント必須や 日本国内限定(ジオブロック) のケースがあります。
    ブラウザ Cookies を渡すと解決することがあります。 # 既定ブラウザのCookieを取り込む(Chrome/Edge/Firefox等) yt-dlp --cookies-from-browser chrome <TVerのURL> # 詳細ログで原因を確認 yt-dlp -Uv <TVerのURL>
  4. 広告スキームやセグメント取得方法の変更
    HLS(M3U8) の取得手順や署名付きURLの挙動が変わると失敗します。
    バージョン更新・時間を置いた再試行・Issueでの進捗確認が必要になることがあります。

注意:配信サービスの利用規約・著作権法に必ず従ってください。
視聴目的の範囲を超える保存やDRM回避は法律・規約に抵触する可能性があります。

Q. 「yt-dlp: command not found」と出るのはなぜですか?

主な原因はPATHが通っていないことです。バイナリ版を使っている場合は、配置したディレクトリが PATH に含まれているか確認してください。

# どこに配置したか確認
which yt-dlp

# pip版が見つからない場合はユーザーローカルのbinを確認
python3 -m pip show yt-dlp
echo $PATH

pip でインストールしたのに実行できない場合は、pip install --user -U yt-dlp でインストールされた場所(~/.local/bin など)が PATH に含まれているかを確認しましょう。

Q. 「HTTP Error 403: Forbidden」が出て取得できません

配信側の仕様変更やアクセス制限が主な原因です。次の順で確認してください。

  1. まず最新版に更新する:yt-dlp -U または pip install -U yt-dlp
  2. ブラウザのCookieを渡してログイン状態を再現する:yt-dlp --cookies-from-browser chrome <URL>
  3. User-Agentを明示的に指定する:yt-dlp --user-agent "Mozilla/5.0" <URL>

それでも解決しない場合は、配信サイト側で一時的にアクセス制限がかかっている可能性があるため、時間をおいて再試行してください。

Q. Yt-dlgとは何ですか?

yt-dlg(「YouTube-DL GUI」)は、yt-dlp/youtube-dlボタン操作で使えるGUIフロントエンドです。
ダウンロード先のテンプレート、画質や字幕の選択、キュー管理などを画面から設定できます。
「コマンドは苦手だが yt-dlp の機能を使いたい」という場合に役立ちます。

字幕・サムネ・メタデータのダウンロード

yt-dlp は動画本体以外にも字幕・サムネイル・説明文などを取得できます。

# 利用可能な字幕言語を確認
yt-dlp --list-subs https://youtu.be/abc123

# 日本語字幕を埋め込んでダウンロード
yt-dlp --write-subs --sub-langs ja --embed-subs https://youtu.be/abc123

# 自動生成字幕を含む全言語の字幕を埋め込む
yt-dlp --write-auto-subs --write-subs --sub-langs all --embed-subs https://youtu.be/abc123

# サムネイル・説明文・メタデータも保存
yt-dlp --embed-thumbnail --write-description --write-info-json https://youtu.be/abc123

yt-dlp Windows での使い方

Windowsで yt-dlp を使う方法は複数あります。

方法1:exeファイルをダウンロードして使う(最も簡単)

  1. GitHub Releases から yt-dlp.exe をダウンロード
  2. C:\Windows\System32 や任意のPATHが通ったフォルダに配置
  3. コマンドプロンプトまたはPowerShellで yt-dlp <URL> を実行
# PowerShell でexeをダウンロード
Invoke-WebRequest https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe -OutFile yt-dlp.exe

# 実行テスト
.\yt-dlp.exe --version

方法2:Scoopでインストール

scoop install yt-dlp
scoop install ffmpeg   # 音声変換などに必要

方法3:wingetでインストール(Windows 11/10対応)

winget install yt-dlp

Windowsでは ffmpegも別途インストール が必要です。音声変換(-x --audio-format mp3)や映像と音声の結合(-f bestvideo+bestaudio)にffmpegが使われます。

関連コマンド

  • youtube-dl : 元になったツール(開発停滞中)。
  • ffmpeg : 動画や音声の変換で併用されることが多い。

yt-dlp と youtube-dl の違い(早見表)

項目yt-dlpyoutube-dl
開発状況活発(頻繁に更新)更新が緩やか
対応サイトの追従仕様変更に早く対応反映が遅れがち
ダウンロード速度並列処理などで高速標準的
拡張オプションフォーマット選択・字幕・SponsorBlock対応など豊富基本的な機能が中心
コマンド互換性youtube-dlのオプションをほぼ踏襲

迷ったら、活発にメンテナンスされているyt-dlpを選んでおけば安心です。youtube-dlから乗り換える場合も、多くのオプションがそのまま使えます。

備考

  • yt-dlppip やパッケージマネージャ(brew install yt-dlp, apt install yt-dlp)で導入可能。
  • ほとんどの処理に ffmpeg が必要なため、インストールしておくと便利。
  • ダウンロード対象によっては利用規約に違反する可能性があるため、利用は自己責任で行う必要があります。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント

  1. わきた より:

    判りやすい解説、ありがとうございます。
    windows環境なら、yt-dlp & ffmpeg ともに、msys2 でも利用可能です。
    ビルド環境違いで、mingw64, ucrt64, clang64, clangarm64 の、4つのバージョンがあります(私は ucrt派です)
    msys2 の bash で yt-dlp、便利で快適です。