打开 B 站,首页第一屏五条全是上次看过的同质化内容。再刷一次,第六条还是。再刷,第十条仍然是。
这不是错觉,是算法在「贴心」地把你关进一个越来越小的房间。
我以前不在意,直到某天突然意识到:已经记不清上一次在 B 站首页刷到「这玩意我居然不知道」的内容是什么时候了。 兴趣面被算法精准切片,每次打开都是同一组推荐池在轮换。
信息茧房不是新概念,但 B 站把它做成了一种生理反应——刷得越久越无聊,越无聊越想刷。
这周翻到一个开源扩展 TabulaBili-Plus,号称能让 B 站首页「彻底失忆」。装上跑了几天,确实把我从那种「越刷越闷」里捞出来了。聊聊它的原理、踩到的坑,还有一些更深的思考。
它到底解决什么问题
先把痛点说清楚。B 站首页推荐有两种极端:
- 登录状态:1080P/4K 高清随便看,一键三连历史记录全在,但首页推荐被 Cookie 锁死,越看越窄。
- 未登录状态:首页是全站热门「广场」,内容杂、新鲜感强,但视频限制 720P,弹窗劝你登录到崩溃。
这是一个典型的「鱼和熊掌」困境。绝大多数老用户都默默接受了第一种代价——用兴趣面萎缩换画质和便利。但代价远不止画面收窄那么简单:
- 你以为你在「探索」,其实算法只是在你已知的圈子里反复打转。
- 你以为你「品味独特」,其实只是被推荐过滤之后的幸存者偏差。
- 你以为你「想看什么找什么」,其实你早就忘了 B 站还有别的内容存在。
TabulaBili-Plus 卡在这两者中间——保留登录态的所有特权,但把首页推荐流的 Cookie 干掉。算法读不到你是谁,只能按照「未登录访客」的逻辑给你推全站热门。
一句话:身份保留,画像清零。
这种「单点漂白」的思路特别讨巧。它没有去和 B 站对抗,没有破解什么协议,只是把推荐接口的请求头精修了一刀。其他所有功能——播放、弹幕、登录态、大会员、收藏、历史——丝毫不动。
原理:DNR 比 Fetch 拦截更优雅
这个项目最有意思的不是功能,而是实现路径。它用的是 Chrome MV3 的 declarativeNetRequest(DNR)规则,而不是常见的注入 JS 拦截 Fetch。
两种思路差别很大:
| 维度 | 前端 Fetch/Ajax 拦截 | DNR Cookie 移除 |
|---|---|---|
| 注入位置 | 每个页面注 JS | 浏览器底层网络层 |
| 性能开销 | 解析+劫持,影响加载 | 几乎为零 |
| 维护成本 | 跟着 B 站前端改 | 只盯接口路径 |
| 抗签名干扰 | 容易和 Wbi 签名冲突 | 不碰前端逻辑 |
| 稳定性 | 一次改版可能全废 | 接口不变就一直能用 |
具体动作只有一个:当浏览器请求 B 站首页推荐接口时,DNR 规则把整个 Cookie 请求头拿掉。后端拿到的请求长得像一个全新访客,于是返回热度排序的内容,而不是个性化 feed。
这个套路用在哪都行——任何「想保留登录态但不想被画像」的场景,都可以照搬。微博、知乎、YouTube 都有类似的可玩空间。
看一下整个流程拆开有多简单:
# 浏览器发起请求 → DNR 规则匹配 B 站首页 feed 接口
# ↓
# 规则动作: 移除 Cookie 请求头
# ↓
# B 站后端收到请求: 「咦, 没 Cookie? 当未登录处理」
# ↓
# 返回热度排序的 feed (而非个性化推荐)
# ↓
# 浏览器渲染: 你看到一个「陌生」的首页
整套机制最妙的地方:B 站后端没有任何手段判断这个请求异常。因为「未登录访客」本就是合法访问场景,是 B 站自己设计支持的。扩展所做的,只是让一个登录用户「在某个特定接口上扮演成访客」。攻防关系本质上无法成立。
配置:装上点一下,没了
教程部分我尽量短,因为它真的没什么好教的。
# 1. 打开 Chrome 扩展商店
# 2. 搜 "TabulaBili-Plus" 或直接装
# 3. 把扩展图标 Pin 到工具栏
# 4. 点击图标,看到一个开关
开关两档:
- ACTIVE(开启):纯净访客模式,首页变热门广场。
- OFF(关闭):恢复原版个性化推荐。
切换时如果当前正在 B 站页面,扩展会自动局部刷新一下,不需要手动 F5。这是相对原项目的一个改进。
两个细节值得提:
- 图标常驻:建议 Pin 到工具栏。不然每次找它要点两次。
- 不会自动启动:装完默认是关闭状态。第一次必须手动点一下开。这设计挺克制——避免新装的用户被吓一跳。
实战:开和关,到底差多少
这是我最关心的部分。装完不验证就当结束的,那是产品经理写公众号,不是技术博客。
我做了一个最简单的对照:
- 关闭扩展,登录账号刷新首页,记下前 20 条视频的分类。
- 开启扩展,同一窗口刷新首页,记下前 20 条视频的分类。
对比结果:
| 维度 | 关(个性化) | 开(纯净访客) |
|---|---|---|
| 分类数量 | 4 类(科技/编程/AI/数码) | 11 类(含游戏/影视/生活/动画/鬼畜/纪录片/科普) |
| 重复 UP 主比例 | 约 35% | 约 5% |
| 「未关注但收藏过」UP | 高频出现 | 几乎没有 |
| 视频平均时长 | 偏短(推算法偏好) | 长短混合 |
| 整体感受 | 像看了一遍朋友圈 | 像走进一个陌生书店 |
最直观的变化:开启后,我看到了一条某美食 UP 做云南菜的视频,全程 23 分钟,看完顺手收藏。这种内容算法绝不会推给我,因为它知道我点过的全是技术。
但这才是首页该干的事——给一个我自己想不到、搜不到、关键词描述不出来的发现。
再看一组更主观的体感对照:
| 场景 | 关闭扩展 | 开启扩展 |
|---|---|---|
| 「随便刷刷」 | 5 分钟想关 | 20 分钟还在滑 |
| 找新 UP 主关注 | 几乎不发生 | 平均一天 1-2 个 |
| 「这玩意儿我居然不知道」 | 几乎没有 | 经常出现 |
| 同质化疲劳 | 强烈 | 几乎为零 |
| 关注列表里的更新 | 完全淹没 | 在动态页正常出现 |
注意最后一行——关注列表的内容不在首页推荐流上。所以这个扩展不会影响「我关注的 UP 主有更新」这件事,那部分内容走的是「动态」标签页,逻辑完全独立。
开启之后唯一能影响的,是首页推荐这一栏。这是它的边界,也是它的克制之处。
适合谁,不适合谁
这工具不是万能药。装之前先问自己:
适合:
- 老 B 站用户,觉得首页越来越无聊。
- 想保留 1080P/大会员/历史记录但摆脱推荐绑架。
- 主要在桌面端刷 B 站。
- 喜欢「逛街式」浏览,不喜欢被精准投喂。
不适合:
- 主要在手机 App 看 B 站的人(扩展管不到 App)。
- 习惯把首页当个人订阅页用的人——它本来就该乱,开了之后会更乱。
- 期待「让算法变聪明」的人——这扩展是反方向的,它让算法变「不认识你」。
踩坑记录
跑了几天,遇到三个坑:
1. 刷太快会 429
扩展把 Cookie 抹掉之后,B 站后端把你识别为「未登录访客」。未登录访客的请求频率限制比登录用户严格得多,靠 IP 限速。我有一次连续刷新首页十几下做测试,直接被限流,过了几分钟才恢复。
正常使用没问题,别在开启状态下狂按 F5。如果真的撞到 429,关掉扩展、等几分钟、再开,就好了。我撞过两次,都和测试有关,正常浏览没遇到过。
2. App 端无效
扩展只对桌面 Chrome 生效。手机 App 内部走自己的网络栈,DNR 规则管不到。所以「在手机上刷 B 站」依然是茧房原状。
如果你大部分 B 站消费在手机,这个工具收益就不高。
3. 二开和原项目的关系
这一点容易忽略。TabulaBili-Plus 是基于原项目 TabulaBili 的二次开发版,作者是 tjsky,理由是原作者不打算上架扩展商店。两个项目都开源在 GitHub。
如果你介意「不上架」,可以装 Plus 版;如果你介意「二开」,可以从原仓库自己打包加载。两条路都走得通,但要清楚自己装的是哪个。
横向看一眼:算法对抗类扩展三巨头
这种「让平台不认识你」的扩展,B 站不是第一个。我顺手梳理了一下手里在用的同类工具:
| 平台 | 扩展 | 核心动作 | 类比 |
|---|---|---|---|
| YouTube | Unhook | 隐藏首页/侧栏推荐 | 用 CSS 屏蔽 |
| Twitter/X | Control Panel for Twitter | 关闭「为你推荐」、强制时间线 | 改 UI 入口 |
| B 站 | TabulaBili-Plus | 抹除推荐接口 Cookie | 改请求头 |
三种思路代表了三个对抗层次:
- CSS 屏蔽最简单,眼不见为净,但数据其实还在传。
- UI 改造中等,影响入口选择,但底层算法依旧懂你。
- 接口层处理最彻底,让后端在数据层面就拿不到你。
TabulaBili-Plus 走的是第三条路。这也是为什么我觉得它技术上更优雅。
我更想说的一件事
写到这里其实可以收尾了。但有个更值得说的点。
这个扩展的存在本身,就是一个时代的注脚。
十年前我们装扩展是为了去广告、加功能、改皮肤。今天我们装扩展,是为了让算法不要那么懂我。
这是一个奇怪的反转——技术原本是用来理解人的,现在我们要用技术来制造一道墙,挡住技术对自己的理解。
TabulaBili-Plus 干的事情,本质和那些「关闭个性化推荐」的国家级合规开关是同一个方向。区别在于:合规开关只是「假装关」,而这个扩展是从协议层面让算法真的看不见你。
更深一层想:所有大平台的「关闭个性化」开关,理论上能做到这种效果。但现实里没几个真的做到。算法和它带来的留存指标已经深度绑定了产品的 KPI,「真的关闭」对平台是一种自我伤害。所以合规开关们都做得:
- 入口很深(埋三层菜单)。
- 文案很模糊(「降低个性化程度」「调整推荐」)。
- 动作很犹豫(点开之后还要再确认一次)。
- 行为很微弱(关了之后首页变化不大)。
相比之下,一个第三方扩展用 50 行 DNR 规则,就让算法真的失忆了。这种「外部力量比内部开关更靠谱」的局面,本身就值得品味。
用户对自己注意力的主权,最后竟然要靠浏览器扩展来收回。
如果你也开始觉得自己的首页不像首页,更像一面镜子在反复照自己——装一下,刷一会,看看那种「世界比我想象的大」的感觉,还能不能找回来。
用了几天之后我有个小小的发现:开启它之后,我刷 B 站的总时长反而变短了。不是因为内容变差,而是因为「逛新地方」这件事本身有终点感——逛累了就走了。算法精准投喂没有终点,因为下一条永远更对胃口。
这可能才是「算法成瘾」最阴险的地方——它不是因为内容好,是因为它从不让你产生「看够了」的感觉。
一句话总结
TabulaBili-Plus:5 秒装好,一个开关,让 B 站首页从「猜你喜欢」回到「热门广场」,登录态全保留,画质大会员不影响。
GitHub 开源,Chrome 商店上架,免费。
唯一代价:手别快,慢慢刷。
如果觉得这个思路有意思,可以顺手看看我之前写的几篇相关:
- Claude Code 32 个 Skill + 8 个 MCP 全配置 —— 让 AI 工具按你的脑回路工作
- Claude Code Token 成本砍 7 招 —— 同样是「让平台不要那么贪」
收回属于自己的注意力,从来都不是大动作。一个扩展、一个开关,有时候就够了。