先前介紹 「Mac」Homebrew:Mac 必裝的套件管理工具 時曾經提到,Homebrew 可以安裝 youtube-dl 這套強大的網路影片下載器,目前很多朋友可能是會使用一些現上下載 YouTube 的網站,除了網頁上滿滿的廣告之外,還可能會常常遇到畫質、音質不佳、下載速度慢,或是根本無法正常下載,畢竟 YouTube 也是隨時在改版,雖然 Google 對於下載 YouTube 這件事算睜一隻眼閉一隻眼,但時不時還是會順手防堵下載的漏洞。

而 youtube-dl 則是在 GitHub 上公開的開源軟體,且筆者發現他更新的頻率相當驚人,幾乎每隔幾天就會更新,而更新內容大多都是針對各個影音網站的下載支援或功能修正。雖然 youtube-dl 沒有 GUI,而是透過終端機 CLI 操作,但非常輕量,且效率極佳。

下載 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 前往。

下載影片

選擇好下載資料夾後,在終端機輸入 yo 並按下 tab 鍵,自動帶出程式名稱 youtube-dl,空一格,貼上 YouTube 影片網址即可下載,以下載 YouTube 第一支影片 Me at the zoo 為例:

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

按下 Enter 之後 youtube-dl 便開始下載,在沒有設定任何下載選項的狀況下,可以看到這支影片以預設的 WebM 格式下載到下載項目資料夾中。在 YouTube 下載影片,來源的影片檔案可能是各種格式、分段或是影音分開,這時通常都是靠 ffmpeg 將其轉換為單一的影片檔案。

影片轉檔

剛剛下載的影片是 WebM 格式儲存(有時可能是 mov 或 mkv 等等)不過其實 WebM 通常用於網頁播放,我們一般在電腦、手機播放或剪輯,其實還是以 mp4 最通用。因此,我們可以在 youtube-dl 下載影片時,在指令後方加入 -f mp4 即可指定下載成 mp4 檔案格式:

youtube-dl https://www.youtube.com/watch?v=jNQXAC9IVRw -f mp4

所以 -f 後面的檔案格式也可以換成 3gpaacflvm4amp3mp4oggwavwebm 等等。

下載完成的檔案,以 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

支援嵌入字幕的影片格式包含:mp4mkv 以及 webm;與格式工廠、HandBreak 那種將字幕直接寫入(燒錄?)在影片畫面上的方式不同,使用 youtube-dl 嵌入的字幕是可以選擇開啟或關閉,以及選擇不同語言的。此外,語系的代號大小寫有別,必須一模一樣,例如中文(台灣) zh-TW 的 TW 一定要是大寫,非常重要!

下載完成後,以 QuickTime Player 打開,可以看到出現中文字幕的選項;若是以其他播放軟體如 MPlayerX 開啟,應該也是可以選擇字幕的,不過每個軟體顯示情況可能有所不同,例如 MPlayerX 顯示的字幕名稱為 noname [zho],我們測試時剛好只嵌入一種字幕,所以我們知道是繁體中文;若是嵌入多個字幕語言,可能就會比較難以分辨了。

設定下載位置

使用終端機,預設的目錄應該是「使用者資料夾」,因此若單純使用 youtube-dl 加影片網址的指令下載,應該會直接儲存到使用者資料夾中,這邊我們可以建立一個 youtube-dl 的設定檔,來設定預設的下載位置。一樣使用終端機,輸入:

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 還有相當多功能,例如選擇畫質、下載音樂等等,本文會陸續更新介紹,敬請期待。

替代方案

筆者在使用 youtube-dl 之前,都是使用 iSkysoft iTube Studio 這套付費軟體(現在有時還是會用)這套軟體其實也非常強大,無論是下載 YouTube 影片、下載成 mp3、下載播放清單都支援,畫質音質可選,下載速度也相當不錯。同時也是支援相當多的網站,更新也算頻繁,筆者有時懷疑iSkysoft iTube Studio 就是參考 youtube-dl 而開發的。若對於終端機指令不熟悉或覺得麻煩的朋友,可以試試 iSkysoft iTube Studio。