Repository navigation
Releases: MrTangLuyao/Bilibili-thread-ripper
Release list
2026.10.25.1
Note
早期视频里介绍的 Chrome 独立插件版已经停止维护,请不要再安装。安装方法见安装说明。
新增
- BTR Canary 测试版:跟着开发中的最新代码自动更新的另一个脚本,README“开发与构建”里有黄色的“点击测试 BTR Canary”按钮。它在脚本管理器里叫“Bilibili 线程撕裂者 Canary”,和正式版各自更新、各存一份设置;设置面板的版本号后面有黄色的 Canary 标记。正式版和 Canary 同时开着时,只有先启动的那个在运行,设置面板会提醒你关掉一个。
- GitHub Actions:离线测试分组同时跑;推送到 main 时再用真实 B 站视频测起播、拖动、播到结尾和跟随清晰度;全部通过后自动更新 Canary(也可以手动单独生成,或者勾选忽略失败照样生成);推送版本 tag 时先测一遍再建 GitHub Release。详见 README 的“开发与构建”。
变更
- 真实视频测试遇到放不了 HEVC 的浏览器时跳过 HEVC 的两项,不再等到超时失败。
修复
- 全接管下,暂停后拖到还没缓冲的位置,在加载时按了播放,再拖一次进度条,视频会一直停着,要再按一次播放;反过来,播放时拖动后在加载时按了暂停,加载完又会自己播起来。现在加载中按的播放和暂停都算数。
0.9.4.3
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
安装
-
安装 Tampermonkey 插件 或者 暴力猴 插件。
-
⚠️ (对于Chromium内核如Chrome/Edge 必做)在扩展程序内,点击 Tampermonkey 或 暴力猴 插件的 详情,打开允许运行用户脚本。
-
❗点这里:安装线程撕裂者
-
打开任意 B 站视频,安装完成。你应该能打开设置菜单 能看到BTR的悬浮球设置按钮。
⚠️ 注意⚠️
-
插件支持 基于Chromium/Firefox/Safari 的浏览器
-
有新版会自动更新,如果有更新弹窗 请点击 更新
-
Chrome/Edge/基于Chromium内核的其他浏览器务必前往:扩展管理 → Tampermonkey(或暴力猴)→ 详情 → 打开“允许用户脚本”(老版本是打开“开发者模式”)
-
Safari 浏览器建议开启兼容模式
-
如果你曾经安装过插件版,先在扩展管理里把它移除,再装油猴脚本。请不要同时开启两个版本。
-
BTR设置位于任意B站页面的悬浮球 或 点击 Tampermonkey(或暴力猴)→ 线程撕裂者设置
[0.9.4.3] - 2026-09-26
修复
- 装了插件以后,画质菜单里没有杜比视界和 HDR,只能看 4K,Hi-Res 无损和杜比全景声音轨也用不了(#29)。插件接管视频时,如果正好碰上 B 站播放器刚打开自己的媒体源、还没建好缓冲区,B 站接着建缓冲区就会失败,它把这次失败当成“浏览器不支持这种编码”:整个标签页不再用 HEVC(杜比视界和 HDR 都是 HEVC),这个页面不再提供 Hi-Res 和杜比全景声,并且马上降到 4K 重新播放。这个标记记在标签页里,有的账号还会在本地记好几天,所以换兼容模式、刷新页面都没用。现在接管前会先等 B 站把缓冲区建好(最多 1 秒,平时不用等);插件接管期间 B 站不会再记下这类“解码失败”;旧版本留下的这类记录,升级后清除一次。真实页面验证(Chrome,杜比视界视频):把这个时机人为放大时,旧版 5 次都被 B 站记下了标记,新版 7 次都没有,一直是杜比视界;正常打开各 20 次,旧版中招 2 次,新版 0 次。
- 全接管下,在播放器里打开 Hi-Res 无损或杜比全景声,插件现在播对应的音轨,以前一直播普通音轨。浏览器放不了的时候仍用普通音轨(比如 Chrome 放不了杜比全景声)。
0.9.4.2
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
[0.9.4.2] - 2026-09-23
新增
- 每个 B 站页面的右下角多了一个悬浮按钮,点一下打开设置面板。以前只能从扩展图标、油猴菜单或播放器齿轮菜单进设置,首页和很多页面上根本没有入口,不少人因此打不开设置。按钮平时很淡,鼠标移上去才变亮,不挡视线。可以拖到任意位置;只有松手时离左右边缘很近(72 像素内)才会吸附到边缘上,其余位置放哪就停哪。位置会记住,换页面、刷新都保持;默认放在 B 站自己那一列圆形按钮的左边,不挡它们。看视频时只要画面占满窗口(浏览器全屏和 B 站的网页全屏都算)按钮就自动隐藏,判断看的是画面本身的大小,不依赖 B 站的类名;设置面板打开时按钮也让位。设置面板最下面新增“悬浮按钮”开关可以关掉它。
移除
- 删除首次使用的欢迎设置页(#26)。油猴脚本的设置存在各个 B 站域名自己的 localStorage 里,“已经看过”的记录不跨域名,所以换一个域名(空间、动态、搜索)就又弹一次,点了确认也没用。插件版同样去掉,默认设置不变,需要改设置从悬浮按钮进。
0.9.4.1
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
[0.9.4.1] - 2026-09-23
下载调度优化,来自 hoho087 的 #23:用“这段数据离播放还有多久”和每个请求的实时进度,决定什么时候给慢的子块开备份副本。合并后又按模拟数据改了几处。
新增
- 排队按用途分三档:视频头信息和首块探测、起播数据、其余数据;同一档里,播放器的请求等得越久优先级越高(每 0.9 秒加 20),先排队的子块不会一直被后来的插队。
- 每个请求的传输事件带上已收字节、速度和预计剩余时间(bps、etaMs)。
变更
- 备份副本的计时改为从主请求真正拿到连接开始(只针对播放器的请求)。以前从子块排队时就开始计时,连接占满时,排队中子块的副本会比它自己的主请求先拿到连接,白下一份。
- 主请求正在收数据、按目前速度能在播放前 1.5 秒以上下完,就先不开副本,带宽留给更急的子块;一个延迟内没收到新数据、或明显比平时慢,照常开。
- 主请求速度和平时的连接速度差不多时,只有备用节点已知快 1.5 倍以上、或还没测过速时才开副本:换个一样快的节点只会占掉下一个子块的连接。
- 播放器给出的截止时间改为实时读取,中途改倍速、拖动或卡顿都会立刻反映到还在下载的子块上。
- 兼容模式和客户端版不传截止时间,对冲时机和排队顺序保持 0.9.4.0 的做法;下载基准 10 个场景的差异都在 ±5% 以内(×0.98 到 ×1.05)。
- 已经赶不上播放时间的子块,即使备用节点的测速显示"不会更快",每段也允许动用有限的名额去试一次:那条测速可能是一分钟前的,节点早就恢复了,而干等请求超时的代价大得多。
- 播放模拟(9 种网络、每种 3 轮,和 0.9.4.0 比)卡顿总时长:带宽宽松 12.1 秒 → 0,带宽紧 34 秒 → 1.6 秒,更紧 56 秒 → 14 秒,32 线程 16.8 秒 → 0.25 秒,单连接限速 400 KB/s 6.1 秒 → 0.94 秒,限速且一个节点卡住 5.9 秒 → 4.8 秒,单连接限速 300 KB/s 9.5 秒 → 8.6 秒,节点中途变慢 12 秒 → 0,节点快慢不一两边都不卡(起播 2.0 秒 → 1.7 秒);重复下载的流量从 9%–19% 降到 2%–10%;起播持平或更快。最紧的两种网络(总带宽低于码率)卡顿次数变多,每次都很短,总时长明显更少。
- 更新历史文件由
updates.md改名为CHANGELOG.md,并改写为 Keep a Changelog 格式:每个版本带发布日期,条目按 新增 / 变更 / 弃用 / 移除 / 修复 / 安全 分类,README 与打包脚本的引用同步更新(#27,感谢 StevenLi-phoenix)。
0.9.4.0
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
0.9.4.0
直播加速模块和点播修复,来自 Roushelfy 的 #25,合并时修了几处问题;另外修了拖动进度条回跳的 bug,新增自动线程数,设置面板在所有 B 站页面都能打开。
- 新增“自动线程数”,默认开启:从 8 条线程起步,播放器一出现卡顿、或者缓冲越来越少而下载还在满负荷跑,就马上加线程(8 → 12 → 16 → 24 → 32,两次加线程至少隔 2.5 秒)。每次加线程都是一次试验:10 秒后下载速度(只算完整收到的分块,不算备份副本的重复字节)没有比加之前快,就退回加之前的档位,这一档 90 秒内不再试;服务器返回 412 / 429(限流)退一档,3 分钟内不再升到被拒的那一档及以上。同一个页面里换视频保留学到的线程数,新开页面从 8 重新开始。首次引导、设置面板和播放器齿轮菜单里都可以关掉自动、改回固定线程数。Debug 模式下每次调整都有一条提示(“线程数加到 16”“线程数退回 8”)。真实页面验证:把网络限到 900 kbps 后,缓冲一路往下掉时逐档加线程、每次调整立刻生效(12 条就是 12 个连接),加到 24 没有更快就退回 16 并让 24 休息;播放卡住的那一刻也立即加一档。
- 修复拖进度条或切清晰度后有时“卡回拖动前的位置”的问题。B 站的播放内核会在自己重载视频源(换清晰度、或者插件接管时它重试的那一次)时记下当时的播放位置,之后每次视频元素报告新的元数据都跳回那里,直到视频播完。以前插件每次跳转都要重建会话:先把 video 元素连同媒体源拆掉(位置归零)、再把目标位置写回去,每次都会产生新的元数据,所以只要发生过一次回退原生再接管,之后每次拖动、每次换清晰度都会被它拉回旧位置;别的也 hook 了播放器的脚本也可能趁归零的时候写回旧位置。修法分两部分:
- 拖动进度条改为在当前播放会话内完成(Roushelfy 在 #25 里的改动):全程不写 currentTime、不换媒体源,各轨道移到目标分段,按代际取消旧位置还在下载的分段,清掉离目标很远的缓冲,然后走和补缓冲一样的等待恢复路径。跳转也更快,不再重建 MediaSource。合并时补了两处:跳转时先让缓冲区丢掉可能只写了一半的分片(第一段是边下边写的),再写新位置;旧位置还在进行中的写入在跳转后才落地时,不再改动新位置的下载进度,也不会误把视频流标记为结束。播完回到开头的重播(单集循环,#17)仍走完整重建。
- 换清晰度、换编码仍然要重开会话:插件识别出紧跟在自己会话元数据之后、落在内核记住的旧位置上的跳转,把播放头放回你选的位置(Debug 模式下有一条“挡住了 B 站播放器的回跳”)。真实页面验证:内核跳回 154 秒后 1-2 毫秒内被放回,播放从你拖到的位置继续。
- 扩展图标在所有 bilibili.com 页面(个人空间、搜索、动态等)都能打开设置面板,以前只有视频页和直播页可以。油猴脚本同样在所有 B 站页面运行,视频接管只在 www / m 域,直播只在 live 域。
- 新增直播加速模块(live.bilibili.com)。海外看直播卡顿的主要来源是分到的直播节点质量参差且经常波动(实测同组节点首字节 73 毫秒到 4.5 秒不等),以及网页播放器的 P2P 在海外观众稀少时纯属拖累。模块做三件事:
- 屏蔽直播 P2P(PCDNLoader、BPP2PSDK、SeederSDK),mcdn/PCDN 地址和 smtcdns 中转地址改写回官方节点;
- 直播分片改为节点池竞速下载:官方给的节点加上实测签名互认的 fmp4 同组节点(含大陆节点),按首字节速度排序,慢节点 400 毫秒(播放器正等着要的分片 150 毫秒)后自动开备份副本,两次空响应的节点整场停用;
- 提前缓存 playlist 宣告的全部分片:走小队列限流(最多 3 片并发、按播放顺序从旧到新,播放器等分片时队列让出带宽),播放器来要的时候直接命中。真实直播间实测:分片就绪延迟中位数从 600-1200 毫秒降到 0,均值降到一半以下;原分配节点中途故障时自动切换,避免了基线里 5.8 秒的卡顿。
- 直播间的播放器常在 live.bilibili.com/blanc 的 iframe 里:扩展在直播域对 iframe 也注入(
all_frames),油猴脚本去掉@noframes、只在直播域的 iframe 里继续运行,其他站内 iframe 直接退出;油猴菜单只在顶层注册一次。 - 设置面板新增“直播加速(实验性)”开关,默认开启;总开关关闭时直播模块也随之关闭。直播只处理 fMP4 HLS 流(网页播放器默认);FLV 是连续流,没有可并行的分片,不做处理。
- 点播修复:
- 带杜比全景声 / Hi-Res 无损音轨的视频不再可能接管失败:这类片源把音轨放在播放清单的 dolby/flac 字段里,普通音轨字段可能是空的,以前会误判成“浏览器不支持”。普通音轨仍然优先,没有时再选 flac 或杜比。
- 修复切换清晰度先成功、之后弹“切换失败”并把菜单回滚的问题:全接管下视频由插件播放,B 站内核等的“新清晰度已渲染”确认永远等不到,约二十秒超时后误报失败;它残留的切换流程偶尔还会在已失效的缓冲对象上崩掉(读 null 的 updating),立即误报。现在插件真的播上目标清晰度后马上把切换确认交回给它(切换等待期间以 150 毫秒的短循环尽快确认),真实页面验证:B 站自己弹出“已经切换至 360P 流畅画质”,菜单不再回滚。
- 接管期间停住 B 站内核自己的下载调度器:以前拖进度条、切清晰度都会把它唤醒,它跟着插件并行下载同样的分段(8K 片源等于带宽翻倍),下载完还会在早已失效的缓冲上无限报错(控制台刷屏的 null updating)。现在接管激活时调度器保持停止、每次被唤醒都再次停住;交回 B 站原生播放时恢复运行(真实页面验证:接管即停、拖动后一秒内再停、播放不受影响、关闭插件后恢复)。看 HDR / 8K 片源时,B 站内核反复读取已失效 SourceBuffer 产生的 InvalidStateError 刷屏也一并消除:接管激活期间这类读取得到空缓冲区间,未接管时浏览器行为不变。
- 接管期间只收敛 B 站内核自己抛的两类残留报错(拖进度条时它的 seek 处理器读一个它从未初始化过的 representation,即
reading 'DVRWindow';以及对已失效缓冲区读updating),它们管的都是插件已经接管、也已被停掉的调度,中断不影响播放,但会刷控制台并被它的错误上报收走。收敛只针对 hdslb.com 的播放器脚本,次数与最后一条消息进入诊断信息;其它报错、未接管时的同类报错都照原样显示。
- 合并时修的问题:
- “直播加速”开关存不上(保存和读取设置时被丢掉),直播页的设置面板打不开(少加载一个文件);
- 直播模块在保存的设置到达之前就屏蔽 P2P、接管请求,关掉开关也关不掉 P2P 屏蔽。现在设置到达前什么都不碰,关掉后把页面自己的 P2P SDK 还回去、丢掉这场直播的缓存并取消排队和进行中的下载;
- 节点池不理会 CDN 设置:现在自定义 CDN 模式下只用官方给的节点加你选的服务器;P2P 中转地址不再当成可信节点;换 CDN 设置后节点池重建;
- 播放器取消请求(切清晰度、换直播间)时插件继续等、继续下;播放器的 Range 请求在 Request 对象上时没识别出来;返回给播放器的响应没有 url;节点只返回一半(206 部分响应)也当整片交给播放器;节点排序用的是整片传输时间而不是首字节时间;
- 只处理 fMP4 媒体播放列表,主播放列表和 TS 流不碰;
- 点播:新的杜比 / Hi-Res 音轨没有纳入“旧地址不覆盖新地址”的保护;缓冲垫片把插件自己的 SourceBuffer 错误也吞掉了;清晰度确认循环每次触发都把截止时间往后推、永远不结束;交回原生时把 B 站所有停着的调度器都启动了,现在只启动插件自己停掉的那些。
- 新增测试:
dev/live-core-test.js、dev/vod-selection-test.js(单元测试),dev/live-hook-test、dev/buffered-shim-test(浏览器回归),dev/live-smoke-test.js、dev/live-e2e-test.js(真实直播间冒烟与装载扩展的端到端,需要网络);dev/quota-refresh-test新增“内核回跳”场景(拖动留在会话内、换清晰度时挡住回跳)和会话内跳转的两个时序场景(写了一半的分片、跳转后才落地的旧写入),dev/buffered-shim-test新增内核残留报错的检查;dev/auto-concurrency-test.js(自动线程数的单元测试)。
0.9.3.0
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
0.9.3.0
本次更新性能提升很大,建议所有用户更新
下载内核优化,来自 Roushelfy 的 #21,合并时修了几处问题。
- 中断的小段从断点续传:重试和备份副本只下载还缺的字节,拼上已经收到并校验过位置的部分,不再整块重新下载。一条线路中途停传时恢复更快,重复下载的流量也少了。
- 子块按各节点的实测速度分配,快节点多领,并且在节点之间轮流发放,几个分段同时下载时不会挤在同一个节点上。慢于最快节点十二分之一的节点暂时不用,90 秒后再给它一次机会。备份副本发给已知最快的节点。
- 子块大小跟随实测连接速度自动调整(64 KiB 到 1 MiB),高延迟线路上不再发出大量小请求。
- 浏览器缓冲区满(QuotaExceededError)时不再马上把视频交回 B 站:先释放播放过的数据重试;还放不下就留着这一段、降低这个视频的预缓冲上限,等播放用掉一部分缓冲再写入。4K 高码率视频以前可能在缓冲将满时突然回退原生连接。
- 下载地址快过期前两分钟自动向 B 站换新地址,播放和进度不受影响。以前长时间暂停后恢复播放会先集中收到 403、卡一下才恢复。
dev/download-benchmark.js:在模拟网络上对比两个版本的下载内核,按播放器的方式同时下载几个视频分段和音频分段。
0.9.2.3
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
0.9.2.3
- 修复连续拖两次进度条(第二次拖的时候第一次还在加载)之后视频停住不播、之后每次拖动都保持暂停的问题。缓冲不足时插件自己暂停补缓冲,这时拖进度条或换清晰度也会这样。现在会记住你原本是在播放的。
- 下载出错掉回 B 站原来的连接、几秒后自动重新接管时,原来在播就接着播。以前重新接管后常常停在暂停状态,要自己再点一下播放。
- 诊断信息(控制台运行
copy(__biliThreadRipperDebug.report()))里多了一段页面级的记录:什么时候接管、什么时候播放失败、交回 B 站、B 站自己换了视频源,以及当时的播放位置。遇到“黑屏后进度回退”这类问题时,出现后马上复制一份贴到 issue 里就能定位。
0.9.2.2
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
0.9.2.2
- 支持“稍后再看”和收藏夹页面的播放加速(#19,感谢 silverair)。以前只认
/video/BV…这种地址,在这两个页面上插件不生效。
0.9.2.1
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
0.9.2.1
- 修复开了“单集循环”后,视频播完回到开头就停住、不再自动播下一轮的问题(#17)。播完后点“重播”也是同一条路径。这个问题从 0.9.1.x 就有,不是 0.9.2.0 新出现的。
- 设置面板新增“全接管 / 兼容模式”开关,放在以前兼容模式的位置,默认全接管。兼容模式下还是 B 站自己的播放器在放视频,插件只帮它多线程下载,换清晰度、换编码都交给 B 站;全接管则由插件自己放视频,效果最好。Safari 上全接管切清晰度会失败,Safari 用户建议用兼容模式。兼容模式的做法来自 Awes0meE 的 #16,这里改成所有浏览器都能选,只有选了才会接管请求。
- 下载器的几处修补(取自 #16):排队中的小段在取消时立刻放弃,不再占着线程;读取中的连接在取消时主动断开;校验失败的响应也会关掉。
0.9.2.0
Warning
这是早期的 Chrome 独立插件版,已经停止维护,请不要再下载这里的 zip / crx。现在请安装油猴脚本版,方法见README 的安装说明。已经装了插件版的,请先在扩展管理里移除,再装脚本版,不要两个同时开着。
0.9.2.0
- 视频编码跟随 B 站播放器的“播放策略”(⚙ → 更多播放设置):选了 AV1、HEVC 或 AVC 就优先用它,这个清晰度没有时再按默认顺序;选“默认”仍是 AV1 > HEVC > AVC。播放中改了会马上换成新编码,接着当前进度播放。以前接管后总是用 AV1,老电脑容易卡、发热。
- 右键“视频统计信息”的 Video Speed、Audio Speed 改成和 B 站原生一样:显示下载时的实际速度,两段下载之间保留上一次的数值,不再跳 0 或忽高忽低。Player Type 显示“BTR Native”,Resolution 显示插件实际在播的分辨率。
- CDN 增加“自定义”,在大陆、海外后面:可以勾选已知的服务器,也可以手动添加服务器地址,插件只用你选的这些。只收 B 站的视频服务器(bilivideo.com、akamaized.net 等),视频下载地址不会发给别的网站。一个都没选时按大陆 CDN 下载。
- 播放中换 CDN(包括改自定义服务器)不再让视频从头开始,新的选择用在接下来的下载上。
- 扩展和油猴用同一个设置面板:在 B 站页面上点扩展图标打开(油猴版在油猴菜单里点“线程撕裂者设置”),播放器 ⚙ 里点“自定义”也会打开。不再用 Chrome 侧边栏,扩展权限只剩保存设置一项。
- 删除兼容模式 A、B,只保留标准模式,旧的兼容模式设置会自动清掉。
- 清理旧版残留:0.8.x 的 ArtPlayer 播放器、弹幕和字幕代码、首屏遮罩,以及只给它们用的后台请求和测试。
这版主要是读老版本的代码以及一些残留进行清理,改进调试内容,以及增加自定义CDN列表,这对某些特定地区的用户很有用。



