yt-dlpの使い方

yt-dlp の使い方メモ(2025年版)|パソコンお兄さん
[yt-dlp(github)](yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader)

CLIのソフトウェアなので、ターミナル上で操作します

windows

choco install yt-dlp

githubのページからでも可
但しその場合パスが通ってないので通すか、同じディレクトリ内で.\yt-dlp.exeと打つ

yt-dlp [option] [URL]

オプション

update

-U

音声抽出

-x

または

--extract-audio  

拡張子を指定するときは、以下のようにオプションを付ける

-x --audio-format [ext]

[ext]には以下のような拡張子が指定できる

  • aac
  • alac
  • flac
  • m4a
  • mp3
  • opus
  • vorbis
  • wav

プレイリスト一括

-i [URL]

[URL]はプレイリストのURL
(https://www.youtube.com/playlist?list=…)

パス指定

ダウンロードするファイルの名前と場所を指定する

-o ".\hoge\%(uploader)s\%(title)s.%(ext)s"

%(uploader)s:チャンネル名
%(title)s:動画タイトル
%(ext)s:拡張子

有料動画など

メンバー限定の動画などは課金しているアカウントのcookieを取得することでダウンロード可能

以下の拡張機能を使ってcookies.txtを取得
Get cookies.txt LOCALLY - Chrome ウェブストア

youtubeのページでExport All Cookiesを選択

テキストファイルがダウンロードされるのでわかりやすい名前(ここではcookies.txtとする)に変える
カレントディレクトリに持ってきて、以下のように指定

--cookies .\cookies.txt

閲覧権限を持ったcookieはしばらくすると失効するので、エラー吐いたらcookie.txtを再生成する(重複スキップオプションを使うと楽)

音声ファイルのサムネ埋め込み

--embed-thumbnail

サムネも保存

--write-thumbnail

重複スキップ

--download-archive archive.txt

画質指定

yt-dlp.exe -F [URL]

こんなものが出てくる(例)

ID  EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC        VBR ACODEC      ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        0    │                  mhtml │ images                                storyboard
sb2 mhtml 80x45        0    │                  mhtml │ images                                storyboard
sb1 mhtml 160x90       0    │                  mhtml │ images                                storyboard
sb0 mhtml 320x180      0    │                  mhtml │ images                                storyboard
139 m4a   audio only      2 │   72.98MiB   49k https │ audio only        mp4a.40.5   49k 22k [ja] low, m4a_dash
140 m4a   audio only      2 │  193.70MiB  129k https │ audio only        mp4a.40.2  129k 44k [ja] medium, m4a_dash
251 webm  audio only      2 │  191.62MiB  128k https │ audio only        opus       128k 48k [ja] medium, webm_dash
91  mp4   256x144     30    │ ~275.37MiB  184k m3u8  │ avc1.4D400C       mp4a.40.5           [ja]
160 mp4   256x144     30    │   91.45MiB   61k https │ avc1.4d400c   61k video only          144p, mp4_dash
93  mp4   640x360     30    │ ~  1.05GiB  718k m3u8  │ avc1.4D401E       mp4a.40.2           [ja]
134 mp4   640x360     30    │  357.51MiB  239k https │ avc1.4d401e  239k video only          360p, mp4_dash
18  mp4   640x360     30  2 │  428.71MiB  287k https │ avc1.42001E       mp4a.40.2       22k [ja] 360p
300 mp4   1280x720    60    │ ~  4.02GiB 2751k m3u8  │ avc1.640020       mp4a.40.2           [ja]
298 mp4   1280x720    60    │    1.67GiB 1142k https │ avc1.640020 1142k video only          720p60, mp4_dash
301 mp4   1920x1080   60    │ ~  6.93GiB 4745k m3u8  │ avc1.64002A       mp4a.40.2           [ja]
299 mp4   1920x1080   60    │    3.45GiB 2365k https │ avc1.64002a 2365k video only          1080p60, mp4_dash

基本的にはvideo onlyaudio onlyのデータを組み合わせてダウンロードする
MORE INFO_dashとついているデータを選ぶ
360pでm4a音声にしたい場合は、IDから134番と140番を選択して、

yt-dlp.exe -f 134+140 [URL]

Deno

youtubeの仕様変更に対応するため、外部JavaScriptランタイムを使った使用に変更するらしい
参考(GIGAZINE)
実際、いくつかの動画では外部JavaScriptランタイムをインストールしないとサーバーから403(権限不足)を返される

[download] Sleeping 5.00 seconds as required by the site...
ERROR: unable to download video data: HTTP Error 403: Forbidden

yt-dlpで推奨されている外部JavaScriptランタイムは"Deno"のようなので、これをインストールする(Denoだ以外だとyt-dlp使用時にランタイムを指定するオプションが必要)
Deno:Installation

irm https://deno.land/install.ps1 | iex

scoopchocolateyWingetでもインストール可能

updateしてDenoを認識させる

yt-dlp -U

標準出力に一瞬だけ[deno]と出る(はず)

あとは普通にyt-dlpを使用するのみで良い

yt-dlpをAndroidアプリにした「Seal」は、おそらく外部JavaScriptランタイムに対応しておらず(2026年1月現在)、ダウンロードできない動画がいくつかある
どうしてもAndroidでダウンロードしたい場合はTermuxやUserLAndを用いる