追記
2021/12/27
現在youtube-dl
が遅くて使い物にならない状態ですが代わりにyt-dlpを用いると十分な速度で落とせました。
$ python -m pip install yt-dlp
$ python -m yt_dlp 動画のurl
youtube-dlが必要なのでInstall
$ pip install youtube-dl
youtube-dlを使いやすくするScript
Scriptを実行する事で作られるhistory.txt
これはDownload済みの動画のIDが記録された物で、これによって同じ動画を再び落とさずに済みます。
Downloadが上手くいかない時
品質を表す数値を直接指定してやる事で上手くいく場合がある。
品質を表す数値を列挙
$ youtube-dl --list-format <動画のIDもしくはURL>
コマンド例
$ youtube-dl --list-format _m6U18GE1CM
出力
[info] Available formats for _m6U18GE1CM:
format code extension resolution note
140 m4a audio only DASH audio 129k , m4a_dash container, mp4a.40.2@128k (44100Hz)
160 mp4 256x144 DASH video 108k , avc1.4d400b, 6fps, video only
134 mp4 640x360 DASH video 200k , avc1.4d4016, 6fps, video only
133 mp4 426x240 DASH video 242k , avc1.4d400c, 6fps, video only
135 mp4 854x480 DASH video 1155k , avc1.4d4014, 6fps, video only
137 mp4 1920x1080 DASH video 1266k , avc1.640028, 6fps, video only
136 mp4 1280x720 DASH video 2310k , avc1.4d4016, 6fps, video only
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k
36 3gp 320x180 small , mp4v.20.3, mp4a.40.2
43 webm 640x360 medium , vp8.0, vorbis@128k
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k
22 mp4 1280x720 hd720 , avc1.64001F, mp4a.40.2@192k (best)
品質を直接指定してDownload
上の出力を見ると最高画質は1920x1080で、その"format code"は137です。又"audio only"の付いた物は一つだけで、その"format code"は140です。なので
--format 137+140 --merge-output-format mkv
とする事で、最高品質がDownloadができます。
最後に
Youtube側の仕様変更に対応する為なのか、頻りに(月に数回)Versionアップしてるようです。今まで動いていたのが何故か動かなくなった時は、まずUpdateする事をお薦めします。またPCを使わずにスマホだけで落としたい場合はgoogle play storeからPydroid3
とPydroid repository plugin
を入れるとできるのでおすすめです。