拒绝算法绑架!【TabulaBili-Plus 】扩展:让 B 站个性化推荐算法“彻底失忆”一键回归纯净热门流

拒绝算法绑架!【TabulaBili-Plus 】扩展:让 B 站个性化推荐算法“彻底失忆”一键回归纯净热门流
拒绝算法绑架!【TabulaBili-Plus 】扩展:让 B 站个性化推荐算法“彻底失忆”一键回归纯净热门流
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


image

20260529152702

技术原理

B 站首页的推荐流是通过前端异步请求后端接口拉取数据的(核心接口为 api.bilibili.com/x/web-interface/wbi/index/top/feed/rcmd
前端 Wbi 动态签名加密对后端接口的 Query 参数进行哈希验证,防止仿冒,但其并不校验 HTTP 请求头中的 Cookie 完整性。

TabulaBili-Plus 利用 Chrome 扩展 Manifest V3 的 declarativeNetRequest (DNR) 机制 ,配合前端脚本注入重写 fetch,在请求真正发出前执行异步阻塞,通知后台 DNR 将规则链(remove/set)编译妥当,在浏览器底层网络层进行请求头清洗,清理相关追踪参数,随后传至接口 URL,实现去除其中的相关追踪参数。

安装与使用指南

1. 在线安装

访问 Chrome扩展商店 像正常的扩展那样安装就行。

2. 本地安装 (开发者模式)

  1. 下载扩展:GitHub | 蓝奏云(密码:tjsky)
  2. TabulaBili-Plus文件夹解压到一个你喜欢的位置。
  3. 打开 Chrome 浏览器,在地址栏输入 chrome://extensions/ 进入扩展管理页面。
  4. 开启页面右上角的 “开发者模式” (Developer mode)。
  5. 点击左上角的 “加载已解压的扩展程序” (Load unpacked),选择本扩展所在的目录(即 TabulaBili-Plus-v*.*.* 文件夹)。

2. 使用方法

  1. 在浏览器右上角的扩展工具栏中找到 TabulaBili-Plus 并将其固定(Pin)。
    2.点击扩展图标打开设置面板:
  • 纯净模式:完全阻止个人数据回传,彻底屏蔽个性化推荐。
  • 探索模式:前10个内容遵循个性化推荐,以此为起点浏览热门内容。
  • 混合模式:扩展间歇工作,交替请求热门与个性化内容,兼顾打破信息茧房和个人喜好舒适圈。
  • 个性模式:扩展不做干预,首页推荐遵循 B 站自身算法。
  1. 智能刷新:在切换开关时,如果扩展检测到你当前正在浏览 B 站页面,会自动帮你重载页面以让新模式立即生效。
  2. 刷新设备指纹:探索模式与混合模式下,可点击右下角「刷新设备指纹」按钮,强制更新设备指纹。

常见问题 (FAQ)

Q1:看久了之后,还会受算法影响吗?

纯净模式下完全不会。 因为扩展在底层移除了推荐接口的整个 Cookie 请求头,无论你在浏览器本地看多久、存了多少追踪指纹,后端推荐算法在处理 feed 请求时都无法读取。此时对算法而言,你每一次刷新首页,都是一次“失忆”式的全新访问。

Q2:会影响我的历史播放记录和点赞收藏吗?

没有任何影响。 扩展只处理首页推荐流的请求,你在播放页的观看进度、一键三连、稍后再看等行为都会正常保存在你的 B 站账号下。

Q3:抹除整个/部分 cookies 是否有什么隐患?

具体看你用什么模式:

  • 「纯净模式」:扩展抹除所有的 cookies 导致B站容易将你识别为爬虫,从而在1~24小时内都返回固定内容。(表现为,关掉浏览器马上再打开 B 站,首页前 10 个视频一模一样)。如果你觉得过于蛋疼,请切换到「探索模式」
  • 「混合/探索模式」:扩展会过滤 cookies ,只传递必要的buvid3buvid4参数,目前 B 站没有基于 Cookie 的防火墙,也未做参数交叉动态校验,所以目前没有任何问题,但不排除未来哪一天 B 站突然丧心病狂地升级了安全策略的可能性。
  • 「个性模式」:扩展不做任何干预,纯原生状态。
Q4:在探索模式/混合模式下,「刷新设备指纹」按钮是干什么的?

在这个模式下,需要给B站必要的两个设备追踪参数buvid3/4(设备特征码)来让B站接口知道你是谁,不重复推送已经给过你的内容。B站此时不知道你的账号,但会利用你的设备指纹识追踪你,刷久了就变成基于设备识别的个性化推荐了。所以扩展设计了「刷新设备指纹」按钮,当你点击时扩展会强制 B 站重新向其后端申请一套全新的的设备指纹,从而切断基于设备识别的个性化推荐。

Q5:为什么采用后端 DNR 和前端 Fetch 混合模式?

为了提高用户体验。 因为 B 站前端有 Wbi 动态签名加密(w_rid 参数)。在探索模式/混合模式下,如果我们只使用 DNR 在网络层去拦截并强制修改 URL 参数(比如加随机数来获取新热门流),会直接破坏哈希校验,导致 B 站后端返回 -403 校验失败解法:经逆向发现,B 站的 Wbi 签名只对 URL 的 Query 参数进行哈希验真,并不校验 HTTP 请求头中的 Cookie。因此,扩展利用前端脚本重写 fetch,在请求真正发出的前执行异步阻塞,通知后台 DNR 将规则链(remove/set)编译妥当,随后透传原生 URL,清洗个人痕迹。

Q6:说下TabulaBiliTabulaBili-Plus的区别?
  • 原版=PLus版的「纯净模式」
  • 优点:超级轻量,本质上是用 DNR 将请求头擦除,完全无任何前端注入。你甚至可以用uBlock Origin、Header Editor 之类的扩展写规则实现效果,连额外扩展都不用装。比如uBlock Origin,只需要一行规则||api.bilibili.com/x/web-interface/wbi/index/top/feed/rcmd$xhr,removeheader=cookie实现同样的效果。
  • 缺点:1、因为B站使用SSR渲染首页,所以前10个视频仍然是个性化推荐。2、前边Q3里解释过,长期完全抹除cookie 有可能被 B 站当成爬虫,只返回固定内容。3、为了同时观看个性化和热门内容需要来回开关扩展,Plus则可以用「混合模式」和「探索模式」将热门和个性化内容混合显示。

开源与许可致谢:

本扩展 TabulaBili-Plus 基于 MIT 开源许可证合规开发。项目基于开源创意项目 TabulaBili 进行二开维护。在原项目天才的底层拦截灵感之上,Plus版重构了多模式切换、设备指纹清理、自动化防误伤机制、并重构了扩展面板。所有后续的 Bug 反馈与 issues 维护工作由二开维护者(就是我)负责,感谢开源世界的美好相遇!

下载

7 个帖子 - 6 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文