之前我下載 Youtube 影片一直是使用 Downie 4,但最近我發現 Downie 4 下載失敗的次數變得十分頻繁,有時候想下載十個影片卻失敗了八個,因此想著有沒有更好的工具或者方式可以下載 Youtube 影片。
搜索的過程中發現了這個在 Github 上的工具:yt-dlp,下載及使用方式都十分簡單,並且支援 Windows, linux 以及 mac 系統,嘗試下載了在 Downie 4 上下載失敗的影片居然百分百成功,所以想分享給大家。
安裝 yt-dlp
使用 Homebrew 的 macOS 或 Linux 用戶還可以透過以下方式安裝它:
brew install yt-dlp
日後要更新的話,可以使用下方命令:
brew upgrade yt-dlp
其餘系統的安裝方式請參考:yt-dlp wiki
影片下載方式
yt-dlp 支持指定影片畫質、輸出格式、檔名…等,也可以單純下載純音頻、下載播放清單、下載字幕…等。
更多請參考官方 README
使用 terminal 輸入命令就可以下載影片。
比如我現在希望下載一個 MV,可以這麼寫:
-o "%(title)s.%(ext)s"
下載的檔名和Youtube影片標題一樣
yt-dlp -o "%(title)s.%(ext)s" "https://www.youtube.com/watch?v=OSRMoNKftyk&pp=ygUEeWVqaQ%3D%3D"
輸出影片格式
--merge-output-format mp4
可以將輸出的影片轉檔為 mp4 格式
yt-dlp --merge-output-format mp4 "https://www.youtube.com/watch?v=OSRMoNKftyk&pp=ygUEeWVqaQ%3D%3D"
下載影片字幕
--write-subs
下載 CC 字幕--write-auto-subs
下載自動翻譯的字幕--sub-langs LANGS
指定字幕語系--list-subs
查看影片支援的字幕語言
yt-dlp --write-subs --sub-langs zh-Hans "https://www.youtube.com/watch?v=OSRMoNKftyk&pp=ygUEeWVqaQ%3D%3D"
指定輸出資料夾
-P "path/to/folder"
指定輸出的資料夾
yt-dlp -P "/Users/username/Downloads" "https://www.youtube.com/watch?v=OSRMoNKftyk&pp=ygUEeWVqaQ%3D%3D"
選項是可以拼接的,比如希望下載有中文字幕的mp4影片可以這麼寫:
yt-dlp -o "%(title)s.%(ext)s" --merge-output-format mp4 --write-subs --sub-langs zh-Hans "https://www.youtube.com/watch?v=OSRMoNKftyk&pp=ygUEeWVqaQ%3D%3D"
注意事項:
- 如果沒有指定畫質,預設會下載最高畫質。
- 影片預設會下載到當前資料夾底下。
- 有時候會下載失敗 403,重新再試幾次可能就成功了。
批次下載影片
打開 mac 自帶的文字編輯器,在設定處將「純文字」勾上後重新打開文字編輯器。
將要一起下載的影片網址貼到文字檔中(必須保持一個網址一行),並另存為 links.txt
使用 --batch-file
加上文字文件檔名即可批次下載。
yt-dlp --batch-file links.txt
設置預設下載選項
若每次下載影片都要使用這麼多選項,一是不好記二是很麻煩,所以可以將常用的選項記錄在 yt-dlp 的設定檔中。
在 /etc
中建立 yt-dlp.conf
,並使用 nano 編輯:
sudo touch /etc/yt-dlp.conf
sudo nano /etc/yt-dlp.conf
輸入指定的選項後,ctrl + o 保存,確認文件名稱後按 Enter,按下 ctrl + x 後退出。
之後只要下載影片都會使用設定檔中的選項,如果不想使用設定檔中的選項,可以用 --ignore-config
忽略。
# 套用設定檔中的選項
yt-dlp "https://www.youtube.com/watch?v=OSRMoNKftyk&pp=ygUEeWVqaQ%3D%3D"
# 忽略設定檔
yt-dlp --ignore-config "https://www.youtube.com/watch?v=OSRMoNKftyk&pp=ygUEeWVqaQ%3D%3D"