B 站淨化腳本 bilibili-cleaner,把首頁推薦與評論區還給你

bilibili-cleaner 是開源的 B 站淨化腳本,394 個開關能關掉首頁廣告、直播推薦與行銷標籤,評論區與動態也能按關鍵字過濾。本文從原始碼與官方文件整理它的權限邊界、與 Bilibili-Evolved 的相容性,以及五個裝了才會撞到的坑。

用 AI 摘要這篇文章:

打開 Bilibili 的桌面版網站,很多人的首頁早就不是自己選的樣子:推薦列表混著聳動標題的影片、置入的直播推薦、蓋不掉的活動橫幅。要處理這件事,最多人聽過的名字是 Bilibili-Evolved,GitHub 上三萬顆星的老牌框架,從介面改造、下載器到各種外掛全都能裝。但如果你要的只是把這些干擾關掉,其實有更輕的選擇:bilibili-cleaner,一支 MIT 授權、專注在淨化與過濾的使用者腳本,在 GreasyFork 上累積了超過三萬次安裝,評分 96.6 分。

它能做的就是把 Bilibili 網頁版上你不想看的東西隱藏起來:首頁的廣告與直播推薦、影片卡上的行銷標籤、評論區的特定用戶、動態列表裡的特定影片,都能用開關或關鍵字規則處理。它不是瀏覽器擴充功能,而是使用者腳本,要先裝一個腳本管理器(最常見的是 Tampermonkey)再一鍵安裝,之後的更新都自動處理。這篇整理的是從它的原始碼與官方文件看得到的事實:它能關掉什麼、它在你瀏覽器裡的權限邊界畫在哪裡、跟其他 B 站腳本會不會打架;實際裝起來每個開關的效果與流暢度,還是要靠你自己裝了判斷。

先看它碰得到哪裡:整支腳本被圈在 bilibili.com 裡

把 GreasyFork 上實際發布的腳本檔抓下來看,檔頭宣告的作用範圍只有一個網域:*://*.bilibili.com/*。Tampermonkey 授權清單裡也只有本機儲存與選單註冊相關的 API(GM_getValueGM_setValue 這一族),加上一個存取頁面物件的 unsafeWindow,沒有 GM_xmlhttpRequest。換句話說,這支腳本被賦予的能力裡,根本沒有「對其他伺服器發請求」這一項。安裝前最讓人不安的問題「它會不會把我的資料送去別的地方」,在權限這一層就被擋掉了。

比作用範圍更值得看的是它不碰的地方。檔頭列了 19 條排除規則,把 B 站的登入頁(passport)、創作者後台(member)、購物(shop)、廣告投放(cm)等子網域全部排除在作用範圍外。你輸入密碼的頁面、你查看創作收益的後台、你付錢的頁面,這支腳本根本不會載入。這不是瀏覽器強制的,是作者自己寫進設定檔的界線。

再往原始碼裡看一層:227 個原始碼檔案裡,找不到任何遙測或統計套件,也沒有腳本自己發出的網路請求。整個專案裡唯一的 fetch 其實是個攔截器,掛在 B 站頁面自己的請求上做改寫,目前對應的開關只有一個:把首頁推薦的單頁載入量從 12 支調到 24 支,方向還是瀏覽器對 B 站,不是對外發送資料。內容過濾本身發生在你的瀏覽器裡,資料流沒有反向。

394 個開關,從首頁版面到評論區都管得到

官方說明裡寫「提供 300+ 功能」,這個數字其實保守了。翻原始碼的功能登錄表,去重之後是 394 個開關,按頁面分成 14 個模組:首頁、影片頁、番劇、直播、頻道、搜尋、個人空間、動態、評論區、熱門、稍後觀看等等。這些設定不是塞在同一個面板裡讓你翻半天,每種頁面有自己的選單,想在首頁關廣告就到首頁開選單,想清播放頁就到播放頁開。

bilibili-cleaner 在 Tampermonkey 與 Violentmonkey 腳本管理器裡的設定選單,顯示頁面淨化優化與影片過濾設定項目Pin
bilibili-cleaner 的設定選單掛在腳本管理器裡,頁面淨化與影片過濾各有獨立選單(圖片來源:官方 README)

首頁模組裡可以關掉的東西很具體:廣告、直播間推薦、影片卡上的彈幕數與發布時間、「已關注」「破萬點讚」之類的行銷標籤,甚至能把推薦列表改成二到六欄的版面。播放頁管得更細,整個頁面的設定分成播放器、彈幕區、彈幕控制列、字幕、迷你播放器、影片資訊、右側推薦等十幾個區塊,從彈幕區的禮儀提示、廣告彈幕,到影片資訊欄的排行榜與每週必看榮譽標籤、飲酒危險與 AI 生成的提醒文字,各有獨立開關。跟淨化沾不上邊但順手附贈的,還有一個夜間模式,可以選日間、夜間或跟隨系統。

Bilibili 桌面版首頁畫面,搜尋欄、分類導覽與影片推薦列表Pin
Bilibili 桌面版首頁,bilibili-cleaner 的首頁模組就是在這個畫面上關掉廣告與行銷標籤(圖片來源:官方 README)

過濾那一半是黑白名單邏輯,而且各頁面的開關獨立,但標題關鍵字的黑白名單全站共用一份。影片過濾能用的維度,從原始碼的過濾器清單看有:時長、UP 主、UP 主名稱關鍵字、BV 號、標題關鍵字、發布時間、播放數,熱門頁另外能按畫質與直向影片過濾。作用範圍是首頁、播放頁、搜尋頁、熱門頁、分區頁與個人空間頁。

評論過濾的維度更細:用戶名、用戶名關鍵字、內容關鍵字、用戶等級、廣告評論、無頭像帳號、機器人評論、純表情評論,連「標註了別人卻沒有回覆」這類互動評論都有獨立開關可以處理。動態頁的動態過濾則按用戶名、影片標題等條件篩選。關鍵字全部支援正規表示式,用 /abc|\d+/ 這種寫法,預設不分大小寫。要知道的一件實事:各頁面的開關彼此獨立,但標題關鍵字的黑白名單是全站共用一份,你在首頁加了一組標題關鍵字,它也會在搜尋頁、熱門頁、空間頁生效。

常用的操作有個捷徑:頁面角落可以啟用快捷按鈕組件,裡面附帶夜間模式的快速切換。官方文件還給了一個頗有經驗的提醒,粗製濫造的 UP 主常出沒在熱門影片、每週必看、排行榜這幾個區塊,要清就到熱門頁去封鎖,因為那些區塊會浮現首頁推薦之外的內容,要清就得在那些頁面上動手。

白名單的優先權高於黑名單,命中的內容不會被隱藏。官方文件特別提醒兩件事:時長過濾建議設在 60 到 90 秒,設太長會把好影片一起擋掉;白名單要謹慎加,因為它會讓黑名單對同一個對象失效。操作門檻也壓得很低,照官方文件的寫法,開啟 UP 主過濾後,在影片卡片上對 UP 主名字按右鍵就能封鎖,開啟 BV 號過濾後對影片標題按右鍵也一樣,評論區則是對用戶名按右鍵。這些互動行為我沒有實際裝來驗證,但對應的過濾引擎在原始碼裡確實是成對的黑名單與白名單檢查,邏輯跟文件描述一致。

懶得自己想規則的人還有現成的可以抄:作者在倉庫裡附了一份關鍵字清單,把常見的標題類型整理成可以直接貼上的正規表示式。跟它比起來,我們先前介紹過的 Bilibili 批次封鎖擴充功能剛好是互補的位置:那一支管的是名單本身(把特定帳號一次封鎖),這一支管的是版面與內容過濾。兩者的權限模型也剛好是兩種極端,那一支的功能其實只需要一個權杖,卻要求讀取整個網域的 Cookie;這一支則是把權限收到只剩本機儲存與選單註冊,連發請求的能力都沒申請。

零遙測之外,唯一要看懂的依賴

腳本檔頭有一行 @require,指向 npmmirror(npm 的中國鏡像站)上的 Vue 3.5.40。這是整支腳本唯一的外部依賴:設定面板的介面用 Vue 寫,作者選擇不打包進腳本,交給腳本管理器在安裝與更新時載入。對隱私的實際影響很小,載的是一個公開的固定版本檔案,不是每次瀏覽都碰你的資料;但供應鏈上確實多了一個環節,如果那個 CDN 出問題,理論上所有裝了腳本的人都會受影響。這是一種取捨,你應該知道它存在,再決定接不接受。

你的所有設定存在腳本管理器的本機儲存裡,不會同步、也不會上傳。這對隱私是好事,代價是要自己負責備份,後面會講。

跟 Bilibili-Evolved 一起裝,會不會打架

先講定位差異。Evolved 是框架,三萬顆星、生態完整,夜間模式、下載器、頂欄客製化都靠它;cleaner 是單一目的工具,952 顆星,只做淨化與過濾這一件事。兩者的授權也不同:cleaner 是標準 MIT,Evolved 在 GitHub 的授權欄位顯示為非標準授權,商業使用前要多看一眼。

能不能一起裝?官方文件直接給了答案,而且寫得比多數專案仔細。跟 Evolved 大部分相容,只有少數功能重複,遇到首頁橫幅要照它給的開關組合調整;Evolved 的「清爽首頁」與「極簡首頁」會接管首頁版面,那部分 cleaner 管不到。跟首頁客製化工具 Bilibili-Gate 相容;跟把 B 站退回舊版播放頁的 Bilibili-Old 完全不相容,只能二選一;跟彈幕合併工具 Pakku.js 是官方建議的搭配;跟 BewlyBewly 的新版首頁不相容。

我的看法是,已經在用 Evolved 的人不用急著換,重疊的只有淨化那塊;反過來,如果你要的就是一套能細調的過濾規則,而不是整個外掛生態,單裝 cleaner 拿到的東西更聚焦,權限也收得更窄。

五個裝了之後才會撞到的坑

帶 index.html 的首頁。影片過濾在網址帶 index.html 後綴的首頁不會生效,要用沒有後綴的 www.bilibili.com。如果你發現過濾規則時靈時不靈,先檢查網址。

特殊活動直播頁。官方已知問題清單裡寫明,遇到特殊活動的直播間,改完腳本設定要重新整理頁面才生效,而且彈幕淨化在這種頁面上不作用。一般直播間不受這條影響。

給 UP 主充電時視窗跳 NaN。充電是 B 站的贊助功能,部分情況下會載入失敗。官方解法是把通用設定裡的「URL 參數淨化」關掉,重新整理後再試。

手機版別硬上。官方明確不建議在行動版瀏覽器使用,真的要用,官方給的組合是 Firefox 或 Edge 手機版加 Tampermonkey。

換瀏覽器要先匯出。設定只存在本機,換電腦或換瀏覽器之前,記得用設定面板的匯出功能把規則備份下來。官方文件連這件事都放在警告等級的提醒裡:開了一堆功能、封鎖了一堆內容的人,務必定期備份。

安裝管道與我的判斷

安裝走 GreasyFork 一鍵安裝,這是穩定版;GitHub 的 release 分支和 JSDelivr 是測試版管道,後者給連不上 GreasyFork 的人用。腳本管理器首選 Tampermonkey(官方完全測試過),Violentmonkey 在新版 Chrome 上官方直接標明無法運行。瀏覽器方面,Chrome 與 Edge 都能用,Edge 要先在擴充功能頁打開開發人員模式;Firefox 121 以後不用改設定,103 到 120 要到設定頁搜尋 layout.css.has-selector.enabled 打開,因為腳本用到了這個選擇器語法;Safari 15.4 以上也支援,但官方沒有在 Safari 上逐項測試功能可用性。

把干擾從自己的視線裡移開,這件事我們在別的地方也聊過:電子郵件可以把 Gmail 收件匣清乾淨,瀏覽器本身也能靠內建設定先瘦一圈。B 站這邊,如果你的問題是「首頁不是我想要的樣子」,先裝 cleaner 這種單一目的工具,比直接上框架更快看到結果;等哪天你開始想要下載器、頂欄客製化這些框架級的功能,再回頭研究 Evolved 也不遲,兩者大部分時候可以共存。

維護狀態是這類腳本最實際的品質指標,因為 B 站改版一次,跟不上的一起失效。bilibili-cleaner 從 2023 年 11 月發布到現在,2026 年五月以來大致月更(五月到八月出了六個版本),GitHub 上的問題回報也關得勤。想動手的人,從 GreasyFork 裝穩定版、先關一兩個廣告開關試水溫,是最不用猶豫的起點。

Sliven 褚崇名
Sliven 褚崇名

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

文章: 992

發佈留言

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


Share to...