BilibiliHistoryFetcher 開源工具,留住三個月就消失的 B 站觀看史

BilibiliHistoryFetcher 是把 B 站觀看歷史搬進本機 SQLite 的開源工具,能補錄收藏、點讚、投幣互動記錄並生成年度統計。安裝前先看清兩件事:它要你交出整組帳號 Cookie,而網路上還在流傳的 AI 摘要功能已於 2026 年 5 月被官方移除。

用 AI 摘要這篇文章:

想把 B 站的觀看記錄留下來,最近有兩種做法。輕的做法是裝個瀏覽器擴充功能,你在看片,它在背景一筆筆抄;重的做法是在自己電腦上跑一套後端服務,主動向 B 站把資料整批搬回家,存進自己的資料庫,再往上長出年度總結這類分析功能。BilibiliHistoryFetcher 走的是重的那條路,一套以 MIT 授權開源的 Python 工具,配一個獨立的 Vue 前端,兩個倉庫分開維護。

先給判斷:如果你只是怕記錄莫名消失,擴充功能那條路負擔小得多,我們先前拆解過那套被動記錄的擴充功能就很稱職。會走到自架後端這條路的人,要的東西差不多同一類:把收藏、按讚、投幣這些互動記錄也補進歷史庫,拿到一份能回顧整年的統計報告,或者讓 AI 助手直接查你的觀看資料。這些能力都做得到,但它們有同一個前提,把帳號的整組鑰匙交給這支程式。

兩條路差在哪:被動擴充與自架後端

開發者在文件裡給出的出發點很具體:B 站官方的觀看歷史只保留近三個月,過了這個期限,看過什麼就查不到了。這個數字出自專案與同類工具的共同觀察,不見於 B 站官方文件,也因此在這個生態裡,留檔本身就是基本需求。兩條路線針對同一道牆,打法完全不同。

面向瀏覽器擴充(被動記錄)自架後端(BilibiliHistoryFetcher)
安裝型態瀏覽器商店一鍵安裝執行檔、Docker 或原始碼,前後端都要跑
記錄方式看片時在背景同步抄寫定時向官方 API 整批抓取
涵蓋範圍觀看記錄為主歷史、收藏、按讚、投幣互動補錄、評論查詢
分析能力清單瀏覽與搜尋年度總結、熱力圖、標題分析、MCP 查詢介面
帳號風險面跟著瀏覽器工作階段走整組 Cookie 含操作章,明文存在設定檔
適合誰怕記錄消失的一般使用者重度使用者與想要長期統計的人
兩種留檔路線對照,資料截至 2026 年 9 月

表中「互動補錄」是自架路線才有的招。官方歷史查不到三個月以前的紀錄,但收藏、按讚、投幣這些動作各自留有軌跡,這個專案把它們撈回來補進歷史庫,標記來源是哪一種互動,2026 年 6 月起連歷史頁看得到補錄標記。等於用你自己的行為碎片,把三個月牆外的洞補掉一部分。擴充功能如果只靠背景抄寫,裝上去之前的事就永遠缺席,這是兩條路最實質的能力差異。

「自架」聽起來嚴肅,實際形態是:後端是一個跑在本機的 FastAPI 服務,預設監聽 8899 埠,資料落在工作目錄的 SQLite 檔案;前端是另一支程式,開起來連到後端,就是你操作的網頁介面。想玩得更深的人,它還提供 Docker 映像檔與 MySQL 匯入路由,把資料搬進正規資料庫做自己的分析。整條鏈都在你自己的機器上,沒有開發者的雲端在中間收資料,這是它跟很多「免費雲端工具」最根本的差別。

它實際留下什麼:從官方 API 搬進你的 SQLite

登入不用手動貼 Cookie。前端跳出 B 站官方的 QR code,你用手機 App 掃一下,程式呼叫的是 B 站自己的登入端點,拿到憑證後開始工作。觀看歷史一批批抓回來,過程中每部影片再回頭補詳細資訊,請求失敗時用指數退避重試,預設連試三次不成就放棄該輪,隔天排程再補。資料落在本機一個 SQLite 資料庫檔案裡,之後的統計、搜尋、匯出全部對著這個檔案做,不經過任何第三方伺服器。專案從 2024 年 10 月開始累積,到 2026 年 6 月底仍有版本推進,後端約一千兩百顆星,前端將近五百顆。

BilibiliHistoryFetcher 的 GitHub 儲存庫頁面,顯示專案已遷移至 LifeArchiveProject 組織,約一千兩百顆星與六十三個分支,檔案區可見 README、config、routers 等目錄結構Pin
專案倉庫已在 2026 年遷移至 LifeArchiveProject 組織,後端約一千兩百顆星(來源:專案 GitHub)

長在這個資料庫上的功能,看原始碼會比看簡介更清楚。年度總結是純本機統計:觀看時長、熱門影片、每日熱力圖,輸出成 JSON 與網頁報告。日常維運交給內建的自動化任務,可以排程定時抓取,搭配 SMTP 郵件或 Apprise 通知,抓完或出錯都會回報。比較新的是一個唯讀的 MCP 服務,讓區域網路裡的 AI 客戶端可以直接查你的歷史記錄與統計,原始碼裡明確把同步、刪除、改設定這類有副作用的操作擋在門外,查詢時的敏感欄位也先遮罩再回應。想讓 AI 助手幫你分析觀看習慣,這個邊界是有被刻意設計過的。

把帳號資料搬回家的代價,接下來才是重點。

還在流傳的 AI 摘要,已經整批下架了

網路上介紹這個工具的文章,多半把「AI 摘要」列為主打功能:把你的觀看紀錄餵給大語言模型,生成年度回顧。這在 2026 年 5 月 6 日之前是真的。那天的一次改動,把 AI 摘要、影片摘要、語音轉文字三個模組一次刪掉,總共三千零六十九行程式碼,接 DeepSeek 用的那支路由也在其中。之後的版本,年報回歸純統計,沒有 AI 潤飾。

照著舊教學去找設定頁的人會撲空,這是查看任何工具介紹時都值得記住的案例:功能清單會過期,搬進倉庫的程式碼也會被搬走。被刪掉的那支路由,原設計走自帶金鑰的路線,模型端點預設指向 DeepSeek 官方 API,金鑰由使用者自填在設定檔,屬於「資料出不出門由你自己決定」的作法,而現在連設定項都清掉了。對照它的離場,留下兩個教訓:找安裝教學要看日期,還有別把「開源」當成功能永不變動的保證,維護者刪功能不需要跟你商量。

交出去的是整串帳號鑰匙,不是一把

QR code 掃完,程式拿到的是四件一組的帳號憑證:SESSDATA、bili_jct、DedeUserID、DedeUserID__ckMd5。用生活話比喻,SESSDATA 像門禁卡,刷了就代表你這個人;DedeUserID 像員工編號,標記身分;bili_jct 最敏感,它是 B 站用來確認「這個操作真的是本人同意」的簽核章,學名叫 CSRF token。四件合起來等於帳號的完整鑰匙圈,而原始碼顯示它們掃完碼就被逐欄明文寫進 config.yaml 這個設定檔。誰拿到這個檔案,誰就能以你的身分登入、按讚、改收藏。

能力與風險是同一個來源。專案裡有一個刪除歷史記錄的功能,原始碼寫得很直白:缺少 bili_jct 時直接報錯拒絕執行,有了它才去呼叫 B 站官方 API 幫你清記錄。能幫你整理帳號的鑰匙,就是能動你帳號的鑰匙。自架在本機不代表風險為零,它代表風險從「信任某家雲端服務」換成「信任這支程式加上你自己保管設定檔的能力」。把 config.yaml 的檔案權限限縮到只有自己能讀,是最起碼的一道鎖。

還有一條比較少人注意的外流路徑:評論查詢。這個功能不是直接問 B 站,而是把你想查的使用者編號送去一個叫 aicu.cc 的第三方服務,由它的索引回傳該使用者的留言紀錄。請求不帶你的 Cookie,帳號憑證沒有外流,但「你在查誰的評論」這件事,第三方服務看得到。介意的人可以單純不用這個模組,其他功能不吃這條路。

鑰匙圈之外,服務本身也有預設值要看。後端預設監聽所有網路介面,SSL 預設關閉,而操作介面本身沒有再設一道帳號密碼。翻譯成白話:如果你的電腦接在公司或宿舍的共用網路上,同網段的人有機會打開你的管理介面,翻你的觀看記錄。設定檔裡可以把監聽位址改成僅本機迴圈,這一步跟前面的檔案權限一樣,屬於裝完就該做的基本功。

最後是與平台本身的關係。為了穩定抓取,專案實作了 B 站的 WBI 請求簽名、組合出擬真的瀏覽器請求頭,也曾修過動態抓取被 412 攔截的問題。這些是與平台風控長期拉扯的痕跡,也提醒一件事:自動化存取帳號資料,踩在平台使用條款的灰色地帶,抓取頻率拉高的時候,帳號被限制的風險要自己承擔。

影片下載與圖片找回的真實邊界

批次下載是這個工具被注意到的另一個原因,它的邊界值得先講清楚。下載引擎是另一個獨立開源專案 yutto,以你自己的登入狀態取串流:你的帳號看得到什麼,它就下載得到什麼,登入狀態換掉,能拿的內容與畫質也跟著變。它不會破解任何權限,付費牆內的內容不會因為換了這個工具就打開。這一點跟 YouTube 下載腳本的邏輯相同,工具只負責搬,權限始終在你的帳號上。下載下來的影片怎麼用,授權責任也在使用者自己身上,這部分的自我要求不能省。

圖片找回的思路完全不同,它處理的對象是你手機裡的快取。B 站 App 會把在螢幕上顯示過的圖片存在本機快取資料夾,最多保留十四天,封面、頭像、評論區圖片、動態圖片都算。這個功能請你先用手機檔案管理器把快取資料夾壓縮打包,搬到電腦上交給它附的處理程式,離線把圖片按日期與解析度整理出來。十四天是 App 快取保留的上限,超過這段期間的內容通常已被系統清掉,救不回來。把它當成誤刪應急的救援工具,會比當成備份方案更準確。

三種安裝方式,認清新家地址

安裝有三條官方路徑。最省事的是直接抓執行檔,後端的 releases 頁提供 Windows、Linux、macOS 三個平台的壓縮檔,每包大約一百五十到兩百 MB,前端的 releases 則是各平台的安裝檔,體積小得多,兩邊都開起來就能用,對不想碰命令列的人最友善;會用 Docker 的人可以拉官方映像檔,一行指令帶著設定與輸出資料夾跑起來;想看原始碼的用 Python 3.10 以上加 FFmpeg 自己跑,影片下載功能依賴 FFmpeg,少了它統計功能照常、下載會缺席。要特別注意的是倉庫搬家:專案已經從開發者個人帳號遷移到 LifeArchiveProject 組織,Docker 映像檔的命名空間也跟著換,文件裡明講舊命名空間不再是推薦來源。搜到舊連結不用慌,會自動轉址,但下載認明新組織名比較穩。

BilibiliHistoryFetcher 的 GitHub releases 頁面,最新版本 v1.7.2 提供 Windows、Linux、macOS 三個平台的壓縮包,各附 SHA256 驗證碼,每包約一百五十到兩百 MBPin
releases 頁每版同時出三平台壓縮包,v1.7.2 發布於 2026 年 6 月 21 日(來源:專案 GitHub)

門檻也要說實話。介面與文件是簡體中文,問題支援主要靠 QQ 交流群,登入機制決定了你必須有 B 站帳號。對台灣讀者來說,看簡中沒障礙、又是 B 站重度使用者的人才有動力走這條路;偶爾看片的人,回頭用擴充功能會實際得多。

誰該走自架這條路

整理成決策軸:你在 B 站的觀看量大到會想回顧整年、你想要收藏與互動記錄跟歷史綁在一起分析、你接受把帳號鑰匙交給一支開源程式並自己保管設定檔,三項都成立,這套工具值得裝來用。只有第一項成立,先試輕量的擴充路線;第三項不成立,就別勉強。B 站相關的工具我們介紹過不少,從本機資源下載器按標籤屏蔽影片的擴充功能,各有各的邊界,先想清楚自己要解決哪一個問題再挑。

決定裝的人,從 releases 頁抓對應平台的壓縮檔,跑起來掃碼登入,第一件事先把 config.yaml 的存取權限與監聽位址設好。歷史抓取建議排在自己常用的時段,配合它的自動化任務功能慢慢補,避免短時間高頻率抓取。裝得早,回報也早:跑滿一年後打開年度總結,看到的就是十二個月完整的觀看軌跡,那正是官方介面目前給不了的東西。三個月的期限一直在倒數,早一天搬,留下的紀錄就多一天。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1341

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...