跳至內容
yt-dlp

下載 YouTube 頻道 — yt-dlp 指令產生器

產生用來典藏一個頻道、並在之後保持同步的 yt-dlp 指令。

選填。留空的話指令會以 URL 結尾,由你自己填。

你的指令

yt-dlp -f 'bv*[height<=1080]+ba/b[height<=1080]' --merge-output-format mp4 --yes-playlist --download-archive archive.txt -o '%(uploader)s/%(upload_date>%Y-%m-%d)s - %(title)s.%(ext)s' --dateafter 20240101 -i https://www.youtube.com/@channel/videos
基本

僅音訊會擷取聲音軌並捨棄影像串流。

影片與畫質

限制高度上限。yt-dlp 仍會挑該上限以下最好的一路串流。

把分離的影像與音訊串流合併進去的檔案類型。

進階選項(3)

會取代畫質下拉選單。給已經熟悉 format 語法的人用。

不重新編碼,只重新封裝。快而且無損。

重新編碼影片。慢而且有損 —— 只在 remux 行不通時才用。

音訊

音訊要轉換成的檔案類型。

VBR 的檔案大小與品質之比最好;固定 bitrate 比較好預估大小。

字幕

內嵌會把字幕放進影片裡;另存則在旁邊寫一個獨立的 .srt 檔。

用逗號分隔。想要所有可用語言就寫 all。

播放清單與頻道

當網址同時屬於一支影片和一份播放清單時該怎麼做。

範圍與清單都可以,例如 1-10,15,或用 -5::2 表示從尾端起每隔一項取一項。

進階選項(1)

記下已經下載過的項目,於是重新執行會跳過它們。這就是讓一個頻道保持同步的做法。

片段與章節
進階選項(2)

像 *00:01:30-00:03:00 這樣的時間範圍,或章節名稱。開頭的星號表示這是時間點。

中繼資料與封面
進階選項(3)
SponsorBlock

依 SponsorBlock 資料,把社群標記的片段直接從檔案裡剪掉。

進階選項(1)

片段保留,但會被標出來,讓你自己跳過。

檔案與資料夾

欄位名稱寫在 %(...)s 裡。斜線會建立資料夾。

進階選項(4)

檔案要寫到哪裡。搭配上面的範本可以產生子資料夾。

檔名最大長度,以字元計。

篩選
進階選項(5)

YYYYMMDD,或像 now-1month 這樣的相對日期。

YYYYMMDD,或相對日期。

跳過更小的檔案。可以寫 5M、500K 之類。

跳過更大的檔案。

停下來之前要下載的檔案數量。

網路

例如 2M 或 500K。當你需要把剩下的頻寬留給別的事情時很有用。

進階選項(5)

能加快分片串流的下載。從 4 開始比較合適。

失敗的片段要重試幾次。也可以寫 infinite。

HTTP、HTTPS 或 SOCKS proxy 的網址。

讓請求看起來來自真正的瀏覽器。突然出現 403 時,這是最常見的解法。

登入與 cookies

直接讀取你的登入工作階段。私人、年齡限制或會員專屬內容都需要它。

進階選項(1)

從瀏覽器匯出的 Netscape 格式 cookies.txt。

直播
進階選項(2)

反覆檢查直到預定的直播開始。MIN-MAX 是兩次檢查之間的秒數。

疑難排解
進階選項(3)

已淘汰,應改用 --add-headers。之所以保留,是因為很多舊教學還在用它。

已淘汰,應改用 --add-headers。

依網站區分的專用選項,例如 youtube:player_client=web。

輸出與除錯
進階選項(2)
重設

怎樣正確典藏一個頻道

請指向頻道的 /videos 分頁,而不是頻道首頁 —— 首頁會把 Shorts 與直播分頁也算進來,那大概不是你要的。有了紀錄檔之後,定期重複同一條指令只會取回新上傳的影片。

日期篩選讓第一次執行在一個有十年內容的頻道上仍然可控。如果開始被限速,就加上限速並降低同時下載的 fragment 數 —— 用最快速度下幾百支影片,本來就是觸發限速的原因。

常見問題

怎麼下載一個頻道的全部影片?
用頻道的 videos 網址搭配整份播放清單模式。再加上紀錄檔與出錯也繼續 —— 在大頻道上這兩個都是必要的。
怎麼讓一個頻道保持同步?
定期用同一個紀錄檔執行同一條指令。只有新上傳的影片會被取回。
怎麼跳過 Shorts?
指向 /videos 分頁而不是頻道首頁,這樣 Shorts 與直播分頁就不在清單裡。
在大頻道上我被限速了。
加上限速並降低同時下載的 fragment 數。用最快速度下幾百支影片,本來就是觸發限速的原因。