yt-dlp とは?
OSS で開発されている YouTube のサイトから json の api などを解析し、動画をダウンロードするツール。
yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader
私的利用で YouTube に上げたプライベートな動画をダウンロードするのに、怪しい web サイトを使いたくなかったので yt-dlp を利用した。
インストール
Installation · yt-dlp/yt-dlp Wiki に記載があるので、ここを参考にすると良い。 自分の環境では wsl に python3 がインストールされているので、
python3 -m pip install -U yt-dlp
だけで完了した。
高画質でダウンロード
-F オプションでダウンロードできる形式と解像度が確認できる。
$ yt-dlp -F --progress "https://www.youtube.com/watch?v=xxxxxxxxx"
[info] Available formats for :
ID EXT RESOLUTION FPS HDR 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
233 mp4 audio only │ m3u8 │ audio only unknown [ja] Default
234 mp4 audio only │ m3u8 │ audio only unknown [ja] Default
139 m4a audio only 2 │ 13.70MiB 49k https │ audio only mp4a.40.5 49k 22k [ja] low, m4a_dash
140 m4a audio only 2 │ 36.35MiB 129k https │ audio only mp4a.40.2 129k 44k [ja] medium, m4a_dash
251 webm audio only 2 │ 37.16MiB 132k https │ audio only opus 132k 48k [ja] medium, webm_dash
269 mp4 256x144 29 │ ~ 54.47MiB 189k m3u8 │ avc1.4D400C 189k video only
160 mp4 256x144 29 │ 22.38MiB 80k https │ avc1.4D400C 80k video only 144p, mp4_dash
603 mp4 256x144 29 │ ~ 47.97MiB 167k m3u8 │ vp09.00.11.08 167k video only
278 webm 256x144 29 │ 24.57MiB 88k https │ vp09.00.11.08 88k video only 144p, webm_dash
631 mp4 256x144 29 10 │ ~ 63.81MiB 222k m3u8 │ vp09.02.11.10 222k video only
330 webm 256x144 29 10 │ 39.78MiB 142k https │ vp09.02.11.10 142k video only 144p HDR, webm_dash
229 mp4 426x240 29 │ ~103.40MiB 360k m3u8 │ avc1.4D4015 360k video only
133 mp4 426x240 29 │ 48.49MiB 173k https │ avc1.4D4015 173k video only 240p, mp4_dash
604 mp4 426x240 29 │ ~ 86.37MiB 300k m3u8 │ vp09.00.20.08 300k video only
242 webm 426x240 29 │ 47.07MiB 168k https │ vp09.00.20.08 168k video only 240p, webm_dash
632 mp4 426x240 29 10 │ ~ 95.90MiB 334k m3u8 │ vp09.02.21.10 334k video only
331 webm 426x240 29 10 │ 71.67MiB 255k https │ vp09.02.21.10 255k video only 240p HDR, webm_dash
230 mp4 640x360 29 │ ~229.20MiB 797k m3u8 │ avc1.4D401E 797k video only
134 mp4 640x360 29 │ 91.30MiB 325k https │ avc1.4D401E 325k video only 360p, mp4_dash
18 mp4 640x360 29 2 │ 117.62MiB 419k https │ avc1.42001E mp4a.40.2 44k [ja] 360p
605 mp4 640x360 29 │ ~163.72MiB 570k m3u8 │ vp09.00.21.08 570k video only
243 webm 640x360 29 │ 85.98MiB 306k https │ vp09.00.21.08 306k video only 360p, webm_dash
633 mp4 640x360 29 10 │ ~211.74MiB 737k m3u8 │ vp09.02.30.10 737k video only
332 webm 640x360 29 10 │ 154.75MiB 551k https │ vp09.02.30.10 551k video only 360p HDR, webm_dash
231 mp4 854x480 29 │ ~394.27MiB 1372k m3u8 │ avc1.4D401F 1372k video only
135 mp4 854x480 29 │ 172.61MiB 615k https │ avc1.4D401F 615k video only 480p, mp4_dash
606 mp4 854x480 29 │ ~271.20MiB 943k m3u8 │ vp09.00.30.08 943k video only
244 webm 854x480 29 │ 151.19MiB 538k https │ vp09.00.30.08 538k video only 480p, webm_dash
634 mp4 854x480 29 10 │ ~362.73MiB 1262k m3u8 │ vp09.02.31.10 1262k video only
333 webm 854x480 29 10 │ 292.98MiB 1043k https │ vp09.02.31.10 1043k video only 480p HDR, webm_dash
22 mp4 1280x720 29 2 │ ≈383.02MiB 1332k https │ avc1.64001F mp4a.40.2 44k [ja] 720p
232 mp4 1280x720 29 │ ~727.85MiB 2532k m3u8 │ avc1.64001F 2532k video only
136 mp4 1280x720 29 │ 338.06MiB 1204k https │ avc1.64001F 1204k video only 720p, mp4_dash
609 mp4 1280x720 29 │ ~506.91MiB 1763k m3u8 │ vp09.00.31.08 1763k video only
247 webm 1280x720 29 │ 318.46MiB 1134k https │ vp09.00.31.08 1134k video only 720p, webm_dash
635 mp4 1280x720 29 10 │ ~782.44MiB 2722k m3u8 │ vp09.02.40.10 2722k video only
334 webm 1280x720 29 10 │ 665.27MiB 2369k https │ vp09.02.40.10 2369k video only 720p HDR, webm_dash
270 mp4 1920x1080 29 │ ~ 1.43GiB 5100k m3u8 │ avc1.640028 5100k video only
137 mp4 1920x1080 29 │ 744.60MiB 2652k https │ avc1.640028 2652k video only 1080p, mp4_dash
614 mp4 1920x1080 29 │ ~813.61MiB 2830k m3u8 │ vp09.00.40.08 2830k video only
248 webm 1920x1080 29 │ 525.06MiB 1870k https │ vp09.00.40.08 1870k video only 1080p, webm_dash
636 mp4 1920x1080 29 10 │ ~ 1.25GiB 4439k m3u8 │ vp09.02.41.10 4439k video only
335 webm 1920x1080 29 10 │ 1.11GiB 4031k https │ vp09.02.41.10 4031k video only 1080p HDR, webm_dash
下記で高画質 & 高音質なものを選択して結合できるのだが、注意として ffmpeg がインストールされている必要がある。
yt-dlp -f 636+251 -N10 --progress "https://www.youtube.com/watch?v=xxxxxxxxx"
# ffmpeg がインストールされていないと下記の注意が出る
WARNING: You have requested merging of multiple formats but ffmpeg is not installed. The formats won't be merged
もし個別にダウンロードされてしまった場合は、動画編集ソフトなどで結合するとよいだろう。