【youtube-dl】YouTubeから最高画質・最高音質で動画を保存する

当サイトのリンクにはアフィリエイト広告を含む場合があります。

スポンサーリンク

以前の記事が2019年に作成したものなので少し更新。
NASも新しくしてかなり余裕ができたというところもある。

収益化の都合でYouTubeの動画投稿者が一部動画を削除することがある。結構ある。(過激だったり性的だったり……)
消されてからでは何も対処できないが、消される前の対処法としてこちらの使い方を紹介しておこうと思う。

注意

この記事は違法にアップロードされた動画をダウンロードするといった行為は推奨しない。自己責任で。

本当に応援しているならローカルに保存して再生するのではなく、YouTubeで視聴して高評価とチャンネル登録を心がけよう。再生数と評価が投稿者のモチベーションに繋がる。YouTubeで収益化しているチャンネルなら尚更。
ローカル再生は最終手段。

下準備

youtube-dl(yt-dlpytdl-patchedもおすすめ)とFFmpeg(GyanD/BtbN)をダウンロードしておく。
今回私はytdl-patchedの最新版(2021.08.25.1629886051)を、FFmpegはGyanD氏のffmpeg-4.4-full_build.zipを使用した。

youtube-dl.exeとffmpeg.exeを同一フォルダ内に入れる。
環境変数等の設定はこの記事では紹介しないので、このフォルダ内で実行する前提で話を進めていく。
yt-dlpやytdl-patchedを使用する場合は適宜読み替えるか実行ファイルをyoutube-dl.exeにリネームしたりして対応してほしい。

必要なランタイムは以下の通り。

サンプルに使わせていただく動画

以前とは別のこの動画。LGの店頭表示で見る映像だと思う。

基本的な使い方

youtube-dl.exeとffmpeg.exeを同じフォルダ内に置き、コマンドラインで以下を実行するだけで動画をダウンロードすることができる。

youtube-dl [動画URL]

ここにオプションを付け加えることで画質や音質の指定、保存場所やファイル名の指定等が可能になる。

format idの確認

「-F」をつけて動画URLを渡すことで、そのURL先にどんな形式の映像・音声が存在するか確認することができる。

youtube-dl -F [動画URL]

C:\temp>youtube-dl -F https://www.youtube.com/watch?v=WEwgbKr5R9I
[youtube] WEwgbKr5R9I: Downloading webpage
[youtube] WEwgbKr5R9I: Downloading android player API JSON
[info] Available formats for WEwgbKr5R9I:
ID  EXT  RESOLUTION FPS |  FILESIZE    TBR  PROTO | VCODEC                           VBR  ACODEC     ABR  ASR    MORE INFO
--- ---- ---------- --- - ---------- ------ ----- - ------------------------------ ------ --------- ---- ------- ---------------------------------
139 m4a  audio only     |  726.67KiB   48k  https |                                       mp4a.40.5  48k 22050Hz low, m4a_dash
249 webm audio only     |  773.71KiB   52k  https |                                       opus       52k 48000Hz low, webm_dash
250 webm audio only     |  1.01MiB     69k  https |                                       opus       69k 48000Hz low, webm_dash
140 m4a  audio only     |  1.88MiB    129k  https |                                       mp4a.40.2 129k 44100Hz medium, m4a_dash
251 webm audio only     |  2.00MiB    137k  https |                                       opus      137k 48000Hz medium, webm_dash
17  3gp  176x144    8   |  1.09MiB     75k  https | mp4v.20.3                        75k  mp4a.40.2   0k 22050Hz 144p
394 mp4  256x144    30  |  927.90KiB   62k  https | av01.0.00M.10.0.110.09.16.09.0   62k                         144p HDR, mp4_dash
160 mp4  256x144    30  |  897.85KiB   60k  https | avc1.4d400c                      60k                         144p, mp4_dash
278 webm 256x144    30  |  1.09MiB     75k  https | vp9                              75k                         144p, webm_dash
694 mp4  256x144    60  |  2.00MiB    138k  https | av01.0.00M.10.0.110.09.16.09.0  138k                         144p60 HDR, mp4_dash
330 webm 256x144    60  |  2.41MiB    166k  https | vp9.2                           166k                         144p60 HDR, webm_dash
395 mp4  426x240    30  |  1.34MiB     92k  https | av01.0.00M.10.0.110.09.16.09.0   92k                         240p HDR, mp4_dash
133 mp4  426x240    30  |  1.94MiB    133k  https | avc1.4d4015                     133k                         240p, mp4_dash
242 webm 426x240    30  |  2.00MiB    137k  https | vp9                             137k                         240p, webm_dash
695 mp4  426x240    60  |  4.25MiB    292k  https | av01.0.01M.10.0.110.09.16.09.0  292k                         240p60 HDR, mp4_dash
331 webm 426x240    60  |  5.54MiB    381k  https | vp9.2                           381k                         240p60 HDR, webm_dash
396 mp4  640x360    30  |  2.73MiB    187k  https | av01.0.01M.10.0.110.09.16.09.0  187k                         360p HDR, mp4_dash
134 mp4  640x360    30  |  4.08MiB    280k  https | avc1.4d401e                     280k                         360p, mp4_dash
18  mp4  640x360    30  |  8.90MiB    612k  https | avc1.42001E                     612k  mp4a.40.2   0k 44100Hz 360p
243 webm 640x360    30  |  4.55MiB    313k  https | vp9                             313k                         360p, webm_dash
332 webm 640x360    60  |  12.34MiB   850k  https | vp9.2                           850k                         360p60 HDR, webm_dash
397 mp4  854x480    30  |  5.01MiB    345k  https | av01.0.04M.10.0.110.09.16.09.0  345k                         480p HDR, mp4_dash
135 mp4  854x480    30  |  6.65MiB    458k  https | avc1.4d401f                     458k                         480p, mp4_dash
244 webm 854x480    30  |  8.41MiB    579k  https | vp9                             579k                         480p, webm_dash
697 mp4  854x480    60  |  16.39MiB  1128k  https | av01.0.05M.10.0.110.09.16.09.0 1128k                         480p60 HDR, mp4_dash
333 webm 854x480    60  |  24.69MiB  1701k  https | vp9.2                          1701k                         480p60 HDR, webm_dash
22  mp4  1280x720   30  |            1618k  https | avc1.64001F                    1618k  mp4a.40.2   0k 44100Hz 720p
136 mp4  1280x720   30  |  21.62MiB  1489k  https | avc1.4d401f                    1489k                         720p (maybe throttled), mp4_dash
247 webm 1280x720   30  |  16.87MiB  1161k  https | vp9                            1161k                         720p (maybe throttled), webm_dash
398 mp4  1280x720   60  |  15.08MiB  1038k  https | av01.0.08M.10.0.110.09.16.09.0 1038k                         720p60 HDR, mp4_dash
698 mp4  1280x720   60  |  45.01MiB  3100k  https | av01.0.08M.10.0.110.09.16.09.0 3100k                         720p60 HDR, mp4_dash
298 mp4  1280x720   60  |  35.83MiB  2468k  https | avc1.4d4020                    2468k                         720p60, mp4_dash
302 webm 1280x720   60  |  26.45MiB  1821k  https | vp9                            1821k                         720p60, webm_dash
334 webm 1280x720   60  |  58.58MiB  4035k  https | vp9.2                          4035k                         720p60 HDR, webm_dash
399 mp4  1920x1080  60  |  28.90MiB  1990k  https | av01.0.09M.10.0.110.09.16.09.0 1990k                         1080p60 HDR, mp4_dash
699 mp4  1920x1080  60  |  73.39MiB  5055k  https | av01.0.09M.10.0.110.09.16.09.0 5055k                         1080p60 HDR, mp4_dash
299 mp4  1920x1080  60  |  62.87MiB  4331k  https | avc1.64002a                    4331k                         1080p60, mp4_dash
303 webm 1920x1080  60  |  47.81MiB  3293k  https | vp9                            3293k                         1080p60, webm_dash
335 webm 1920x1080  60  |  90.96MiB  6266k  https | vp9.2                          6266k                         1080p60 HDR, webm_dash
400 mp4  2560x1440  60  |  70.69MiB  4870k  https | av01.0.12M.10.0.110.09.16.09.0 4870k                         1440p60 HDR, mp4_dash
700 mp4  2560x1440  60  |  190.77MiB 13142k https | av01.0.12M.10.0.110.09.16.09.0 13142k                        1440p60 HDR, mp4_dash
308 webm 2560x1440  60  |  137.47MiB 9470k  https | vp9                            9470k                         1440p60, webm_dash
336 webm 2560x1440  60  |  222.02MiB 15294k https | vp9.2                          15294k                        1440p60 HDR, webm_dash
401 mp4  3840x2160  60  |  142.53MiB 9819k  https | av01.0.13M.10.0.110.09.16.09.0 9819k                         2160p60 HDR, mp4_dash
701 mp4  3840x2160  60  |  343.24MiB 23645k https | av01.0.13M.10.0.110.09.16.09.0 23645k                        2160p60 HDR, mp4_dash
315 webm 3840x2160  60  |  319.00MiB 21976k https | vp9                            21976k                        2160p60, webm_dash
337 webm 3840x2160  60  |  403.68MiB 27809k https | vp9.2                          27809k                        2160p60 HDR, webm_dash
571 mp4  7680x4320  60  |  311.77MiB 21478k https | av01.0.17M.10.0.110.09.16.09.0 21478k                        4320p60 HDR, mp4_dash
702 mp4  7680x4320  60  |  677.06MiB 46643k https | av01.0.17M.10.0.110.09.16.09.0 46643k                        4320p60 HDR, mp4_dash

C:\temp>

指定なし

youtube-dl [動画URL]

まずは何も指定せずにyoutube-dlにURLのみを渡してみる。

C:\temp>youtube-dl https://www.youtube.com/watch?v=WEwgbKr5R9I
[youtube] WEwgbKr5R9I: Downloading webpage
[youtube] WEwgbKr5R9I: Downloading android player API JSON
[info] WEwgbKr5R9I: Downloading 1 format(s): 702+251
[download] Destination: LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.f702.mp4
[download] 100% of 677.06MiB in 01:08
[download] Destination: LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.f251.webm
[download] 100% of 2.00MiB in 00:00
[Merger] Merging formats into "LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.mkv"
Deleting original file LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.f702.mp4 (pass -k to keep)
Deleting original file LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.f251.webm (pass -k to keep)

C:\temp>

format idは702と251が選択され、『LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.mkv』というファイル名で保存された。

702は7680×4320のAV1(映像)で、
251は160kほどのVBR(可変ビットレート)のOpus(音声)だ。

『best』指定

youtube-dl -f best [動画URL]

次はフォーマットを指定する「-f」というオプションを使い、『best』を指定してみる。

C:\temp>youtube-dl -f best https://www.youtube.com/watch?v=WEwgbKr5R9I
[youtube] WEwgbKr5R9I: Downloading webpage
[youtube] WEwgbKr5R9I: Downloading android player API JSON
[info] WEwgbKr5R9I: Downloading 1 format(s): 22
[download] Destination: LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.mp4
[download] 100% of 23.49MiB in 00:01

C:\temp>

format idは22が選択され、『LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.mp4』というファイル名で保存された。
22は720pのH.264(映像)とmp4a(音声)がセットになったものだ。

映像+音声のセットになった形式の中では画質も音質も高品質のものではあるのだが、DLされるのはベストとは言えない品質の動画となる。

『bestvideo+bestaudio』 指定

youtube-dl -f bestvideo+bestaudio [動画URL]

今回も「-f」を使用して『bestvideo+bestaudio』を指定し、最高画質+最高音質のものを保存してみる。

C:\temp>youtube-dl -f bestvideo+bestaudio https://www.youtube.com/watch?v=WEwgbKr5R9I
[youtube] WEwgbKr5R9I: Downloading webpage
[youtube] WEwgbKr5R9I: Downloading android player API JSON
[info] WEwgbKr5R9I: Downloading 1 format(s): 702+251
[download] Destination: LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.f702.mp4
[download] 100% of 677.06MiB in 00:17
[download] Destination: LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.f251.webm
[download] 100% of 2.00MiB in 00:00
[Merger] Merging formats into "LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.mkv"
Deleting original file LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.f251.webm (pass -k to keep)
Deleting original file LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.f702.mp4 (pass -k to keep)

C:\temp>

何も指定しなかった時と同様にformat idは702と251が選択され、『LG QNED 8K MiniLED │Shine 8K HDR 60fps-WEwgbKr5R9I.mkv』というファイル名で保存された。

youtube-dlで「 -f 」を使用せずに実行した際は『bestvideo+bestaudio/best』が指定されるようになっているので、とりあえずURLさえ渡せば最高画質+最高音質でDLされるのは嬉しいところ。

ファイル名指定

youtube-dl [動画URL] -o "%(upload_date)s_%(title)s_%(id)s.%(ext)s"

今度は「 -o 」を使用してDL後に決まるファイル名を指定する。
管理のしやすさを考えて、『[動画投稿日]_[動画タイトル]_[動画ID].[拡張子]』というファイル名にしたいので『-o “%(upload_date)s_%(title)s_%(id)s.%(ext)s”』を指定した。

C:\temp>youtube-dl https://www.youtube.com/watch?v=WEwgbKr5R9I -o "%(upload_date)s_%(title)s_%(id)s.%(ext)s"
[youtube] WEwgbKr5R9I: Downloading webpage
[youtube] WEwgbKr5R9I: Downloading android player API JSON
[info] WEwgbKr5R9I: Downloading 1 format(s): 702+251
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I.f702.mp4
[download] 100% of 677.06MiB in 00:20
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I.f251.webm
[download] 100% of 2.00MiB in 00:00
[Merger] Merging formats into "20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I.mkv"
Deleting original file 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I.f702.mp4 (pass -k to keep)
Deleting original file 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I.f251.webm (pass -k to keep)

C:\temp>

『20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I.mkv』というファイル名になった。

youtube-dl [動画URL] -o "%(upload_date)s_%(title)s_%(id)s_%(format_id)s.%(ext)s"

『%(format_id)s』を入れればformat_idをファイル名に入れることもできる。
『[動画投稿日]_[動画タイトル]_[動画ID]_[format_id].[拡張子]』を指定してみる。

C:\temp>youtube-dl https://www.youtube.com/watch?v=WEwgbKr5R9I -o "%(upload_date)s_%(title)s_%(id)s_%(format_id)s.%(ext)s"
[youtube] WEwgbKr5R9I: Downloading webpage
[youtube] WEwgbKr5R9I: Downloading android player API JSON
[info] WEwgbKr5R9I: Downloading 1 format(s): 702+251
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_702+251.f702.mp4
[download] 100% of 677.06MiB in 00:21
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_702+251.f251.webm
[download] 100% of 2.00MiB in 00:00
[Merger] Merging formats into "20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_702+251.mkv"
Deleting original file 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_702+251.f251.webm (pass -k to keep)
Deleting original file 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_702+251.f702.mp4 (pass -k to keep)

C:\temp>

拡張子の前にformat_idを入れて『20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_702+251.mkv』というファイル名にできた。

すべてのフォーマットをDLする

youtube-dl [動画URL] -f all -o "%(upload_date)s_%(title)s_%(id)s_%(format_id)s.%(ext)s"

「 -f 」に『 all 』を指定することで、動画で使われているすべてのフォーマットをDLすることができる。
『%(format_id)s』を指定しないとファイル名が同一になってしまい全てDLできないので必ず指定すること。
そして動画によってはファイル数・容量ともにかなり消費するのでおすすめしない。

C:\temp>youtube-dl https://www.youtube.com/watch?v=WEwgbKr5R9I -f all -o "%(upload_date)s_%(title)s_%(id)s_%(format_id)s.%(ext)s"
[youtube] WEwgbKr5R9I: Downloading webpage
[youtube] WEwgbKr5R9I: Downloading android player API JSON
[info] WEwgbKr5R9I: Downloading 49 format(s): 139, 249, 250, 140, 251, 17, 394, 160, 278, 694, 330, 395, 133, 242, 695, 331, 396, 134, 18, 243, 332, 397, 135, 244, 697, 333, 22, 136, 247, 398, 698, 298, 302, 334, 399, 699, 299, 303, 335, 400, 700, 308, 336, 401, 701, 315, 337, 571, 702
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_139.m4a
[download] 100% of 726.67KiB in 00:00
[FixupM4a] Correcting container of "20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_139.m4a"
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_249.webm
[download] 100% of 773.71KiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_250.webm
[download] 100% of 1.01MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_140.m4a
[download] 100% of 1.88MiB in 00:00
[FixupM4a] Correcting container of "20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_140.m4a"
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_251.webm
[download] 100% of 2.00MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_17.3gp
[download] 100% of 1.09MiB in 00:14
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_394.mp4
[download] 100% of 927.90KiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_160.mp4
[download] 100% of 897.85KiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_278.webm
[download] 100% of 1.09MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_694.mp4
[download] 100% of 2.00MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_330.webm
[download] 100% of 2.41MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_395.mp4
[download] 100% of 1.34MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_133.mp4
[download] 100% of 1.94MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_242.webm
[download] 100% of 2.00MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_695.mp4
[download] 100% of 4.25MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_331.webm
[download] 100% of 5.54MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_396.mp4
[download] 100% of 2.73MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_134.mp4
[download] 100% of 4.08MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_18.mp4
[download] 100% of 8.90MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_243.webm
[download] 100% of 4.55MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_332.webm
[download] 100% of 12.34MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_397.mp4
[download] 100% of 5.01MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_135.mp4
[download] 100% of 6.65MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_244.webm
[download] 100% of 8.41MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_697.mp4
[download] 100% of 16.39MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_333.webm
[download] 100% of 24.69MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_22.mp4
[download] 100% of 23.49MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_136.mp4
[download] 100% of 21.62MiB in 00:00
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_247.webm
[download] 100% of 16.87MiB in 00:02
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_398.mp4
[download] 100% of 15.08MiB in 00:07
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_698.mp4
[download] 100% of 45.01MiB in 00:06
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_298.mp4
[download] 100% of 35.83MiB in 00:05
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_302.webm
[download] 100% of 26.45MiB in 00:03
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_334.webm
[download] 100% of 58.58MiB in 00:08
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_399.mp4
[download] 100% of 28.90MiB in 00:04
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_699.mp4
[download] 100% of 73.39MiB in 00:10
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_299.mp4
[download] 100% of 62.87MiB in 00:09
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_303.webm
[download] 100% of 47.81MiB in 00:06
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_335.webm
[download] 100% of 90.96MiB in 00:12
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_400.mp4
[download] 100% of 70.69MiB in 00:37
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_700.mp4
[download] 100% of 190.77MiB in 00:27
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_308.webm
[download] 100% of 137.47MiB in 00:22
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_336.webm
[download] 100% of 222.02MiB in 00:31
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_401.mp4
[download] 100% of 142.53MiB in 00:29
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_701.mp4
[download] 100% of 343.24MiB in 00:48
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_315.webm
[download] 100% of 319.00MiB in 00:43
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_337.webm
[download] 100% of 403.68MiB in 00:16
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_571.mp4
[download] 100% of 311.77MiB in 00:53
[download] Destination: 20210624_LG QNED 8K MiniLED │Shine 8K HDR 60fps_WEwgbKr5R9I_702.mp4
[download] 100% of 677.06MiB in 00:18

C:\temp>

私が使っているもの

私は.batに以下のようなコマンドを書いて使用している。
.bat上では%は%%と表記しないと正常に動作しないので注意。(参考)

youtube-dl [動画URL] -i -f bestvideo+251/bestvideo+bestaudio/best --download-archive ytdownloaded.txt --match-filter "!is_live" --add-metadata --embed-subs --embed-thumbnail --write-info-json --merge-output-format mkv -o "\videos\%%(upload_date)s_%%(title)s_%%(id)s_%%(format_id)s.%%(ext)s"

オプション解説

WordPress上では文中にハイフンを2つ連続して表示させることができないらしい。
記事の見出しや本文中にハイフンを2つ入力するとemダッシュ1つに変換されてしまうようだ。(参考)
コードを表示するブロック内では正しく表示できるらしいので、見出しの下にコードブロックを配置しておく。

動画URL

動画のURLを渡すとその動画のみ、チャンネルのURLを渡すことでチャンネル内の動画、再生リストのURLを渡すことで再生リストを一括でDLしてくれる。
気に入ったチャンネルはある程度保存しているので安心していられる。

-i (–ignore-errors)

-i (--ignore-errors)

ダウンロード時にエラーが出ても無視して次のダウンロードを続ける。いちいち止まらないのでプレイリストやチャンネル一括DLの時にはこれをつけておくといい。

-f (–format)

-f (--format)

format codeの指定ができる。私は今回『bestvideo+251/bestvideo+bestaudio/best』と指定した。
『bestvideo+251』 → 『bestvideo+bestaudio』 → 『best』の順でDLを試すような形。

以前251(Opus)があるのに140(mp4a)をDLしようとしたことがあるので敢えて251を指定しているが、今はもうbestvideo+bestaudioだけでいいかもしれない。
以下の記事にformat codeをまとめたものもあるので参考にしてほしい。

–download-archive ytdownloaded.txt

--download-archive ytdownloaded.txt

ダウンロードが完了した動画IDを「ytdownloaded.txt」という名前でテキストファイルに保存する。名前はもちろん変更可。
ダウンロード済みの動画をスキップしてくれるので余計な時間がかからないのでおすすめ。
.txtが存在しない場合は新規作成してくれる。

–match-filter

--match-filter

条件を指定してダウンロードするかどうかを決めることができる。
私は『”!is_live”』を指定した。『is_live』でライブ配信のみを指定でき、その前に『!』を入れることで条件を反転することができる。
チャンネル動画を一括DLしたいのにライブ配信中だとライブ配信を優先してしまうので、敢えてこれを指定している。

–add-metadata –embed-subs –embed-thumbnail –write-info-json

--add-metadata --embed-subs --embed-thumbnail --write-info-json

面倒だから一つにまとめてしまったが以下の通り。

『--add-metadata』はメタデータを動画に埋め込む
『--embed-subs』は字幕が存在する場合動画に埋め込む
『--embed-thumbnail』はサムネイル画像を動画に埋め込む
『--write-info-json』は動画情報を別ファイル(.json)で保存

–merge-output-format

--merge-output-format

動画のみと音声のみのファイルを指定する場合は勝手に結合してくれるが、webmに入るなら.webmという拡張子になったり、mp4になったりする。

フォーマットによって拡張子が変わるのは面倒なので、何でも入るコンテナの『mkv』を指定。全部mkvに一本化してほしい。

–playlist-end

--playlist-end

『5』を指定しているので、渡したチャンネルURLや再生リストの最新5件のみを保存してくれる。

定期的に.batを実行している場合や、全動画をDLする必要がない時にこのオプションをつけている。

-o (–output)

-o (--output)

ファイル名の指定が可能。
私は今回『”\videos\%%(upload_date)s_%%(title)s_%%(id)s_%%(format_id)s.%%(ext)s”』と指定し、videosというフォルダ内にチャンネル内の動画が一括で保存されることになる。
なお、.batなので%%と表記している(参考)

自分の好きなファイル名にしたい場合は公式リファレンス詳しく紹介しているサイトを参考にしてほしい。

参考サイト

GitHub - ytdl-org/youtube-dl: Command-line program to download videos from YouTube.com and other video sites
Command-line program to download videos from YouTube.com and other video sites - ytdl-org/youtube-dl
GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader
A feature-rich command-line audio/video downloader - yt-dlp/yt-dlp
GitHub - ytdl-patched/ytdl-patched: yt-dlp fork with some more features
yt-dlp fork with some more features. Contribute to ytdl-patched/ytdl-patched development by creating an account on GitHu...
推しVtuberのアーカイブを全部保存したい人へ - youtube-dlの使い方【2021年12月12日更新】|亀
忙しい人向け【2021年12月12日更新版】 yt-dlp.exe,ffmpeg.exe,AtomicParsley.exe を同じフォルダに入れる 以下のコマンドを記述したバッチファイルを作る @echo off set /p url=M...

コメント

  1. やす より:

    参考にさせて頂いております
    下記の動画で”-f bestvideo+bestaudio”を指定すると”248+251″がダウンロードされます、137の方がビットレートが高いので”137+140″でダウンロードされて欲しいのですが設定方法はございますでしょうか?
    動画によっては137より高解像度の物も存在するため137指定はしたくありません

    どうぞよろしくお願いいたします

    https://www.youtube.com/watch?v=XlDJ9GUf_6Q

    • hchch より:

      コメントありがとうございます。

      同じフォーマットコードを指定しても動画によってはビットレートが違うから高い方をダウンロードしたいということでしょうか?
      であれば、”-f bestvideo+bestaudio -S vbr”を指定することでビットレートがより高いものをダウンロードするようになります。(挙げて頂いた動画では137+251でダウンロードされます)
      VP9のほうが高効率なコーデックなので、念の為ビットレート等の数字ではなくAVCとVP9の品質をご自身の目で見比べてから常用するか決めることをおすすめします。

      • やす より:

        hchchさん

        早々にご返信頂きありがとうございます

        アドバイス頂いた設定で希望のものがダウンロード出来ました

        AVCとVP9についてもアドバイスありがとうございます
        確かに仰るとおりビットレートの高低だけでどちらが高画質か決めるのは早計ですね
        確認して決めたいと思います

        今後ともよろしくお願いいたしますm(_ _)m

  2. やす より:

    度々の質問で申し訳ありません

    ”『–embed-thumbnail』はサムネイル画像を動画に埋め込む”と記載頂いておりますが
    このオプションを設定するとサムネイルと思われるpngファイルとwebpファイル(内容は不明)が生成され、動画のサムネイルは作成されていない模様です

    ただ、youtube-dlではなくyt-dlpを使用しているのでオプションの動作が異なるのかもしれないので、的外れの質問でしたらご容赦ください

    どうぞよろしくお願いいたします

    • hchch より:

      コメントありがとうございます。

      このブログを運営するために使っているソフトウェアであるWordPressでは、ハイフン2つを表示させようとするとemダッシュ1つに変換されてしまうようです。
      そのため、正しくない引数が表示され、それをコピーしてしまったものと思われます。
      本文中にその点を追記しましたのでご確認ください。

      • やす より:

        hchch さん

        コメントありがとうございます

        わかり辛い書き方で申し訳ありません

        当方が質問したかったのは『ハイフン2つ+embed-thumbnail』を設定してもサムネイル画像が動画に埋め込まれないのですが、何か解決策がございましたら教えて下さいませ

        という事ですた(^^ゞ

        • hchch より:

          私の環境では正しく埋め込まれていますね。
          サムネイル画像が埋め込まれる直前まではWEBP形式やPNG形式のファイルもありますが、埋め込まれた後に削除されます。
          何かしらエラーが出ていたりしませんか?

          • やす より:

            hchchさん

            コメントありがとうございます
            エラー出てました
            (完全に見逃しておりました)
            ffprobeが無いって言ってました

            ffprobe.exeを入れたらエラーが出なくなりpngファイルとwebpファイルが動画に合成された模様です
            ちなみになのですがこの動画に埋め込まれたサムネイル画像はどこで見られるのでしょうか?
            (てっきりエクスプローラーのアイコン画像がサムネイル画像に置き換わるのかと思っていましたが違いました)

          • hchch より:

            私もエクスプローラのサムネイルに反映されれば嬉しかったのですが、そういった機能ではないようです。
            VLC Media Playerで開き、メディア情報を見ると埋め込まれていることがわかりますよ。

  3. やす より:

    hchch さん

    > VLC Media Playerで開き、メディア情報を見ると埋め込まれていることがわかりますよ。

    なるほどですね
    ありがとうございます

  4. やす より:

    何度も申し訳ありません
    タイトルの内容でダウンロードする・しないを判定する事は可能でしょうか?

    例えば
    動画、はじめてみました【テレビ朝日公式】(https://www.youtube.com/channel/UCkGCQ4TN-8gvb8QCYIqygHw/videos)からタイトルに「キョコロヒー」が含まれるもののみダウンロード出来れば嬉しいのです

    オプションの説明を見ると出来なさそうではありますが …

    どうぞよろしくお願いいたします

  5. やす より:

    (書き込みが反映されていない様なので再度書き込みいたします)
    いつも有難うございます
    再び質問させてください

    タイトルに含まれる文字列でフィルタしてダウンロードの可否を行う事は可能でしょうか?

    例えば
    動画、はじめてみました【テレビ朝日公式】(https://www.youtube.com/channel/UCkGCQ4TN-8gvb8QCYIqygHw/videos)のチャネルでタイトルに「キョコロヒー」が含まれる動画のみダウンロードしたい

    オプションの説明を読むと無理っぽい感じですが …
    もしご存知でしたらと思いまして質問させていただきました

    どうぞよろしくお願いいたします

タイトルとURLをコピーしました