返回全部文章
Project Log

Bilibili-oversea:浏览器 2.5.1 与手机端 0.5.5 候选版

GitHub

本地 B 站 CDN 选路工具:浏览器 2.5.1 已在 Chrome 商店上架,支持 Chrome / Edge 安装并保留 ZIP 备用;手机端 0.5.5 仍为待真机验证的候选版。

Install / Browser 2.5.1 · Mobile 0.5.5 Candidate

选择你的设备。

浏览器版与手机端是两套独立实现;测速、选路与状态处理均在设备本地完成。

个别视频仍可能慢开播;本轮仅做有限验证,不能保证所有视频不卡顿。

01 / Browser · v2.5.1

Chrome / Edge

2.5.1 已在 Chrome 商店公开发布,Chrome 与 Edge 均可从商店安装;不需要开发者模式、代理或证书。ZIP 保留为备用。

02 / iPhone · iPad · v0.5.5 Candidate

网络工具模块

0.5.5 是待真机验证的手机媒体候选版;普通 bilivideo、精确 Akamai、MCDN 的视频与音频首条请求统一直接优先 08ct,同时保留有限回退。选择一款已有客户端并只导入一项模块;项目不提供代理节点或订阅。

阅读手机端安装与证书说明
03 / Optional automation

打开 B 站时自动连接

签名快捷指令只调用 iOS 原生“连接 VPN”动作。它是可选项,安装后仍需由你创建个人自动化。

下载签名快捷指令
04 / Mobile local controls

控制与恢复

0.5.5 本机脚本会接管这些专用路径。若看到真实网站的 404,说明请求没有被本机控制脚本命中,不算成功。

Guide / Chrome · Edge · v2.5.1

浏览器版:从商店安装。

2.5.1 已公开上架,但并非“全部验收通过的稳定版”。它优先近期可信缓存,否则从常用 08CT 开始;健康线路会保持,真实失败时有限轮换,并仅在安全缓冲后按条件轻量复核。

01

打开 Bilibili-oversea 商店详情

在电脑的 Chrome 或 Edge 中打开下方链接,核对名称为 Bilibili-oversea。Edge 使用同一个 Chrome 商店入口,独立 Edge 商店尚未上架。

02

只保留一个版本启用

若已加载 ZIP 或旧候选版,先在扩展管理页停用它,再安装商店版;旧文件夹可保留作回退。同时停用其他 B 站 CDN 切换扩展,避免多个版本重复处理。首次安装可直接下一步。

03

按浏览器提示确认安装

Google Chrome

  1. 点击“添加至 Chrome”。
  2. 阅读权限提示,确认后选择“添加扩展程序”。

Microsoft Edge

  1. 若出现“允许来自其他商店的扩展”,按提示允许。
  2. 点击商店安装按钮,阅读权限并选择“添加扩展”。无需开启开发人员模式。

商店无法访问时,可展开下方 ZIP 备用安装。

04

刷新视频页并核对 2.5.1

刷新已打开的 B 站视频页,再点击工具栏图标,确认版本为 2.5.1,并查看播放状态与实际线路。扩展不会在安装后自动弹窗,这是正常行为。

ZIP 备用安装与 SHA-256

仅在需要手动安装时使用。下载后完整解压到固定目录,确认目录直接包含 manifest.json、src 和 assets,不要直接加载 ZIP。

在地址栏输入 chrome://extensions 或 edge://extensions,开启开发者模式,选择“加载已解压的扩展程序”或“加载解压缩的扩展”,再选中含 manifest.json 的目录。只保留一个版本启用,并刷新视频页。

Chrome · Load unpacked · Edge · Sideload an extension

FAQ

四个常见问题

怎样更新或回退?

商店版由浏览器管理更新。若需回退到保留的 ZIP,先停用商店版,再按备用说明加载旧目录并刷新视频页。不要同时启用两个版本;历史 2.2.0 只作为旧版本记录。

为什么常用 08CT?

自动模式优先近期可信缓存,否则默认从 08CT 开始。健康线路优先保持;08CT 被禁用或已有失败证据时可回到原始线路。它不是每次测速后宣称的“最快节点”。

“未测速”是什么意思?

它只表示没有对应实测证据,不等于不可用或从未尝试。500 余目录项不会每次全部测速,也不代表全部可用;选中线路、收到真实媒体响应、连续播放成功是不同状态。

卡顿时怎么办?

在出问题的视频页打开面板并“复制诊断”,保留版本、画质与症状;再选择原始线路或停用扩展作对比。复制内容不会自动上传,也不需要反复测速或拖动来证明成功。

状态、手动控制与验证含义

面板与手动控制

自动模式恢复自动选路;手动测速是用户主动发起的额外比较;原始线路会撤销当前标签页的重定向。手动固定、当前实际线路和可用证据应分别理解。

怎样判断实际状态

以面板中的实际媒体线路、真实响应和播放状态为准。匿名预连接只进行 DNS/连接握手,不带媒体路径、签名或 Cookie,也不等于测速成功。首帧前故障恢复本身不新增测速或重建播放器。

版本记录与验证范围

2.5.1 固定为 r19 运行代码。有限复测中,两条自有短视频以最高可用 AVC 1080P60 完整播放且未记录目标卡顿,首显示帧为 6.385 / 11.139 秒;样本很小,不能据此宣称普遍更快。完整验收仍未通过,长视频、关页重开、最终原生弹窗/BFCache 和 iPhone 真机未覆盖。

权限、流量与隐私

浏览器版权限与数据边界

  • 权限为 activeTab、declarativeNetRequestWithHostAccess、storage、webRequest,主机范围限于 B 站页面、媒体域名与精确的 upos-hz-mirrorakam.akamaized.net;不申请代理、Cookie、浏览历史或所有网站权限。
  • 设置与有时限的测量摘要保存在本机;完整媒体 URL 与签名仅在当前标签页和后台临时处理,不写入持久缓存。“复制诊断”会脱敏且不会自动上传。
  • 正常播放、测速和备用尝试仍会让媒体 CDN 看到正常的 IP、媒体路径与请求签名。安全缓冲后的条件性复核或手动测速可能产生额外流量;“不向开发者上传”不表示“不访问网络”。
帮助与诊断

先保存事实,再做对比

记录版本、视频、画质、时间点与症状,复制一次脱敏诊断;随后分别测试原始线路或停用扩展。商店版安装有问题时,先核对浏览器与商店的具体提示;若使用 ZIP 备用安装且提示扩展损坏,再重新完整解压,并确认加载的是包含 manifest.json 的目录。不要以反复拖动或不断重测替代真实播放观察。

Guide / iPhone · iPad · v0.5.5 Candidate

手机媒体候选版:安装并完成一次五步验证。

0.5.5 采用 desktop-like-passive-first:普通 bilivideo、精确 Akamai、MCDN 的视频与音频首条请求统一直接优先 08ct(仍尊重自定义线路),不在开播前等待测速或原路参考。交付方报告 63 项本地 Node/VM 手机回归与最终 8 项控制复核通过;这是交付自动化证据,不是真机播放验收。playbackHealthObservable: false、inFlightRecoverySupported: false、physicalIPhoneAcceptancePassed: false,不能据此宣称真实手机卡顿已经改善。

01

停用旧版并导入 0.5.5 候选

只选择你已有的 Surge、Loon、Shadowrocket、Stash 或 Quantumult X。先停用旧模块并保留作回退,再使用页面顶部按钮导入 0.5.5;只启用 0.5.5,不要同时启用多个版本。Quantumult X 仍需手动合并。

02

重新使用配置并确认自己的 CA

Shadowrocket 中进入 Config/配置 → 当前带 ✓ 的配置文件 → 使用配置,确认模块实际引用的四个脚本均来自 mobile-0.5.5。自己的 CA 若已安装并完全信任,无需重装;保持 HTTPS Decryption/MITM 开启。精确域名 limitedrush.online 的全部 HTTPS 会在本机解密,只有 /bili-cdn-auto/ 专用路径执行控制。

03

重连并核对本机状态

断开后重新连接客户端;只有原来处于固定或原始模式时,才打开一次顶部“自动模式”,随后回到只读的“查看状态”。自动模式会重置状态,不能当状态页反复点击;“重新测速”只安排下一条视频请求显式复核,控制请求本身不测速。成功的本机 JSON 必须同时包含 ok: true、local: true、service: "bili-cdn-auto" 和 controlVersion: "0.5.5";真实网站 404 不算成功,本机控制成功也不证明媒体脚本已执行。

04

播放 30–60 秒未完整缓存的视频

可播放用户报告的 BV1HrHC6SEEc 或此前卡顿、未完整缓存的视频 30–60 秒,留意缓冲耗尽后的速度与恢复;无需大量重复播放。首条媒体请求直接优先 08ct,不在开播前等待测速或原路参考;这只是 URL 选路行为。手机脚本不能观察 App 的缓冲或画面进度,也不能取消或直接救回已经卡住的在途下载。

05

刷新状态并保存分轨诊断

刷新只读的“查看状态”;它不会写缓存或触发测速。视频与音频仍分别保存在 videoDiagnostics 和 audioDiagnostics,后来的音频不会覆盖视频记录;新版尚未执行或无法归属的轨道为 null,用 videoDiagnostics.streamCode 核对视频分类。确认新请求的 videoDiagnostics.mediaVersion 为 0.5.5,并查看 videoDiagnostics.routingPolicy、videoDiagnostics.reason、videoDiagnostics.routeProvisional、videoDiagnostics.verificationBasis、videoDiagnostics.referenceVerified、videoDiagnostics.probeRangeStart、videoDiagnostics.nextReviewAt 与 videoDiagnostics.decisionCompletedAt。这些分轨字段描述 URL 决策,不是媒体传输完成或实时缓冲。再结合顶层 scores 的 resourceTag、stage、sampledAt、rangeStart、rangeValidated、capacityKnown 与 verified;它不自动属于最新视频。顶层媒体字段仍是最新一次请求,最新音频请求不能代替视频判断;lastResponseStatus 为 200/206 也不证明持续速度恢复或整段不卡。

可选:个人自动化与快捷指令

安装签名快捷指令

快捷指令仅使用 iOS 原生“连接 VPN”动作;首次运行时由你选择正确的现有配置。多 VPN 环境中请核对选择。

创建“打开 App”个人自动化

在快捷指令 App 中创建由“哔哩哔哩打开时”触发的个人自动化,动作设为运行上述快捷指令,并按你的 iOS 版本选择立即运行。菜单名称可能随系统版本变化。

候选机制、隐私、排查与回退

媒体候选怎样验证

desktop-like-passive-first 让普通 bilivideo、精确 Akamai、MCDN 的视频与音频首条请求统一直接优先 08ct,同时尊重自定义线路;开播前不等待测速或原路参考。首次路由为 provisional,不会虚构已验证状态或 scores。同一资源的稳定线路会保持;视频缓存最多记录 8 个资源并保留 5 分钟,到期时先复核当前线路,不强制回到 08ct,失败资源彼此隔离。

403、404、416 或 429 会让后续请求立即进入有限备用队列;5xx 默认须在 30 秒内连续失败两次才触发,200/206 会清零,队列耗尽则回到原始线路。音频不会测速、与视频竞速或定时复核。视频在 15 秒后由下一条请求复核;合格线路保持 45 秒,低速或尾部样本保持 15 秒。复核当前线路使用 512 KiB 样本,不再请求原始 Akamai 参考;低速或失败时最多尝试两个备选。750 ms 时可以启动 hedge,但仍等当前线路完成或共享的 1950 ms 预算到期,再统一校验。

完整 512 KiB、至少 3200 kbps、备选至少 1.5 倍更快和 30 秒冷却都只是本轮启发式门槛,不是视频码率、持续带宽或真机流畅保证。复核请求仍可能带来约 2 秒等待与额外流量。当前线路与备选都有样本时,返回区段、文件总长和参考字节必须一致,已知不匹配就拒绝。当前线路没有样本时,可选择通过 206/Range 校验且容量达标的 provisional 备选,但不能记为 verified;复核不再要求原始 Akamai 参考。

怎样读媒体状态

videoDiagnostics.routingPolicy 在本轮应为 desktop-like-passive-first;videoDiagnostics.reason 的主要值包括 preferred-route-direct、stable-resource-route、http-failure-priority-fallback、current-route-reviewed 与 range-qualified-fallback。videoDiagnostics.routeProvisional 标出尚未完成兼容验证的路由;videoDiagnostics.verificationBasis 可为 none、range-only 或 current-route-byte-match。videoDiagnostics.referenceVerified 表示当前线路与备选样本的兼容比较,不再表示 Akamai 原始线路参考。

videoDiagnostics.probeRangeStart 是抽样起点,videoDiagnostics.nextReviewAt 是下一条请求可复核的最早时刻,videoDiagnostics.decisionCompletedAt 只表示 URL 决策完成;都不表示媒体传输完成。顶层 scores 是最近抽样列表,应结合 resourceTag、stage、sampledAt、rangeStart、rangeValidated、capacityKnown 与 verified 判断,不自动属于最新视频。lastResponseStatus 为 200/206 只表示 HTTP 状态,不证明持续速度或不卡顿。三个 false 标志明确表示脚本看不到 App 缓冲、不能直接救援在途下载且未通过真机验收;若没有 0.5.5 视频记录,先核对新版模块、当前配置、HTTPS 解密与自有证书。

媒体探测与本机诊断边界

0.5.2 已在媒体候选解密范围加入模板列出的 upos-*-mirror*.bilivideo.com、upos-tf-all-hw 与 upos-tf-all-tx 家族,并保留原 Akamai、mcdn、cn-hk 和精确网站域;0.5.5 不扩大该范围,也不新增账户或播放 API 域。精确域名 limitedrush.online 的全部 HTTPS 在本机解密,只有 /bili-cdn-auto/ 专用路径执行控制。诊断只保存在本机,不保存原签名 URL、查询或样本字节,也不上传。探测会发送原媒体路径与签名查询,只复制必要的 User-Agent、Referer、Origin、Accept,不带原 Cookie、Authorization 或 Proxy-Authorization;实际跨主机改写也会剥离这三项认证头。不能据此推断所有请求都无 Cookie,原始线路也没有全局无 Cookie 承诺。

回到原始线路或旧版

如果体验变差,必要时使用顶部“原始 CDN”一次,退出并重进视频;切换不会取消已经进行的下载。也可停用 0.5.5,启用保留的 0.5.4、0.5.3、0.5.2、0.5.1 或 0.5.0,并重新使用配置。0.5.0 的旧状态地址仍可能受 .invalid 解析限制。

完整移除

删除个人自动化与快捷指令,在客户端中移除模块;若不再使用任何 HTTPS 解密功能,再删除对应证书描述文件并停止 VPN。

当前版本

Bilibili-oversea 针对同一视频在不同 B 站媒体 CDN 上表现差异明显的情况,在设备本地观察、选择和切换线路。当前浏览器版为 2.5.1,本轮交付代码固定为 r19;iPhone / iPad 版为独立的 0.5.5 媒体候选版,普通 bilivideo、精确 Akamai、MCDN 的视频与音频统一采用直接优先线路与后续有限复核(playbackPolicyChanged: true)。

浏览器安装入口更新于 2026-10-19;手机候选版说明沿用 2026-10-07。个别视频仍可能慢开播;本轮仅做有限验证,不能保证所有视频不卡顿。

从商店安装浏览器版

在电脑的 Chrome 或 Edge 中打开 Bilibili-oversea · Chrome 商店,按浏览器提示确认安装;Edge 若提示“允许来自其他商店的扩展”,按提示允许即可,不需要开发者模式。独立 Edge 商店尚未上架。已加载 ZIP 或旧候选版的用户,先停用旧版,只保留一个版本启用,再刷新 B 站视频页并核对 2.5.1。

商店无法访问时,详情页的 ZIP 备用安装与 SHA-256 保留原包和手动加载步骤。商店审核通过不代表全部视频的播放性能已经验收。

浏览器 2.5.1 怎样工作

自动模式优先使用近期可信的网络缓存;没有可信缓存时,以常用 08CT 作为默认起点。健康线路会保持,不会为每个视频先把 500 余目录项全部测速;只有真实媒体失败形成证据时才有限轮换,必要时回到原始线路。播放器已有安全缓冲后,扩展才可能按条件做轻量复核;手动测速仍由用户明确发起。

界面选中线路、收到真实媒体响应和连续播放成功是三个不同状态。“未测速”只表示没有对应实测证据,不等于不可用或从未尝试。匿名预连接也不等于测速:它只可能提前进行 DNS 和连接握手,不包含媒体路径、签名或 Cookie。

本轮有限复测中,两条自有短视频以最高可用 AVC 1080P60 完整播放,未记录目标卡顿;首显示帧为 6.385 / 11.139 秒。样本很小,完整验收仍未通过,不能据此宣称所有节点最快、所有视频顺滑或整体性能普遍领先。

手机端 0.5.5 候选版的边界

手机端通过 Surge、Loon、Shadowrocket、Stash 或 Quantumult X 的本地脚本能力工作。desktop-like-passive-first 让普通 bilivideo、精确 Akamai、MCDN 的视频与音频首条请求统一直接优先 08ct,同时尊重自定义线路;开播前不等待测速或原路参考。首次路由为 provisional,不会虚构已验证状态或 scores。同一资源的稳定线路会保持;视频缓存最多记录 8 个资源并保留 5 分钟,到期时先复核当前线路,不强制回到 08ct,失败资源彼此隔离。

403、404、416 或 429 会让后续请求立即进入有限备用队列;5xx 默认须在 30 秒内连续失败两次才触发,200/206 会清零,队列耗尽则回到原始线路。音频不会测速、与视频竞速或定时复核。视频在 15 秒后由下一条请求复核;合格线路保持 45 秒,低速或尾部样本保持 15 秒。复核当前线路使用 512 KiB 样本,不再请求原始 Akamai 参考;低速或失败时最多尝试两个备选。750 ms 时可以启动 hedge,但仍等当前线路完成或共享的 1950 ms 预算到期,再统一校验。

完整 512 KiB、至少 3200 kbps、备选至少 1.5 倍更快和 30 秒冷却都只是本轮启发式门槛,不是视频码率、持续带宽或真机流畅保证。复核请求仍可能带来约 2 秒等待与额外流量。当前线路与备选都有样本时,返回区段、文件总长和参考字节必须一致,已知不匹配就拒绝。当前线路没有样本时,可选择通过 206/Range 校验且容量达标的 provisional 备选,但不能记为 verified;复核不再要求原始 Akamai 参考。

交付方报告 63 项本地 Node/VM 手机回归与最终 8 项控制复核通过;这是交付自动化证据,不是真机播放验收。playbackHealthObservable: false、inFlightRecoverySupported: false、physicalIPhoneAcceptancePassed: false,不能据此宣称真实手机卡顿已经改善。

一次短验证分五步:停用旧模块并保留回退后导入一项 0.5.5 候选,只启用 0.5.5;重新使用当前配置并确认 Shadowrocket 实际引用的四个脚本都来自 mobile-0.5.5,已有完全信任的自有 CA 无需重装;断开重连,只有原来处于固定或原始模式时才打开一次自动模式,随后刷新只读状态,确认本机 JSON 同时包含 ok: true、local: true、service: "bili-cdn-auto" 与 controlVersion: "0.5.5";播放原先卡顿或未完整缓存的视频 30–60 秒,观察缓冲耗尽后的速度与恢复,无需大量重复播放;最后再次刷新只读状态并保存 JSON。自动模式会重置状态,不能当状态页反复点击;“重新测速”只安排下一条视频请求显式复核,控制请求本身不测速;Quantumult X 仍需手动合并。

真实网站 404 表示本机脚本没有命中。视频与音频仍分别保存在 videoDiagnostics 和 audioDiagnostics,后来的音频不会覆盖视频记录;新版尚未执行或无法归属的轨道为 null,用 videoDiagnostics.streamCode 核对视频分类。videoDiagnostics.routingPolicy 应为 desktop-like-passive-first;videoDiagnostics.reason 的主要值包括 preferred-route-direct、stable-resource-route、http-failure-priority-fallback、current-route-reviewed 与 range-qualified-fallback。videoDiagnostics.routeProvisional 标出尚未完成兼容验证的路由;videoDiagnostics.verificationBasis 可为 none、range-only 或 current-route-byte-match;videoDiagnostics.referenceVerified 表示当前线路与备选样本的兼容比较,不再表示 Akamai 原始线路参考。videoDiagnostics.probeRangeStart、videoDiagnostics.nextReviewAt 与 videoDiagnostics.decisionCompletedAt 描述 URL 决策,不代表媒体传输完成。顶层 scores 是最近抽样列表,需结合 resourceTag、stage、sampledAt、rangeStart、rangeValidated、capacityKnown 与 verified 判断,不自动属于最新视频。顶层媒体字段仍表示最新一次请求,最新音频请求不能代替视频判断;lastResponseStatus 为 200/206 只表示 HTTP 状态,不证明持续速度恢复或整段不卡。状态查询只读,不写缓存也不触发测速;这些诊断不是实时播放器缓冲。

安全与隐私边界

  • 浏览器权限限于 activeTab、declarativeNetRequestWithHostAccess、storage、webRequest 和必要的 B 站媒体主机;不申请代理、Cookie、浏览历史或所有网站权限。
  • 设置、缓存和状态保存在本机;完整媒体 URL 与签名只在当前标签页及后台临时处理。“复制诊断”会脱敏且不会自动上传。
  • 正常播放、测速和备用尝试仍会让媒体 CDN 收到正常的 IP、媒体路径与请求签名;条件性复核或手动测速可能产生额外流量。
  • iOS 端只使用用户自己客户端生成的 CA。精确域名 limitedrush.online 的全部 HTTPS 会在本机解密,只有 /bili-cdn-auto/ 专用路径执行控制。0.5.2 起增加模板列出的媒体候选解密家族;0.5.5 不扩大该范围,也不增加账户或播放 API 域。
  • 手机诊断只保存在本机,不保存原签名 URL、查询或样本字节,也不上传。候选探测会发送原媒体路径与签名查询,只复制必要的 User-Agent、Referer、Origin、Accept,不带原 Cookie、Authorization 或 Proxy-Authorization;实际跨主机改写也会剥离这三项认证头。不能据此推断所有请求都无 Cookie,原始线路也没有全局无 Cookie 承诺。
  • 工具不会绕过版权、地区、登录、会员或平台签名限制。

维护与恢复

商店版由浏览器管理更新。若需回退到保留的 ZIP,先停用商店版,再按备用说明加载旧目录并刷新播放页;只保留一个版本启用。遇到卡顿,可先复制一次脱敏诊断,再用原始线路或停用扩展作对比。手机端体验变差时可在必要时使用一次原始线路并退出重进视频,或停用 0.5.5、启用保留的 0.5.4 / 0.5.3 / 0.5.2 / 0.5.1 / 0.5.0 后重新使用配置;切换不会取消已经进行的下载,0.5.0 旧状态地址仍可能因 .invalid 解析失败。完整安装、版本记录、隐私与诊断入口均保留在详情页。