使用 youtube-dl 下載視頻

18 May, 2017 / 676 words / 3 minutes read

youtube-dl 是一個使用 Python 編寫的腳本, 在視頻下載方面極其強悍, 比在線解析網站的下載速度更穩定更快, 並且對於 YouTube 的 1080p 及以上的視頻可以自動合併音視頻(需要 ffmpeg);由於這是一個命令腳本工具, 沒有UI界面, 因此它強大的功能就要靠參數來實現, 借用不同的參數可以實現不同的下載方式, 比如指定格式, 下載視頻字幕, 批量下載, 代理下載等等。

安裝 youtube-dl

所有 UNIX 用戶可通過 curl 下載

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

sudo chmod a+rx /usr/local/bin/youtube-dl

通過 pip

sudo pip install --upgrade youtube_dl

macOS 用戶通過 brew

brew install youtube-dl

查詢 youtube 視頻格式

youtube-dl -F [url]

下載指定 youtube 視頻格式

youtube-dl -f [format code] [url]

如果需要下載 1080p 視頻與音頻合併
[format code] 填寫 137+140

youtube-dl -f [format code] [url]

例如

λ  ~ youtube-dl -F https://www.youtube.com/watch\?v\=Y2VF8tmLFHw
[youtube] Y2VF8tmLFHw: Downloading webpage
[youtube] Y2VF8tmLFHw: Downloading video info webpage
[youtube] Y2VF8tmLFHw: Extracting video information
[youtube] Y2VF8tmLFHw: Downloading MPD manifest
[info] Available formats for Y2VF8tmLFHw:
format code  extension  resolution note
139          m4a        audio only DASH audio   57k ,  m4a_dash container,  [email protected] 48k (22050Hz),  53.63MiB
140          m4a        audio only DASH audio  136k ,  m4a_dash container,  [email protected] (44100Hz),  143.24MiB
160          mp4        256x144    DASH video  127k ,  avc1.4d400c,  30fps,  video only,  67.86MiB
133          mp4        426x240    DASH video  285k ,  avc1.4d4015,  30fps,  video only,  148.38MiB
134          mp4        640x360    DASH video  646k ,  avc1.4d401e,  30fps,  video only,  258.74MiB
135          mp4        854x480    DASH video 1172k ,  avc1.4d401f,  30fps,  video only,  510.83MiB
136          mp4        1280x720   DASH video 2359k ,  avc1.4d401f,  30fps,  video only,  1002.76MiB
137          mp4        1920x1080  DASH video 4613k ,  avc1.640028,  30fps,  video only,  2.75GiB
17           3gp        176x144    small ,  mp4v.20.3,  [email protected] 24k
36           3gp        320x180    small ,  mp4v.20.3,  mp4a.40.2
18           mp4        640x360    medium ,  avc1.42001E,  [email protected] 96k
22           mp4        1280x720   hd720 ,  avc1.64001F,  [email protected] (best)

下載視頻字幕

youtube-dl --write-sub [url] //這樣會下載一個vtt格式的英文字幕和mkv格式的1080p視頻下來

youtube-dl --write-sub --skip-download [url] //下載單獨的vtt字幕文件, 而不會下載視頻

youtube-dl --write-sub --all-subs [url] //下載所有語言的字幕(如果有的話)

youtube-dl --write-auto-sub [url] //下載自動生成的字幕(YouTube only)

之後

youtube-dl -f 137+140 https://www.youtube.com/watch\?v\=Y2VF8tmLFHw

下載視頻列表

youtube-dl -f [format code] [playlist_url] //這種方式可以下載制定清晰度的mp4視頻

youtube-dl [playlist_url] //下載視頻列表, 這種方式下載的視頻可能是mkv格式或者webm格式

youtube-dl -cit [playlist_url] //下載視頻列表, 這種方式下載的視頻可能是mkv格式或者webm格式

youtube-dl --yes-playlist [url] //當鏈接爲視頻列表, 則下載該列表視頻, 跟上面的一樣, 可能是mkv或者webm格式