用 youtube-dl 優雅下載影片

2018-09-17

Youtube

Youtube 是世界上最大的影音網站,應該很多人天天都在上面看影片吧,要是看到喜歡的影片想要下載,該怎麼做呢?如果是我,我平常都用 youtube-dl 來下載,我認為這是最優雅,最簡便,最快速的方式了,而且是開源軟體,還支援多種影音平台,可以說是下載影片的瑞士刀。

安裝

先去官網下載符合自己平台的檔案,Windows 有已經編譯好的可執行檔,Linux 可以直接將執行檔放入 /usr/local/bin/,或著用 pip 套件管理員安裝。

Windows 使用者下載完 youtube-dl 後請在 youtube-dl.exe 所在資料夾開啟 CMD 進行操作,至於怎麼在所在資料夾開啟 CMD 請參考之前的教學

類 UNIX 作業系統皆可用下面指令安裝。

1
2
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 安裝。

1
sudo pip install --upgrade youtube_dl

使用

以下載一部 Youtube 影片為例,先在 Youtube 找到你想下載的影片,然後複製網址。

1
youtube-dl https://www.youtube.com/watch?v=ZzvYGRH9H1M

這樣雖然能直接下載影片,但是不能選擇自己想要的品質,加上參數 -F 會列出提供哪些畫質下載。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
youtube-dl -F https://www.youtube.com/watch?v=ZzvYGRH9H1M
[youtube] ZzvYGRH9H1M: Downloading webpage
[youtube] ZzvYGRH9H1M: Downloading video info webpage
[info] Available formats for ZzvYGRH9H1M:
format code extension resolution note
249 webm audio only DASH audio 54k , 1fps, opus @ 50k, 2.80MiB
250 webm audio only DASH audio 76k , 1fps, opus @ 70k, 3.59MiB
140 m4a audio only DASH audio 129k , m4a_dash container, mp4a.40.2@128k, 7.20MiB
171 webm audio only DASH audio 132k , 1fps, vorbis@128k, 6.25MiB
251 webm audio only DASH audio 184k , 1fps, opus @160k, 8.45MiB
160 mp4 256x144 144p 109k , avc1.4d400c, 15fps, video only, 5.92MiB
134 mp4 640x360 360p 248k , avc1.4d401e, 30fps, video only, 11.42MiB
133 mp4 426x240 240p 249k , avc1.4d4015, 30fps, video only, 13.60MiB
135 mp4 854x480 480p 518k , avc1.4d401f, 30fps, video only, 20.28MiB
136 mp4 1280x720 720p 887k , avc1.4d401f, 30fps, video only, 33.83MiB
137 mp4 1920x1080 1080p 1639k , avc1.640028, 30fps, video only, 62.66MiB
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k, 4.59MiB
36 3gp 320x180 small , mp4v.20.3, mp4a.40.2, 12.73MiB
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k, 19.78MiB (best)

要注意有些格式是只有純影片或純聲音的,像是 1080p 的通常只有純影片,選好你要下載的格式,把 format code 填入參數 -f 裡。

1
youtube-dl -f 137 https://www.youtube.com/watch?v=ZzvYGRH9H1M

Proxy 設定

如果你身在無法使用 Youtube 的國家要使用 youtube-dl,可以用 --proxy 參數進行代理。

youtube-dl 內建的 –proxy 參數,支持 socks5 和 http 代理伺服器,通常現代代理軟體(SS、SSR 等)預設的本機連接埠都是 socks5://127.0.0.1:1080。

更多參數可以去看 youtube-dl 官方的 README

1
youtube-dl --proxy socks5://127.0.0.1:1080 https://www.youtube.com/watch?v=ZzvYGRH9H1M

其他影音平台

youtube-dl 除了可以下載 Youtube 影片,也能下載其他的影音平台,詳細支援網站詳見官方文檔,裡面列出了非常多的網站,你認識的影音平台應該都有列在上面,這裡示範如何下載 bilibili 的影片。

操作流程跟前面 Youtube 一樣,先到 B 站找尋你想要下載的影片,把網址複製。

先看提供哪些格式下載。

1
2
3
4
5
6
7
8
youtube-dl -F https://www.bilibili.com/video/av30534279
[BiliBili] 30534279: Downloading webpage
[BiliBili] 30534279: Downloading video info page
[info] Available formats for 30534279:
format code extension resolution note
0 flv unknown
1 flv unknown
2 flv unknown 164.17MiB (best)

B 站提供的格式相較於 Youtube 少很多,應該也只能選 2 了。

1
2
3
4
5
youtube-dl -f 2 https://www.bilibili.com/video/av30534279
[BiliBili] 30534279: Downloading webpage
[BiliBili] 30534279: Downloading video info page
[download] Destination: 【FGO动画】无限流星制-Unlimited Stella Works--30534279.flv
[download] 81.8% of 164.17MiB at 622.88KiB/s ETA 00:49

youtube-dl 真的是下載影片的神器,自從用了 youtube-dl 就再也不需要其他影片下載軟體了。

Reference

分類: #教學/ #Linux/ #Youtube

留言: