返回全部文章
Project Log

Bilibili-oversea:本地自适应 CDN 工具

GitHub

面向浏览器与 iPhone/iPad 的本地 CDN 选择工具:优先保证开播,安全缓冲后再复核线路,并保留原始 CDN 回退。

Install / v2.2.0

选择你的设备。

安装页只负责把公开配置交给你的设备;测速、选择和切换均在本机完成。

01 / Browser

Chrome / Edge

独立 MV3 扩展。解压后从浏览器扩展管理页加载,不需要代理或证书。

02 / iPhone · iPad

网络工具模块

选择你已经在使用的一款工具。项目不提供代理节点或订阅。

阅读本页 iOS 完整安装与证书教程
03 / Automation

打开 B 站时自动连接

签名快捷指令只调用 iOS 原生“连接 VPN”动作。安装后仍需在快捷指令 App 中创建一次个人自动化。

安装快捷指令
04 / Local controls

控制与恢复

这些地址只会被已安装的本机脚本接管;网络工具未启动时不会连接任何外部服务。

Guide / Chrome · Edge

浏览器扩展完整安装与使用教程。

Bilibili-oversea 2.2 是 Manifest V3 扩展。测速、节点选择和规则切换都在本机完成;它不提供代理、不上传遥测,也不会替你绕过地区、版权、登录或会员限制。

01

下载并完整解压

  1. 点击上方按钮下载 bilibili-oversea-browser-v2.2.0.zip。
  2. 把 ZIP 解压到不会被系统清理、也不会随手移动的固定文件夹。
  3. 打开解压后的目录,确认能直接看到 manifest.json、src 和 assets。
不要直接加载 ZIP浏览器需要的是解压后的文件夹,并且必须选择包含 manifest.json 的那一层。
02

在 Chrome 或 Edge 中加载

Chrome

  1. 在地址栏打开 chrome://extensions。
  2. 打开右上角“开发者模式”。
  3. 点击“加载已解压的扩展程序”,选择包含 manifest.json 的文件夹。

Microsoft Edge

  1. 在地址栏打开 edge://extensions。
  2. 打开左侧“开发人员模式”。
  3. 点击“加载解压缩的扩展”,选择包含 manifest.json 的文件夹。
安装成功扩展列表会显示 Bilibili-oversea 2.2.0 和青色图标。建议从拼图菜单把它固定到工具栏。
03

首次运行与自动测速

  1. 安装后刷新已经打开的哔哩哔哩视频、番剧或课程页面,再开始播放。
  2. 扩展会先观察播放器 API;如果 10 秒内没有捕获到媒体请求,会回退扫描当前页面上的视频资源。
  3. 如果该网络环境在最近 3 小时已有可用结果,会立即使用缓存胜出节点。
  4. 播放缓冲稳定约 12 秒后,扩展会进行一次轻量比较:当前节点与表现最佳的备用节点各取少量数据,不中断正常播放。
…完整测速进行中
·轻量比较进行中
A自动模式
M固定节点模式
—使用原始 CDN
!测速或规则安装失败
04

扩展面板与切换模式

点击工具栏图标可查看当前目标、最近媒体请求、测速结果与动态规则状态。

自动模式

清除手动固定节点,并为当前视频重新测速。

重新测速

忽略当前缓存,对正在播放的视频重新执行完整比较。

使用原始 CDN

移除当前标签页的动态重定向规则,恢复平台原始地址。

固定节点

只允许固定已经验证可用的节点;切换后会轻微回退播放位置,让播放器重新取流。

禁用候选

从后续测速中排除某个持续失败或不适合当前网络的节点。

后台维护

首次轻量比较会等待安全缓冲,之后约每 15 分钟维护一次;它不会持续占用带宽测速。

05

确认扩展确实生效

  1. 打开扩展面板,确认能看到当前标签页、最近媒体地址和规则状态。
  2. 一次有效测速通常会显示 bilivideo 主机、HTTP 206 分段响应,并在胜出节点旁显示已安装规则。
  3. 跳到尚未缓存的时间点,或打开另一段新视频,观察面板中的最近媒体与目标是否更新。
正常保留原节点如果候选节点没有更快,扩展会保留原始节点。这不代表扩展失效,也不保证每个视频和网络都能提速。
06

更新与卸载

更新

  1. 下载并解压新版本,覆盖或替换原固定文件夹。
  2. 回到扩展管理页,点击该扩展卡片上的“重新加载”。
  3. 刷新已经打开的 B 站页面。

卸载

  1. 在扩展管理页找到 Bilibili-oversea。
  2. 点击“移除”,然后刷新 B 站标签页。
  3. 确认不再使用后,可删除本地解压目录。
07

常见问题排查

一直显示“等待视频”

刷新页面并实际开始播放;关闭会替换播放器或阻止媒体请求的其他扩展,再检查当前网站权限。

所有候选都失败

先切回原始 CDN 确认视频本身能播放,再重新测速。公司、校园或公共网络可能阻断部分候选主机。

切换后播放停住

等待几秒或向后拖动一点;仍无恢复时使用“原始 CDN”,刷新页面后再测。

仍需核对实现细节

本页已包含完整操作内容;源代码与 Markdown 文档仍可在 GitHub 仓库中审阅。

08

权限、流量与隐私边界

  • 扩展不申请代理、Cookie、浏览历史、webRequest 或所有网站访问权限。
  • 权限范围只覆盖相关哔哩哔哩页面与 bilivideo 媒体主机。
  • 最近媒体的完整 URL 只保存在扩展后台内存,不上传到任何遥测服务。
  • 一次完整测速理论上约消耗 4 MB;日常轻量比较只测试 2 个节点,每个约 256 KB。
  • 扩展源码公开在项目仓库中,可自行检查权限声明、测速逻辑和动态规则。
安全边界开发者模式安装会显示标准警告。只从项目发布地址下载,并在更新前核对文件来源。
Guide / iOS · iPadOS

完整安装与自动启动教程。

配置只需导入一次。以后直接打开原版哔哩哔哩,iOS 会连接承载 Bili CDN Auto 的 VPN;视频开始播放后,脚本会实测候选 CDN,并使用当前网络下更合适的节点。

00

开始前

  • 推荐 iOS/iPadOS 16.4 或更高版本,以使用系统原生“连接 VPN”快捷指令动作。
  • 安装 Surge、Shadowrocket、Loon 或 Stash 中的一款即可;不要同时连接多个 VPN 工具。
  • 网络工具中应已有可正常使用的主配置。Bili CDN Auto 是模块/插件,不提供代理节点或订阅。
能力边界它只优化视频 CDN 路径,不能绕过地区、版权、登录或会员限制。
01

导入 Bili CDN Auto

在本页上方选择你实际使用的网络工具,只导入对应的一项,不要把所有客户端配置全部安装。

Shadowrocket

  1. 点击上方 Shadowrocket,允许浏览器打开 App。
  2. 在模块导入页添加 Bili CDN Auto,保持默认参数。
  3. 在配置/模块页面确认模块已存在并启用。
  4. 回到首页,选择平时使用的配置或节点。

Surge

  1. 点击上方 Surge,允许浏览器打开 Surge。
  2. 在模块安装页确认添加。
  3. Surge → 当前配置 → 模块,确认已启用。
  4. 首次使用保持默认参数;以后可在模块参数页调整候选节点和缓存时间。

Loon

  1. 点击上方 Loon,允许打开 App 并确认导入插件。
  2. Loon → 配置 → 插件,确认已启用。
  3. 候选 CDN、缓存时间等参数保持默认即可。

Stash

  1. 点击上方 Stash,确认安装 Bili CDN Auto Override。
  2. Stash → 覆写/Override,确认已启用。
  3. 确认原有主配置仍处于选中状态。
Quantumult X / Experimental下载上方 .snippet,将其中的 [rewrite_local] 与 [mitm] 合并到自己的配置并更新资源。它没有与其他四款相同的一键模块流程,建议熟悉配置格式后使用。
02

生成、安装并信任自己的证书

视频请求使用 HTTPS。只有设备信任网络工具在本机生成的 CA,工具才能执行 CDN 请求脚本。

  • Shadowrocket:设置 → 证书,生成新的 CA,然后安装证书。
  • Surge:首页/更多 → MitM,生成新的 CA 并安装系统描述文件。
  • Loon:配置/设置 → MitM → 证书,生成并安装证书。
  • Stash:首页 → MitM → CA 证书 → Stash Generated CA → 安装证书。
  1. 设置 → 通用 → VPN 与设备管理(部分版本显示“已下载描述文件”)。
  2. 打开刚下载的描述文件并点击“安装”。
  3. 设置 → 通用 → 关于本机 → 证书信任设置。
  4. 在“针对根证书启用完全信任”下启用刚生成的证书。
  5. 回到网络工具,确认 MitM/HTTPS 解密已开启。
安全提示只使用自己设备上的网络工具生成的证书。不要下载、共享或安装他人的 CA、私钥或 .p12 文件。模块已把解密主机限制到相关 B 站视频 CDN 域名。
03

首次连接与基础验证

  1. 在网络工具首页启动连接;首次连接时允许 iOS 添加 VPN 配置。
  2. 回到本页上方点击“查看状态”。
  3. 页面显示包含 "ok": true 的 JSON,表示本机控制脚本已加载。
  4. 打开哔哩哔哩,播放一个未完整缓存的视频至少 15–25 秒。
  5. 再次查看状态;正常情况下 selectedHost 不为空,scores 中会出现测速结果。
播放优先新视频的首个媒体请求从不等待测速:有缓存时立即用缓存赢家,无缓存时先走原始 CDN。至少 15 秒后的后续媒体请求才会触发安全测速;如果没有后续请求,就继续原线路。

若“查看状态”直接访问失败,通常是网络工具未连接、模块未启用,或主配置没有加载该模块。

04

安装“连接 VPN”快捷指令

  1. 点击本页上方“安装快捷指令”。
  2. 在快捷指令 App 中检查内容:它只有一个系统动作——“连接 VPN”。
  3. 点击“添加快捷指令”。
  4. 如果设备里有多个 VPN,编辑动作中的 VPN,选择承载 Bili CDN Auto 的客户端。
  5. 手动运行一次并允许连接;确认状态栏出现 VPN 标志且没有跳转到其他 App。

文件通过 macOS Shortcuts 的“任何人可导入”模式签名,不包含账号、API 密钥、代理节点或远程执行代码。

05

创建“打开哔哩哔哩时”个人自动化

Apple 不允许下载文件替用户静默创建个人自动化,因此需要在本机确认一次:

  1. 打开“快捷指令”App,进入“自动化”。
  2. 点击右上角 +;首次使用可直接点“新建自动化”。
  3. 选择“App”。
  4. 点击“选取”,勾选“哔哩哔哩”,然后完成。
  5. 勾选“打开时”;不要选择“关闭时”。
  6. 选择“立即运行”;“运行时通知”可按偏好关闭。
  7. 进入下一步,选择“新建空白自动化”。
  8. 添加“运行快捷指令”动作。
  9. 点击蓝色的“快捷指令”字段,选择 BiliCDNAuto-ConnectVPN。
  10. 点击“完成”。

关闭哔哩哔哩和网络工具后测试:点击原版哔哩哔哩图标,VPN 应自动连接,画面仍停留在哔哩哔哩;播放后 CDN 优选在后台执行。

06

日常操作与默认策略

  • 正常情况直接打开哔哩哔哩,不必进入网络工具或本页。
  • 换 Wi‑Fi 或蜂窝网络后,旧选择会失效;首个请求先走原始 CDN,安全延迟后重新选择。
  • 明显变慢时点“重新测速”,再拖动到未缓存位置或重开视频。
  • “原始 CDN”恢复平台默认;“自动模式”重新启用自动选择;“查看状态”中的 selectedHost 是当前节点。
不要每次启动都重测成功结果默认缓存 3 小时,失败结果缓存 10 分钟。新视频 15 秒后及每 15 分钟,仅比较当前节点与最佳备用节点,各读取 128 KiB;完整测速同样每节点 128 KiB 并行请求,最长约 4 秒,只在无缓存、明显变慢、节点失败、换网或候选耗尽时发生。

iOS 网络工具无法读取播放器缓冲值,因此不能像浏览器扩展一样每 2 秒读取缓冲;15 秒安全延迟是请求层的保守近似。

07

常见问题

打开 App 后 VPN 没有连接

  • 手动运行快捷指令,确认它能连接正确的 VPN。
  • 检查自动化是否启用、触发 App 是否为哔哩哔哩、运行方式是否为“立即运行”。
  • 多 VPN 时重新选择正确配置;旧版 iOS 可改用按需连接或下方 URL Scheme。

selectedHost 一直为空

  • 确认模块已启用,证书已安装且完全信任。
  • 播放新视频或拖到未缓存位置,再点一次“重新测速”。

证书错误或完全无法联网

立即停止网络工具,禁用模块后重试。检查是否误装他人证书、证书过期或存在其他 MitM/重写冲突;必要时删除描述文件并重新生成。

自动测速后仍没有变快

候选 CDN 在当前运营商上可能表现接近,或瓶颈不在 CDN。无可用候选时会沿用原始节点,但不能保证每条视频线路都改善。

08

URL Scheme 备用方案

如果系统“连接 VPN”动作不能识别客户端,可在个人自动化中改用“打开 URL”动作:

Surgesurge:///start?autoclose=true
Shadowrocketshadowrocket://connect?autoclose=true
Loonloon://on
Stashstash://start

Surge 和 Shadowrocket 的 autoclose=true 会在连接后返回之前的 App。Loon、Stash 是否自动返回取决于版本,因此仍优先使用系统动作或客户端按需连接。

09

卸载与恢复

  1. 在快捷指令 → 自动化中删除“哔哩哔哩打开时”自动化。
  2. 删除 BiliCDNAuto-ConnectVPN 快捷指令。
  3. 在网络工具中禁用或删除 Bili CDN Auto 模块/插件/Override。
  4. 若不再使用任何 HTTPS 解密功能,到设置 → 通用 → VPN 与设备管理中删除对应证书描述文件。
  5. 停止 VPN;哔哩哔哩将恢复平台原始 CDN 行为。

它解决什么

Bilibili-oversea 针对同一段视频在不同 bilivideo.com CDN 主机上速度差异明显的情况,在设备本地比较可用线路,并把后续媒体请求切换到当前网络下更合适的节点。浏览器版直接运行在 Chrome / Edge 扩展中;iPhone 与 iPad 版通过 Surge、Loon、Shadowrocket、Stash 或 Quantumult X 的本地脚本能力工作。

播放优先的逻辑

新视频不会为了测速阻塞第一个媒体请求:存在近期缓存结果时立即使用,没有缓存时先使用原始 CDN。浏览器在播放器已有安全缓冲后复核线路;移动端则等待后续媒体请求再进行轻量比较。候选失败时会轮换已验证备用节点,必要时恢复原始 CDN。

安全与隐私边界

  • 测速、选择结果与状态都保存在本机,不包含遥测或远程控制服务。
  • 项目不提供代理节点、订阅或共享证书。
  • iOS 端需要用户在自己的网络工具中生成并信任 MITM 证书;不要安装他人提供的 CA、私钥或 .p12 文件。
  • 工具只能改善 CDN 线路选择,不能保证每条视频都提速,也不会绕过版权、地区或平台签名限制。

维护与恢复

浏览器扩展可以随时切回“原始 CDN”或直接移除。iOS 端可在网络工具里禁用对应模块,并删除个人自动化、快捷指令与不再使用的证书;完成后 B 站恢复原始网络行为。源码、配置模板与版本记录都保留在 GitHub 仓库中。