Skip to content

About

Safari-friendly Bilibili CDN accelerator for smoother overseas playback.

Topics

Resources

Stars

618 stars

Watchers

1 watching

Forks

Repository files navigation

 Bilibili Accelerator

English · Greasy Fork · 当前版本 v0.5.1

海外看 B 站,热门视频一般没什么问题,冷门视频经常一会儿流畅、一会儿卡死。

这个用户脚本用来改善这种情况:它在浏览器里观察播放过程,遇到明显不稳的连接时自动调整,并把实时下载速度显示在面板上。播放正常时不会介入。

☀️ 浅色 🌙 深色
Bilibili Accelerator 浅色面板 Bilibili Accelerator 深色面板

安装

Chrome / Edge / Firefox 先装 Tampermonkey 或 Violentmonkey,然后从下面任意一个地址装脚本:

装完刷新一下已经打开的 B 站页面。右下角出现 ⚡ 就说明脚本跑起来了。

Safari

Safari 上没有 Tampermonkey,用 Userscripts 这个扩展:

  1. 从 App Store 装 Userscripts。
  2. 在 Safari 设置里启用它,并允许访问 bilibili.com。
  3. 打开上面的 Greasy Fork 或 GitHub Raw 地址完成安装。
  4. 刷新已经打开的 B 站页面。

本地扩展(Chrome / Edge)

不想用脚本管理器的话,仓库也能直接构建成 Manifest V3 扩展:

npm run build

然后打开 chrome://extensions,开启「开发者模式」,选择 dist/extension。

面板与设置

  • 面板顶部是当前状态,下面是实时下载速度曲线。拿不到速度数据时,会退回显示前方缓冲了多少秒。
  • 明暗跟随系统。点顶部的日 / 月开关之后,就变成你手动指定的浅色或深色。
  • 高级设置里有 7 套主题色:哔哩蓝、青碧、翠绿、星紫、少女粉、落日橙、石墨灰。
  • 状态栏注明当前使用的线路:原生线路(B 站为该视频分配的线路)或切换后的线路。实时速度只在下方的下载速度卡片中显示。
  • 本视频卡过或线路速度不足时,面板提供「测试其他线路」:立即比较几条线路,只在明显更快时切换,不保存设置,也不刷新页面。
  • 带宽保护默认关闭,开启后会限制页面占用你的上传带宽,需要刷新页面生效。
  • 网页全屏时 ⚡ 会淡出,鼠标移到右下角就能重新唤出。

版本

完整说明见 Releases。

版本 主要变化
v0.5.1 面板加入状态动效。播放流畅时,状态点向外扩散光圈,速度曲线上有高光流过,曲线末端发出脉冲;测试线路时状态点外有弧线环绕,缓冲时光圈向内收拢;网络较慢、就绪和关闭三种状态保持静止。⚡ 按钮不循环播放动画:悬停时闪电闪动一次,按下时略微缩小,视频切换线路时闪电闪动并向外扩散一圈光环;按钮外圈的描边改为粗细、明暗一致。面板打开期间速度曲线逐帧重绘,在每秒一次的采样之间连续推进,读数过渡到新值,曲线末端的圆点不再被图表边缘裁切。面板关闭、标签页位于后台或系统开启「减弱动态效果」时不运行动画。线路选择逻辑未改动
v0.5.0 线路改为按实测决定:每个视频先使用原生线路,速度不足时比较备选线路并切换到明显更快的一条;取消加载时测速、排序缓存和逐个轮换;「测试其他线路」取代「还在卡?再加把劲」
v0.4.1 固定服务器改为下拉选择,可填写自定义地址,不再提供 Akamai
v0.4.0 修复后台播放卡住;候选服务器覆盖境内外两档并按实测吞吐排序;直播页 ⚡ 自动隐藏
v0.3.0 面板深浅色 + 7 套主题色;顶部主题 / 语言改成同一套滑动控件。核心逻辑没动
v0.2.3 直播场景的稳定性修复;探测逻辑更准确;卡顿恢复会持续重试
v0.2.2 速度曲线按「数据真正在传输的时段」算,缓冲填满时不再假装掉到 0
v0.2.1 面板加上实时下载速度曲线,拿不到速度数据时退回显示缓冲时长
v0.2.0 大改版:自动优化播放连接、卡顿自动恢复、中英文面板、可选带宽保护
v0.1.3 悬浮图标改成纯 ⚡,网页全屏自动淡出,不再压住全屏按钮
v0.1.2 悬浮控件和设置面板重做
v0.1.1 首个可直接安装的用户脚本版本

遇到问题

先看右下角有没有 ⚡。刚装完或刚更新的话,已经开着的 B 站页面必须刷新一次。

Chrome / Edge 上一直没有 ⚡,Tampermonkey 还提示「script hasn't run yet」或让你打开「allow user scripts」——这是新版 Tampermonkey(Manifest V3)的规矩,浏览器要你手动放行一次才让它注入脚本,跟本脚本无关。开一下就好:

  • Chrome:进 chrome://extensions,点开 Tampermonkey 的「详细信息」,把「允许用户脚本」打开。老版本没这个开关的话,把右上角「开发者模式」打开就行。
  • Edge:进 edge://extensions/,先开左下角「开发人员模式」,再点开 Tampermonkey 的「详细信息」,把「允许用户脚本」打开。找不到这个开关的话是 Edge 太旧了,更新一下再看。

还是卡的话,打开「高级设置」→「复制诊断报告」,然后带上视频地址、你所在的地区和具体现象发到 Issues。报告只包含必要的诊断信息,不含带签名参数的完整媒体地址。

限制

  • 只管浏览器里的 B 站网页播放器,Apple TV 和手机 App 不在范围内。
  • 网络状况本身就随地区和运营商变。脚本能改善一部分情况,但解决不了版权地区限制、源文件本身有问题,或者你本地网络的锅。
  • 软路由方案为什么基本不管用(以及原生 App 的证书固定问题),见 docs/router-proxy.md。

开发

npm test
npm run build

npm test 是单元测试,不用装任何依赖。面板和页面钩子另有一组浏览器测试:把构建好的用户脚本注入一个本地伪造的视频页,在 Chromium 和 WebKit 里跑,不访问 B 站。

npm install
npx playwright install chromium webkit
npm run test:browser

构建产物:

dist/bilibili-accelerator.user.js
dist/extension/

版本号只在 package.json 里改,构建脚本会同步用户脚本头和扩展 manifest。dist/ 是提交进仓库的,CI 会检查它和 src/ 是否一致,所以提交前记得重新构建。

License

MIT

About

Safari-friendly Bilibili CDN accelerator for smoother overseas playback.

Topics

Resources

Stars

618 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages