yt-dlp 存檔不再錯過
整理使用 yt-dlp 下載 YouTube 影片與直播的常用指令,涵蓋安裝、格式選擇、批次檔下載、直播從頭錄製與日期區間篩選等實用技巧。
簡介
這篇文將帶過如何快速使用 Yt-dlp 來下載 Youtube 上影片或是直播內容,避免閱讀繁瑣的說明書
安裝
不論你是任何作業系統,我都建議使用 Python 搭配 pip 作為環境使用。 本文將在 MacOS 底下操作,如有遇到任何問題,可以參照官方手冊。
創造你的環境,不論使用 conda env 或是 virtualenv,確保使用 Python3.8+
conda create --name yt-dlp python=3.11
接著 pip install yt-dlp
完成安裝後,yt-dlp --version 確認當前版本。
如果你也是 Mac 用戶,建議在安裝步驟也安裝 ffmpeg,brew install ffmpeg。
如果你是其他系統用戶,可以參考官方文件ffmpeg download
使用
快速上手
顯示選項
下載也可以選擇要走 Full HD、720p 等選項
使用yt-dlp --list-formats [Youtube url] 會看到可以使用的影像和音檔規格。
使用檔案下載
當然你也可以準備一個文字檔案,裡面放好要下載的網址
# urls.txt
Url1
Url2
Url3
接著使用yt-dlp --no-abort-on-error -f "bv*+ba/b" --batch-file urls.txt --no-overwrites --write-thumbnail --write-all-thumbnails
來接力下載預設好的內容。
--no-abort-on-error會避免失敗後,結束整個 urls 檔案的下載-f會指定要下載的格式,之前安裝 ffmpeg 是為了要把影像跟音訊兩檔案做結合步驟--batch-file指定來源檔案--no-overwrites會避免複寫任何檔案,避免是下載過,或是剛好命名相同--write-all-thumbnails會將封面圖下載,all 的選項會包括 webp, png, jpeg 等格式都下載
多數情況我會使用
yt-dlp --no-abort-on-error -f "bv*+ba/b" --batch-file url.txt --no-overwrites --write-thumbnail --write-all-thumbnails算是準備一個檔案就可以輕鬆操作。
進階使用
直播內容
yt-dlp --live-from-start --wait-for-video 30 [url]
--live-from-start會將直播從頭下載,大部分應該會選用這選項--wait-for-video有時候直播尚未開始,可以選用,程式會間隔每[]秒確認直播開始沒
日期選擇
在下載影片清單時,可以使用--datebefore DATE或是--dateafter DATE來指定影片的區間。
DATE 的格式為YYYYMMDD,再丟網址時,可以再透過--yes-playlist或是--no-playlist來進一步控制是否下載影片清單全部內容
TL;DR
多數情況下面這條指令可以解決,若有多個影片也只是新增文字檔案裡面而已。
yt-dlp --no-abort-on-error -f "bv*+ba/b" --batch-file url.txt --no-overwrites --write-thumbnail --write-all-thumbnails
若是下載直播檔案,則使用
yt-dlp --live-from-start --wait-for-video 15 [url]
wait-for-video可以選用,如果是還沒開始串流的影片的話。