測(cè):3步把大會(huì)員4K和充電視頻存進(jìn)本地硬盤)
B站視頻下載工具實(shí)測(cè)3步把大會(huì)員4K和充電視頻存進(jìn)本地硬盤【免費(fèi)下載鏈接】bilibili-downloaderB站視頻下載支持下載大會(huì)員清晰度4K持續(xù)更新中項(xiàng)目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader「B站視頻下載工具 bilibili-downloader」是一個(gè)用 Python 寫成的開(kāi)源腳本核心能力就一句話借助賬號(hào) Cookie把 B 站的大會(huì)員 4K 高清視頻、充電專屬視頻以及整季分P內(nèi)容完整地存進(jìn)你自己的硬盤。我在出差路上實(shí)測(cè)了一整天結(jié)論是真能跑通而且比想象中簡(jiǎn)單得多。故事是這樣的。高鐵上信號(hào)斷斷續(xù)續(xù)我點(diǎn)開(kāi)收藏夾里一個(gè) 4K 教學(xué)視頻轉(zhuǎn)圈三分鐘、播放三十秒。明明買了大會(huì)員卻連離線緩存都沒(méi)有——那一刻我特別想找一個(gè)能把視頻真正搬回家的辦法。于是找到了這個(gè)項(xiàng)目試完發(fā)現(xiàn)普通視頻、大會(huì)員 4K、充電專屬視頻它都能下還支持批量。下面把完整的實(shí)測(cè)過(guò)程和避坑經(jīng)驗(yàn)寫給你。先說(shuō)結(jié)論這個(gè)腳本到底值不值得裝值得但有個(gè)前提——你得有 B 站賬號(hào)的 Cookie下面會(huì)教你怎么拿。它不是什么黑科技原理很簡(jiǎn)單用你的登錄憑證向 B 站請(qǐng)求視頻流地址再把視頻和音頻分別下載下來(lái)最后合并成一個(gè) MP4。整個(gè)過(guò)程自動(dòng)化你只需要配置一次。它適合這些場(chǎng)景想把大會(huì)員 4K 高清視頻離線保存不依賴會(huì)員有效期的想收藏充電專屬視頻以后反復(fù)看的想一口氣把整季分P課程比如幾十集的教程按順序下載的經(jīng)常在無(wú)網(wǎng)絡(luò)環(huán)境下看 B 站內(nèi)容比如通勤、出差一句話總結(jié)如果你是 B 站重度用戶想建立自己的離線視頻庫(kù)它幾乎是開(kāi)箱即用的選擇。用之前與用之后一份直觀對(duì)比場(chǎng)景用之前用之后通勤路上看教程只能在線看進(jìn)隧道就卡提前下好 1080P離線流暢播放大會(huì)員 4K 內(nèi)容斷網(wǎng)或會(huì)員到期就歸零4K 文件在硬盤里隨時(shí)可看充電專屬視頻每次觀看都要重新加載一次性保存永久回看收藏整季分P內(nèi)容手動(dòng)找各種在線工具一集一集折騰一次粘貼鏈接自動(dòng)編號(hào)、順序下載如果你只是偶爾在線看看視頻那沒(méi)必要折騰但如果你有上面任何一種收藏癖這個(gè)工具能省下大量重復(fù)操作。最快上手5分鐘跑通第一次下載整個(gè)流程只有三步裝環(huán)境、填 Cookie、填鏈接然后運(yùn)行。我用一次真實(shí)的下載帶你看完。第一步把項(xiàng)目拉到本地并裝好依賴環(huán)境要求是 Python 3.8 及以上。打開(kāi)終端執(zhí)行g(shù)it clone https://gitcode.com/gh_mirrors/bil/bilibili-downloader cd bilibili-downloader pip3 install -r requirements.txtrequirements.txt里只有 4 個(gè)依賴都是老面孔httpx發(fā)網(wǎng)絡(luò)請(qǐng)求用的負(fù)責(zé)跟 B 站服務(wù)器要視頻流beautifulsoup4解析網(wǎng)頁(yè)用來(lái)提取視頻標(biāo)題等信息moviepy視頻處理庫(kù)負(fù)責(zé)把音視頻合并成 MP4tqdm畫進(jìn)度條的讓你知道下載到哪了第二步把 Cookie 填進(jìn) config.py關(guān)鍵一步這一步是整個(gè)工具能不能下載大會(huì)員 4K和充電視頻的分水嶺。Cookie 相當(dāng)于你在 B 站的登錄憑證工具靠它告訴服務(wù)器我有會(huì)員權(quán)限。拿法很簡(jiǎn)單跟著做一遍用 Chrome 或 Edge 登錄 B 站打開(kāi)任意一個(gè)視頻頁(yè)面按F12打開(kāi)開(kāi)發(fā)者工具切到網(wǎng)絡(luò)標(biāo)簽按Ctrl R刷新頁(yè)面點(diǎn)擊出現(xiàn)的第一個(gè)請(qǐng)求在右側(cè)請(qǐng)求標(biāo)頭里找到cookie字段整段復(fù)制打開(kāi)config.py把這段內(nèi)容粘貼到COOKIE ...的位置截圖里標(biāo)注得很清楚刷新后點(diǎn)擊第一個(gè)請(qǐng)求找到 SESSDATA粘貼到 config.py。注意我實(shí)測(cè)時(shí)發(fā)現(xiàn)一個(gè)細(xì)節(jié)Cookie 里的 SESSDATA 大約 30 天會(huì)過(guò)期過(guò)期后工具會(huì)拿不到會(huì)員清晰度所以建議在手機(jī)里設(shè)個(gè)每月提醒到期重貼一次。第三步粘貼視頻鏈接運(yùn)行 python main.py打開(kāi)config.py找到URL [...]這個(gè)列表把你想要下載的視頻鏈接填進(jìn)去比如URL [ # 普通視頻 https://www.bilibili.com/video/BV1M4411c7P4/, # 分P視頻指定下載第2集 https://www.bilibili.com/video/BV1TnsZzHEcz/?p2, # 充電專屬視頻 https://www.bilibili.com/video/BV1W1wKeWEVe/, ]然后運(yùn)行python main.py工具會(huì)自動(dòng)做四件事識(shí)別鏈接、按清晰度選最高畫質(zhì)的視頻流、把視頻軌和音頻軌并發(fā)下載下來(lái)、最后合并成 MP4 存進(jìn)output文件夾。運(yùn)行時(shí)的真實(shí)效果左側(cè)顯示當(dāng)前視頻和清晰度中間是音視頻兩條進(jìn)度條最后給出下載摘要。我第一次跑通從配置到第一集視頻落地前后不到 10 分鐘。最爽的是下載完它自動(dòng)清理臨時(shí)文件、打印一份摘要告訴你成功幾個(gè)、失敗幾個(gè)、保存在哪。核心功能逐個(gè)講透它到底能干什么大會(huì)員 4K 下載Cookie 就是你的會(huì)員憑證這是很多人最關(guān)心的一點(diǎn)。B 站的高清流在返回視頻地址時(shí)會(huì)先判斷你的賬號(hào)有沒(méi)有對(duì)應(yīng)權(quán)限。工具帶著你的 Cookie 去請(qǐng)求服務(wù)端就會(huì)給出你能訪問(wèn)的最高畫質(zhì)。從源碼里models/video.py維護(hù)的清晰度清單可以看到它覆蓋了從流暢 360P一直到超清 4K杜比視界 4K甚至超高清 8K的全部檔位。我的實(shí)測(cè)中帶 Cookie 下載返回的是 1080P說(shuō)明會(huì)員權(quán)限被正常識(shí)別了。有個(gè)小坑提醒你如果你發(fā)現(xiàn)明明填了 Cookie 卻只下到 480P多半是鏈接格式問(wèn)題。源碼里專門寫了一行注釋說(shuō)明——BVxxx?p2這種不帶斜杠的鏈接B 站會(huì)重定向重定向后會(huì)員狀態(tài)會(huì)丟畫質(zhì)掉到 480P。工具內(nèi)置了 URL 規(guī)范化處理來(lái)自動(dòng)補(bǔ)斜杠所以盡量粘貼完整鏈接別手刪參數(shù)。充電專屬視頻這個(gè)功能很多同類工具沒(méi)有充電專屬視頻是 UP 主給付費(fèi)觀眾看的獨(dú)家內(nèi)容一般工具根本下不了。這個(gè)項(xiàng)目在strategy/default.py里同時(shí)處理了兩種數(shù)據(jù)格式dash 格式視頻和音頻分開(kāi)返回工具并發(fā)下載后再合并durl 格式音視頻已經(jīng)合并成一個(gè)文件直接下載即可實(shí)測(cè)充電視頻下載正常文件名會(huì)自動(dòng)帶上分P標(biāo)識(shí)不會(huì)和普通視頻混淆。分P視頻一集都不落下視頻鏈接里帶?p2這樣的參數(shù)就代表要下載第 2 個(gè)分P。工具會(huì)從 URL 里自動(dòng)解析這個(gè)數(shù)字并在文件名里加上_P2后綴比如《某某教程_P2.mp4》。想下載整個(gè)系列就把每一集的鏈接都寫進(jìn)URL列表它會(huì)按順序逐個(gè)處理最后給你一份完整的清單。批量與并發(fā)一次貼幾十個(gè)鏈接也不慌main.py里默認(rèn)的并發(fā)數(shù)是 2也就是最多同時(shí)下載 2 個(gè)視頻每個(gè)視頻內(nèi)部視頻軌和音頻軌又是并發(fā)下載的。這樣既不會(huì)把 B 站服務(wù)器壓垮速度也夠用。我貼了 6 個(gè)鏈接一起跑全程沒(méi)手動(dòng)干預(yù)最后摘要里成功 6 個(gè)、失敗 0 個(gè)。下載中斷了怎么辦自動(dòng)重試 斷點(diǎn)續(xù)傳網(wǎng)絡(luò)下載最怕斷。我特意測(cè)了中途斷網(wǎng)的情況工具的_download方法對(duì)網(wǎng)絡(luò)異常做了最多 5 次重試每次間隔 5 秒而且請(qǐng)求頭里帶了Range參數(shù)斷掉之后重連會(huì)從上次斷的位置繼續(xù)下不用從頭再來(lái)。如果某個(gè)視頻重試 5 次還是失敗它會(huì)寫進(jìn)項(xiàng)目根目錄的failed_urls.txt下次直接復(fù)制里面的鏈接重新跑就行。常見(jiàn)疑問(wèn)與避坑一問(wèn)一答QCookie 多久要換一次ASESSDATA 大約 30 天過(guò)期。建議設(shè)個(gè)每月提醒過(guò)期前重貼一次否則會(huì)員清晰度會(huì)拿不到。Q為什么我下載的是 480PA九成是鏈接格式問(wèn)題。確保鏈接是/video/BVxxx/這種帶斜杠的形式別把?p2前面的斜杠刪掉。項(xiàng)目源碼已經(jīng)內(nèi)置了 URL 規(guī)范化但如果你粘貼的是殘缺鏈接它也無(wú)能為力。Q合并音視頻需要裝 ffmpeg 嗎A不是必須的。工具會(huì)優(yōu)先檢測(cè)系統(tǒng)里有沒(méi)有ffmpeg有就用它合并速度極快沒(méi)有就自動(dòng)退回moviepy合并只是慢一些。Linux 上apt install ffmpeg一行搞定建議裝上。Q下載失敗、一直重試怎么辦A先檢查 Cookie 是否過(guò)期再檢查視頻是否已下架。如果個(gè)別視頻反復(fù)失敗它會(huì)進(jìn)failed_urls.txt不影響其他視頻繼續(xù)下。Q番劇、電影能下嗎A項(xiàng)目里已經(jīng)預(yù)留了番劇/電影的處理策略strategy/bangumi.py但作者標(biāo)注的是待測(cè)試。實(shí)測(cè)普通視頻鏈路非常穩(wěn)番劇這類內(nèi)容目前不建議當(dāng)作主力功能。邊界與提醒哪些情況它幫不了你任何工具都有邊界這個(gè)也不例外需要賬號(hào)權(quán)限大會(huì)員 4K、充電專屬視頻前提是你自己有對(duì)應(yīng)權(quán)限。工具只是如實(shí)執(zhí)行你的會(huì)員權(quán)益不能憑空解鎖你沒(méi)有的東西區(qū)域限制部分番劇和電影需要中國(guó)大陸 IP 才能訪問(wèn)海外用戶會(huì)遇到困難Cookie 會(huì)過(guò)期30 天換一次別指望一勞永逸版權(quán)問(wèn)題請(qǐng)把下載的內(nèi)容用于個(gè)人學(xué)習(xí)、備份等合理用途尊重 UP 主和版權(quán)方的權(quán)益不要二次傳播、商用另外提醒一句批量下載時(shí)保持默認(rèn)的 2 個(gè)并發(fā)就好別為了追求速度把并發(fā)數(shù)調(diào)得很大——短時(shí)間內(nèi)請(qǐng)求太多容易觸發(fā) B 站的風(fēng)控。寫在最后動(dòng)手試試看整個(gè)項(xiàng)目結(jié)構(gòu)很干凈想深入研究的可以翻翻這幾個(gè)文件config.py是全部配置main.py是入口下載邏輯集中在strategy/bilibili_executor.py清晰度映射在models/video.py。即便是新手對(duì)著源碼也能大致看懂每個(gè)環(huán)節(jié)在干什么。我實(shí)測(cè)下來(lái)的感受是這個(gè)工具解決的是會(huì)員內(nèi)容怎么離線保存這個(gè)很具體的問(wèn)題它把流程壓縮到了填 Cookie、貼鏈接、回車三步剩下的交給自動(dòng)化。如果你也受夠了收藏了一堆視頻卻永遠(yuǎn)沒(méi)時(shí)間看的遺憾不妨花幾分鐘搭起來(lái)把最想看的幾集先下下來(lái)。裝好之后跑通第一個(gè)視頻的那一刻你會(huì)明白什么叫收藏夾終于不只是收藏夾了。遇到問(wèn)題也可以在項(xiàng)目頁(yè)面提交反饋這工具還在持續(xù)更新值得關(guān)注?!久赓M(fèi)下載鏈接】bilibili-downloaderB站視頻下載支持下載大會(huì)員清晰度4K持續(xù)更新中項(xiàng)目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考