Reddit 的 yt-dlp 指令產生器
為 Reddit 影片產生 yt-dlp 指令 —— 包括讓它們有聲音的那一步合併。
為什麼 Reddit 影片下載後沒聲音
Reddit 把影像與音訊存成兩個檔案。若缺 ffmpeg,yt-dlp 會下載影像串流,而沒有任何東西把音訊合進去 —— 檔案能播,但是靜音的,也沒有任何錯誤訊息解釋原因。
裝好 ffmpeg,本頁預設會處理其餘部分。圖集貼文被當成播放清單,所以整份播放清單模式能取到全部內容。
v.redd.it 這個主機是大部分麻煩的起點。直接給 v.redd.it 連結可以乾淨地下載,但同一支影片若是透過 subreddit 動態或 old.reddit.com 頁面找到的,到手的是包著 Reddit 頁面網址的連結,舊版 yt-dlp 有時拆不開這層包裝。改任何其他設定之前先更新 —— yt-dlp -U —— Reddit 的 extractor 特別被重寫過好幾次,三個月前的執行檔比網站現在的樣子還舊。
圖集是另一半。Reddit 會把內含影片的圖片圖集打包,yt-dlp 把它呈現成一個由獨立項目組成的播放清單 —— 圖片一張一項,影片自成一項。如果你只要影片,關掉播放清單,yt-dlp 就只拿影片;如果要全部,保持整份播放清單模式並加上封存檔案,這樣重跑時只會補上第一次失敗的那些項目。
被隔離的和 NSFW 的 subreddit 需要 cookies —— 和其他地方一樣的瀏覽器 cookies 選項 —— 因為 Reddit 不肯把媒體網址交給未登入的請求。已刪除的貼文是唯一任何選項都碰不到的東西:貼文一刪,媒體 CDN 條目跟著消失,過去存在的鏡像也早就沒了。還有作用的是 Wayback Machine 存的頁面本身,不過那在 yt-dlp 抓取的範圍之外。
Reddit 把自己託管的每樣東西都重新編碼,天花板也低:v.redd.it 最高到 720p,所以 1080p 的高度上限找不到 720p 以上的東西,原樣交回 720p 檔案 —— 這是平台的上限,不是下載失敗。只存音訊也值得知道:在 Reddit 影片上加 -x,會像其他地方一樣抽出音軌,這是從一支你不需要影片的貼文裡只留聲音的最快辦法。