yt-dlpでYoutubeからダウンロードする

  1. 適当に作業用フォルダを決める。
  2. https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe をダウンロードして置く。
  3. https://github.com/yt-dlp/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zipをダウンロードして解凍する。*1
  4. 【解凍先】\ffmpeg-master-latest-win64-gpl\binの中身をyt-dlp.exeと同階層に置く。
  5. powershellから作業用フォルダに移動し
>.\yt-dlp.exe --remux-video mp4 https://www.youtube.com/watch?v=paw_eVC6ZcY
[youtube] paw_eVC6ZcY: Downloading webpage
[youtube] paw_eVC6ZcY: Downloading android player API JSON
[info] paw_eVC6ZcY: Downloading 1 format(s): 303+251
[download] Destination: 【歌枠】おひさしぶりに歌う~!!_Singing KARAOKE【ホロライブ_夏色まつり】 [paw_eVC6ZcY].f303.webm
[download] 100% of 2.69GiB in 08:04
[download] Destination: 【歌枠】おひさしぶりに歌う~!!_Singing KARAOKE【ホロライブ_夏色まつり】 [paw_eVC6ZcY].f251.webm
[download] 100% of 90.81MiB in 00:16
[Merger] Merging formats into "【歌枠】おひさしぶりに歌う~!!_Singing KARAOKE【ホロライブ_夏色まつり】 [paw_eVC6ZcY].webm"
Deleting original file 【歌枠】おひさしぶりに歌う~!!_Singing KARAOKE【ホロライブ_夏色まつり】 [paw_eVC6ZcY].f303.webm (pass -k to keep)
Deleting original file 【歌枠】おひさしぶりに歌う~!!_Singing KARAOKE【ホロライブ_夏色まつり】 [paw_eVC6ZcY].f251.webm (pass -k to keep)
[VideoRemuxer] Remuxing video from webm to mp4; Destination: 【歌枠】おひさしぶりに歌う~!!_Singing KARAOKE【ホロライ ブ_夏色まつり】 [paw_eVC6ZcY].mp4
Deleting original file 【歌枠】おひさしぶりに歌う~!!_Singing KARAOKE【ホロライブ_夏色まつり】 [paw_eVC6ZcY].webm (pass -k to keep)

--remux-video mp4はDaVinci ResolveやVrewがWebM非対応だったので付けた(WebMでもVrewに突っ込めば変換されたけど)。

.f303.webmとか.f251.webmの数字はフォーマットを表しているっぽくて

>.\yt-dlp.exe https://www.youtube.com/watch?v=paw_eVC6ZcY --list-formats
[youtube] paw_eVC6ZcY: Downloading webpage
[youtube] paw_eVC6ZcY: Downloading android player API JSON
[info] Available formats for paw_eVC6ZcY:
ID  EXT   RESOLUTION FPS │   FILESIZE   TBR PROTO │ VCODEC        VBR ACODEC      ABR     ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2 mhtml 48x27          │                  mhtml │ images                                    storyboard
sb1 mhtml 80x45          │                  mhtml │ images                                    storyboard
sb0 mhtml 160x90         │                  mhtml │ images                                    storyboard
139 m4a   audio only     │   40.33MiB   48k https │ audio only        mp4a.40.5   48k 22050Hz low, m4a_dash
249 webm  audio only     │   40.72MiB   49k https │ audio only        opus        49k 48000Hz low, webm_dash
250 webm  audio only     │   50.63MiB   61k https │ audio only        opus        61k 48000Hz low, webm_dash
140 m4a   audio only     │  107.03MiB  129k https │ audio only        mp4a.40.2  129k 44100Hz medium, m4a_dash
251 webm  audio only     │   90.81MiB  109k https │ audio only        opus       109k 48000Hz medium, webm_dash
17  3gp   176x144      8 │   65.53MiB   79k https │ mp4v.20.3     79k mp4a.40.2    0k 22050Hz 144p
160 mp4   256x144     30 │   85.77MiB  103k https │ avc1.4d400c  103k video only              144p, mp4_dash
278 webm  256x144     30 │   74.16MiB   89k https │ vp9           89k video only              144p, webm_dash
133 mp4   426x240     30 │  197.31MiB  238k https │ avc1.4d4015  238k video only              240p, mp4_dash
242 webm  426x240     30 │  153.09MiB  185k https │ vp9          185k video only              240p, webm_dash
134 mp4   640x360     30 │  361.36MiB  437k https │ avc1.4d401e  437k video only              360p, mp4_dash
18  mp4   640x360     30 │  446.45MiB  540k https │ avc1.42001E  540k mp4a.40.2    0k 44100Hz 360p
243 webm  640x360     30 │  269.70MiB  326k https │ vp9          326k video only              360p, webm_dash
135 mp4   854x480     30 │  670.57MiB  811k https │ avc1.4d401f  811k video only              480p, mp4_dash
244 webm  854x480     30 │  480.35MiB  581k https │ vp9          581k video only              480p, webm_dash
136 mp4   1280x720    30 │    1.15GiB 1419k https │ avc1.64001f 1419k video only              720p, mp4_dash
22  mp4   1280x720    30 │ ~  1.28GiB 1547k https │ avc1.64001F 1547k mp4a.40.2    0k 44100Hz 720p
247 webm  1280x720    30 │  930.17MiB 1125k https │ vp9         1125k video only              720p, webm_dash
298 mp4   1280x720    60 │    1.50GiB 1859k https │ avc1.640020 1859k video only              720p60, mp4_dash
302 webm  1280x720    60 │    1.49GiB 1848k https │ vp9         1848k video only              720p60, webm_dash
299 mp4   1920x1080   60 │    2.71GiB 3359k https │ avc1.64002a 3359k video only              1080p60, mp4_dash
303 webm  1920x1080   60 │    2.69GiB 3334k https │ vp9         3334k video only              1080p60, webm_dash

のIDと対応してた。既定だと-f "bv*+ba/b"を指定した扱いで最高品質のをダウンロードできるらしいが、動画と音声を分割ダウンロードしない*2と妥協品質(↑だと

22 mp4 1280x720 30 │ ~ 1.28GiB 1547k https │ avc1.64001F 1547k mp4a.40.2 0k 44100Hz 720p

のが選ばれるらしい。

その他出力ディレクトリやファイル名の変更などもできる。

以下読んだサイト wiki.archlinux.jp masayoshi-9a7ee.hatenablog.com gigazine.net torusblog.org bookyakuno.com

*1:[Note: There are some regressions in newer ffmpeg versions that causes various issues when used alongside yt-dlp.らしいが、Download FFmpegから落とした奴でも動いたので謎。

*2:-f "b" 既定の/bは個別のが利用不可の場合