本文へスキップ
yt-dlp

Windows に yt-dlp をインストールする

winget・Scoop・直接ダウンロードで Windows に yt-dlp と ffmpeg を入れ、そのあと起きる PATH エラーを解決します。

1. yt-dlp を入れる

winget は Windows 10 と 11 に最初から入っていて、PATH の面倒も見てくれます。手作業で入れるときに間違えるのは、まさにそこです。

winget install yt-dlp.yt-dlp

すでに Scoop か Chocolatey を使っているなら、どちらでも同じように問題ありません:

scoop install yt-dlp
choco install yt-dlp

手動でやるなら、公式リリースページから yt-dlp.exe を一つ取ってくるだけです。PATH の通ったフォルダに置いてください。デスクトップに置いた場合、たまたまターミナルがそのフォルダにいる間しか動きません。「yt-dlp is not recognized」の典型的な原因がこれです。

2. ffmpeg を入れる

yt-dlp は ffmpeg なしでもダウンロードはできますが、面白いことはすべて ffmpeg を必要とします。分かれた映像と音声の結合、MP3 の抽出、字幕やサムネイルの埋め込み、区間の切り出し。最初の分かりにくい失敗を見てからではなく、いま入れておいてください。

winget install Gyan.FFmpeg

3. うまくいったか確認する

新しいターミナルを開いて(開いたままのものは古い PATH のままです)、実行します:

yt-dlp --version
ffmpeg -version

バージョン番号が二つ出れば完了です。

Windows でのクォート

PowerShell と cmd は bash と同じようにはクォートしません。Linux 向けの解説からコピーしたコマンドが壊れる理由は、たいていこれです。PowerShell ではシングルクォートが文字どおりに扱われるので、フォーマットセレクターや出力テンプレートにはこれが最も安全です。cmd ではダブルクォートを使います。.bat ファイルでは % をすべて二重にします。

yt-dlp -o '%(title)s.%(ext)s' URL     # PowerShell
yt-dlp -o "%(title)s.%(ext)s" URL     # cmd
yt-dlp -o "%%(title)s.%%(ext)s" URL   # inside a .bat file

ジェネレーターのシェル切り替えは、それぞれに合った形を出力します。書き換えずにそのままコピーできます。

更新

単体の yt-dlp.exeyt-dlp -U で自分自身を更新します。winget、Scoop、Chocolatey で入れた場合は同じツールで更新してください。ファイルの持ち主はパッケージマネージャーなので、自己更新は拒否されます。

よくある質問

Windows が yt-dlp を認識しないと言います。なぜ?
実行ファイルが PATH にないか、端末をインストール前に開いていたためです。まず新しい端末を開いてください。それでも駄目なら、PATH を面倒見てくれる winget か Scoop で入れてください。
Windows で yt-dlp が ffmpeg を見つけられません。
winget install Gyan.FFmpeg で入れ、新しい端末を開いて ffmpeg -version で確認してください。ffmpeg.exe を yt-dlp.exe と同じフォルダに置くのでも動きます。