← 返回部落格
Coding中

yt-dlp 存檔不再錯過

整理使用 yt-dlp 下載 YouTube 影片與直播的常用指令,涵蓋安裝、格式選擇、批次檔下載、直播從頭錄製與日期區間篩選等實用技巧。

2024.02.28·3 分鐘閱讀·612 字

本文專案來源

簡介

這篇文將帶過如何快速使用 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可以選用,如果是還沒開始串流的影片的話。

最後編輯 2024.02.28·© 2024 tylerastro·手工打造