哔哩哔哩的 yt-dlp 指令產生器
為哔哩哔哩產生 yt-dlp 指令,預設先啟用能避開大多數 403 錯誤的瀏覽器偽裝。
403 錯誤與畫質限制
哔哩哔哩會拒絕看起來不像瀏覽器發出的請求,這就是一般指令常常回 403 的原因。本預設預設開啟偽裝,因為在多數情況下這正是解法。
1080p 以上通常留給已登入、有時是付費的帳號,所以這裡 cookies 影響的是畫質,而不只是能不能存取。多分頁的影片會以播放清單項目的形式出現。
Bilibili 是舊版 yt-dlp 死得最快的平台——它的 API 重做頻率超過任何西方平台,extractor 更新在每次改動後幾天內就進 yt-dlp 發布。上個月還正常的下載開始失敗時,先更新:yt-dlp -U。偽裝(本預設預設開啟)解決 403 問題裡「瀏覽器樣子的請求標頭」那一半;剩下的多半是工作階段缺失或過期。
多分頁的上傳——系列常見的 P1/P2/P3 結構——以播放清單項目到達,所以整份播放清單處理會取齊每一分,輸出範本裡的播放清單序號則讓分頁保持次序。彈幕(滾動的評論)在 yt-dlp 眼裡是字幕軌:--write-subs 把它存成 .ass 檔案,這也是這種資料存在的唯一格式。不想要就什麼都不做——沒人要求它就不會被合併。
互動畫質——「杜比」和付費會員檔——只屬於擁有它們的帳號,沒有這類帳號的 cookies,任何旗標都碰不到。地區鎖是另一堵牆:有些上傳只有中國大陸看得到,而當封鎖執行在 CDN 而不是頁面時,位於該地區的 proxy 是唯一的路。繞過偶爾對頁面級的封鎖有用,對 CDN 那種從來沒用。
Bilibili 的高畫質以音視訊分離的 DASH 提供,所以 ffmpeg 合併和 YouTube 一樣——合併步驟已包含在本預設裡。用 -x 只抽音訊也可以,是從長篇多分頁上傳裡只取聲音的最快辦法。直播重播在結束後變成普通 VOD,按普通影片下載即可;本站的直播錄製選項是給正在進行的直播用的。