
【免费下载链接】Bilibili-thread-ripper解决bilibili海外用户卡顿的终极插件项目地址https://gitcode.com/gh_mirrors/bil/Bilibili-thread-ripper点击查看免费下载Bilibili-thread-ripperBTR线程撕裂者是一款面向海外用户的 B 站多线程下载插件它模仿 IDM 的思路把一段视频流拆成多个 HTTP Range 请求由多条连接、多个 CDN 节点并发下载解决海外用户看 B 站卡顿、转圈的难题让 8K、4K、杜比视界视频也能流畅播放。下面用尽量少的代码讲清楚它怎么撕裂、怎么拼回、怎么调线程的完整原理。一、为什么海外看 B 站会卡一条连接跑不满码率B 站官方把 CDN 分成三层离用户最近的边缘节点、兜底的区域骨干节点、存着所有视频的源站核心机房。边缘节点就近服务、只缓存热门数据这带来一个后果——海外看热门视频很快但冷门视频的海外边缘节点上没有缓存只能绕回更远的节点取数据。而网页播放器的默认行为是一段数据只开一条连接。这条连接在海外冷门视频上经常只有几 Mbps一旦码率一高比如片源码率 20 Mbps 的杜比视界 4K60缓冲立刻见底播放器开始转圈。这就是卡顿的根源。二、IDM 式核心动作把一段切成多个小块多连接并发下载BTR 的做法和 IDM 下载文件时的多线程如出一辙核心只有一步把一条连接下完整个分段改成多条连接各下一段中不同的小块。切块播放器需要某一段视频时BTR 按并发数把这段字节区间切成若干块每块最小约 64 KiB并根据实测单连接速度自适应调整块大小让每条连接都忙得起来。切块逻辑见 splitRange。并发拉取每条连接发一个带Range: bytes起始-结束头的请求拿的是文件里不同的部分不会把同一块数据重复下载。核心下载器在 src/idm-downloader.js 中实现。核对服务器必须返回206 Partial Content且响应头里的Content-Range必须与请求的字节区间完全一致块长度也必须分毫不差否则这块数据直接丢弃。解析与校验在 parseContentRange。拼接所有块到齐后按顺序拼回完整分段交给播放器。哪个块位置或长度不对绝不会被塞进缓冲区见 concatChunks。全接管模式下BTR 直接把数据写进网页里的 B 站原生播放器src/native-mse-player.js弹幕、清晰度菜单、倍速都照常可用兼容模式下则保留 B 站播放器BTR 只负责下载它的媒体请求src/native-range-transport.js。三、不只是堆线程一套为播放服务的调度器真正的精华在于BTR 不是简单开 N 条线程而是在多个 CDN 之间做了一套为播放服务的调度见 src/cdn-resolver.js 与 src/idm-downloader.js。① 多节点并发 按速度分配。大陆模式内置一批大陆节点MAINLAND_HOSTS海外模式另有一组海外节点还可以手动添加自定义服务器。每个小块的首选节点按实测速度加权轮转分配assignPrimaries最快的节点分到最多的小块速度慢到只有最佳节点 1/12 的直接不参与没有实测记录的节点会拿到末尾的小块试工测出速度后再重新排座次。② 对冲副本hedging慢了就另开一条路。对每一块BTR 会持续盯着第一份副本的进度一旦发现它明显慢于常规速度、或者按当前速度赶不上播放时刻就立刻从已知最快的节点再发一份副本去救。谁的先下完就用谁另一份立即取消hedgeDue。③ 断点续传失败不整块重来。某块中途断了已收到的部分会保留重试或副本请求只补缺少的尾巴而不必从头再下。坏节点会被封禁名单记小过两次无字节返回就本场停用createBanList过段时间再给机会。④ 离播放越近优先级越高。每个请求都带一个播放截止时刻队列按截止时间的紧迫度排序带宽优先保证马上要播的内容只有判断某块可能赶不上播放才动用有限的救援名额多开副本尽量不浪费流量。⑤ 起播探测。打开视频的第一时间BTR 先在多个节点之间竞速抢下一小段开头数据哪个节点最快立刻可测再用测出的速度把后续小块分出去——所以高码率视频开头不再动辄转圈。分段本身的位置信息则来自 fMP4 的 sidx 索引由 parseSidx 解析。效果上同一个杜比视界 4K 视频从不开插件的 7.5 Mbps 提升到 40 Mbps 以上墨尔本 Superloop 实测仅供参考四、自动线程数插件自己决定开 8 还是 64 条线程线程数不是拍脑袋设的。BTR 内置一条自动线程数阶梯[8, 12, 16, 24, 32, 48, 64]AUTO_LADDER规则非常讲究起步加码每次开始播放先用 16 条线程冲刺等前方缓冲攒够约 15 秒再一档一档降回页面原有水平压力升档播放器卡顿、低缓冲涨不动、连接排队等首字节太久时自动升一档试错回退每次升档都是一次试验10 秒后吞吐量没有变快就降回原档位并休息一阵——多开的连接如果没有带来收益只会增加风险服务器拒绝即退遇到 HTTP 412/429服务器拒绝当前负载立即降档并在较长时间内不再冲过该档位。连接总数由一个信号量统一控制Semaphore所有请求排队取号保证同一时刻的并发不超过设定值。设置里也可以手动选 4128 条固定线程官方建议一般情况选「大陆 CDN 自动线程数」设备性能弱可手动降到 48 线程本地连大陆网络差则用海外 CDN。五、怎么知道它在工作设置面板会显示当前总线程数偶尔显示 0 是正常的说明缓冲已足够播放器右键「视频统计信息」里的节点、速度、分段是插件真实的下载数据Player Type 一行显示BTR Native进度条前方的缓存持续增长说明数据正在正常交给播放器。设置入口有三个页面上的 BTR 悬浮球、脚本管理器菜单、播放器「更多播放设置」。以暴力猴为例六、效果边界它变不出带宽✅ 提升比较明显❌ 解决不了海外观看冷门视频、4K 或高码率视频宽带本身跑不动当前码率测速很快但 B 站单连接速度很低所有节点共用同一个拥堵出口某些媒体 Range 经常卡住B 站网页、评论区或接口本身加载慢不同 CDN 线路质量差异大当前账号没有播放权限另外提醒BTR 只优化你已有权访问的媒体数据不会绕过会员、登录、区域或版权限制也不上传任何遥测数据。更多细节可看 README.md 的原理解释章节和 CHANGELOG.md 的更新记录。赞分享【免费下载链接】Bilibili-thread-ripper解决bilibili海外用户卡顿的终极插件项目地址https://gitcode.com/gh_mirrors/bil/Bilibili-thread-ripper点击查看免费下载相关推荐ESP-IoT-Solution LCD 屏幕撕裂Screen Tearing原理与防撕裂方案全解析ESP IoT Solution LCD 屏幕撕裂Screen Tearing原理与防撕裂方案全解析 屏幕撕裂是 LCD 应用尤其是 GUI 全屏/大面积物联网嵌入式驱动开发硬件开发BiliNote多平台下载器深度剖析B站、抖音、YouTube视频下载原理BiliNote多平台下载器深度剖析B站、抖音、YouTube视频下载原理 BiliNote作为一款AI视频笔记生成工具其核心功能之一就是强大的 多平台视频AI 应用大模型RAG语音后端前端桌面应用Rerender A Video在Windows上的完全安装指南避开所有坑的详细步骤Rerender A Video在Windows上的完全安装指南避开所有坑的详细步骤 想要在Windows系统上轻松安装Rerender A Video这款强创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考