線上下載 YouTube 的網站,除了網頁上滿滿的廣告之外,常常會遇到畫質、音質不佳、下載速度慢,或是根本無法正常下載,畢竟 YouTube 隨時在改版,雖然 Google 對於下載 YouTube 這件事算睜一隻眼閉一隻眼,但時不時還是會順手防堵下載的漏洞。
套件 youtube-dl 是在 GitHub 上公開的開源軟體,透過終端機 CLI 操作,非常輕量、效率極佳,可以完全依照自己想要的畫質、格式來下載 YouTube 影片。
下載 youtube-dl
請先安裝 Homebrew,安裝方式可以參考最上方的文章連結。若你已經裝好 Homebrew,則可以透過指令來安裝 youtube-dl,打開終端機並輸入:
brew install youtube-dl
youtube-dl 應該就會自動下載並安裝
安裝 ffmpeg
我們下載 YouTube 影片時可能會用到轉檔、嵌入字幕等功能,這些工作必須交由 ffmpeg 套件來處理。
brew install ffmpeg
執行
如上面所說,youtube-dl 沒有 GUI,而是透過終端機 CLI 操作,因此在應用程式資料夾裡是找不到它的,必須使用終端機來操作。
選擇影片下載位址
在 macOS 中,終端機預設目錄是使用者資料夾,路徑是:Macintosh HD > 使用者 > 使用者名稱,這個目錄就如同 Windows 的 C:Users使用者名稱
但我們一般下載影片通常不會存在使用者資料夾,因此我們可以先指定下載目錄,例如:下載項目。我們可以在終端機輸入 cd Dow
並按下 tab 鍵,自動帶出完整個目錄名稱 cd Download
再按下 Enter 前往。
下載影片
選擇好下載資料夾後,在終端機輸入 youtube-dl <影片網址> 並按 Enter 鍵,預設會選擇影片的最佳畫質和聲音,以 YouTube 第一支影片 Me at the zoo 為例,下載指令如下:
youtube-dl https://www.youtube.com/watch?v=jNQXAC9IVRw
按下 Enter 之後 youtube-dl 便開始下載,在沒有設定任何下載選項的狀況下,可以看到這支影片以預設的 WebM 格式下載到下載項目資料夾中。在 YouTube 下載影片,來源的影片檔案可能是各種格式、分段或是影音分開,因此會再自動交由 ffmpeg 將其轉換為單一的影片檔案。
下載播放清單
輸入 youtube-dl <播放清單網址> 並按 Enter 鍵,可以下載整個播放清單中所有影片。
下載音樂
輸入 youtube-dl -x –audio-format mp3 <影片網址> 並按 Enter 鍵,可以下載影片的音訊部分,並轉檔成 mp3 格式。
影片轉檔
剛剛下載的影片是 WebM 格式儲存(有時可能是 mp4 或 mkv 等等)不過其實 WebM 通常用於網頁播放,我們一般在電腦、手機播放或剪輯,其實還是以 mp4 最通用。因此,我們可以在 youtube-dl 下載影片時,在指令後方加入 -f mp4
即可指定下載成 mp4 檔案格式:
youtube-dl https://www.youtube.com/watch?v=jNQXAC9IVRw -f mp4
所以 -f
後面的檔案格式也可以換成 3gp
、aac
、flv
、m4a
、mp3
、mp4
、ogg
、wav
、webm
等。如果想知道影片有什麼格式(跟畫質選項)可以選擇,只要輸入 youtube-dl -F <影片網址> 並按 Enter 鍵,就會顯示影片的所有可用格式和代碼。
下載完成的檔案,以 YouTube 來說,下載的檔案名稱就是 影片名稱-影片網址的編號.檔案格式。
嵌入字幕
有時 YouTube 影片會有不同語言的 CC 字幕可選擇,我們可以透過 youtube-dl 將字幕嵌入到影片中。
首先我們先列出可以下載的字幕,以一日幕僚影片為例,在 youtube-dl 下載指令後方加入 --list-subs
youtube-dl https://www.youtube.com/watch?v=Qkf4farak1k --list-subs
youtube-dl 分析 YouTube 網頁後,在最下方 Available subtitles 列出可用的字幕包含:
- zh-CN
- en
- zh
- zh-TW
也就是簡體中文、英文、中文、中文(台灣)這幾種選擇
有關嵌入字幕的 youtube-dl 指令:
--write-sub
下載字幕--embed-sub
嵌入字幕—-sub-lang zh-TW
指定語言(以中文(台灣)為例)--all-subs
下載所有字幕(如果要將所有可用的字幕嵌入)
因此如果我們要下載嵌入中文(台灣)字幕的 mp4 影片,指令為:
youtube-dl https://www.youtube.com/watch?v=Qkf4farak1k --write-sub --embed-sub --sub-lang zh-TW -f mp4
支援嵌入字幕的影片格式包含:mp4
、mkv
以及 webm
;與格式工廠、HandBreak 那種將字幕直接寫入(燒錄?)在影片畫面上的方式不同,使用 youtube-dl 嵌入的字幕是可以選擇開啟或關閉,以及選擇不同語言的。此外,語系的代號大小寫有別,必須一模一樣,例如中文(台灣) zh-TW
的 TW 一定要是大寫,非常重要!
下載完成後,以 QuickTime Player 打開,可以看到出現中文字幕的選項;若是以其他播放軟體如 MPlayerX 開啟,應該也是可以選擇字幕的,不過每個軟體顯示情況可能有所不同,例如 MPlayerX 顯示的字幕名稱為 noname [zho],我們測試時剛好只嵌入一種字幕,所以我們知道是繁體中文;若是嵌入多個字幕語言,可能就會比較難以分辨了。
設定下載位置
使用終端機,預設的目錄應該是「使用者資料夾」,因此若單純使用 youtube-dl
加影片網址的指令下載,應該會直接儲存到使用者資料夾中,這邊我們可以建立一個 youtube-dl 的設定檔,來設定預設的下載位置。一樣使用終端機,輸入:
mkdir -p ~/.config/youtube-dl
touch ~/.config/youtube-dl/config
vi ~/.config/youtube-dl.conf
接著按鍵盤 i
進入編輯模式,並貼上:
--output "/Users/使用者名稱/Downloads/%(title)s.%(ext)s"
請記得將使用者名稱替換成 macOS 使用者的目錄名稱。小撇步:可以先輸入 --output "
接著將「下載項目」或你想要的資料夾,拖曳到終端機中,帶入目錄路徑,再貼上 /%(title)s.%(ext)s"
結尾,就可以快速得到正確的路徑了。
接著按鍵盤 ESC
退出編輯模式,輸入 :x
再按 ENTER 儲存。
以上這段如果不太理解,可以先 Google 一下「vi 指令」學習一下這個編輯器怎麼使用。
替代方案
筆者在使用 youtube-dl 之餘,偶爾也會使用 Downie 這套付費軟體(包含在 Setapp 的方案中)這套軟體功能也非常強大,支援下載 YouTube 影片以及其他各式各樣的影音網站,包含 Facebook Watch、Instagram Reels、TikTok 跟抖音等等。若對於終端機指令不熟悉或覺得麻煩的朋友,可以試試透過 Downie 來下載。