一款为 Bilibili 设计的高度可定制视频倍速控制脚本,提供可拖动的悬浮控件,增强原生倍速功能,让你的观看体验更加便捷。
- 自定义倍速列表 - 完全自定义支持的播放倍速,不受原生限制
- 可拖动控件 - 悬浮控件可自由拖动,记忆位置
- 智能隐藏 - 全屏/窗口模式下智能自动隐藏,不干扰观看
- 原生同步 - 与 Bilibili 原生倍速菜单双向同步
- 位置记忆 - 控件位置自动保存,下次访问恢复
- Hover 防隐藏 - 鼠标悬停时暂停自动隐藏
- 拖动分隔 - 专用拖动区域,避免误触按钮
- 快速切换 - 一键切换常用倍速
- 设置面板 - 直观的设置界面,实时编辑倍速列表
- 浏览器扩展:Tampermonkey 或其他支持 UserScript 的扩展
- 支持网站:Bilibili 视频页面
- 安装 Tampermonkey 浏览器扩展
- 下载
bilibili-speed-controller.user.js文件 - 在 Tampermonkey 管理面板中导入脚本,或直接打开
.user.js文件安装 - 访问任意 Bilibili 视频页面即可看到悬浮控件
https://www.bilibili.com/video/*- 普通视频https://www.bilibili.com/bangumi/*- 番剧动漫https://www.bilibili.com/list/*- 播放列表https://www.bili-s.com/video/*- 备用域名
控件由三部分组成:
- 当前倍速按钮 - 显示当前倍速,点击弹出倍速菜单
- 拖动分隔条 - 专用拖动区域(宽度 16px)
- 设置按钮 - 齿轮图标,点击打开设置面板
- 切换倍速:点击当前倍速按钮,从弹出菜单选择
- 拖动位置:在拖动分隔条区域按住鼠标拖动
- 自定义倍速:点击设置按钮,编辑倍速列表
- 重置位置:在设置面板中点击"重置位置"
- 窗口模式:600ms 无鼠标活动后自动隐藏
- 全屏模式:3000ms 无鼠标活动后自动隐藏
- 启动保护:页面加载后 2000ms 内不会隐藏
- 悬停保护:鼠标悬停在控件上时暂停隐藏
speeds: [0.5, 1, 1.25, 1.5, 2] // 默认倍速列表
current: 1 // 默认倍速
pos: { xPct: null, yPct: null } // 控件位置(null = 右上角)在设置面板中输入倍速值,支持格式:
- 逗号分隔:
0.75, 1, 1.25, 1.5, 2, 2.5 - 中文逗号:
0.75,1,1.25,1.5,2 - 空格分隔:
0.75 1 1.25 1.5 2
可在代码中修改以下常量:
WINDOW_HIDE_MS = 600 // 窗口模式隐藏延迟
FULLSCREEN_HIDE_MS = 3000 // 全屏模式隐藏延迟
STARTUP_GRACE_MS = 2000 // 启动保护时间
DRAG_HANDLE_WIDTH = 16 // 拖动条宽度- 优先使用
GM_getValue/GM_setValue(Tampermonkey API) - 降级使用
localStorage(普通浏览器存储) - 存储键名:
bili_custom_speed_store_v8
- 多种播放器:支持新旧版播放器界面
- Shadow DOM:兼容
bwp-video组件 - SPA 路由:监听页面变化,自动重新绑定
- 全屏检测:监听全屏状态变化
- 防抖处理:页面变化检测有 200ms 防抖
- 事件绑定:防止重复绑定,提高性能
- DOM 观察:使用 MutationObserver 监听 DOM 变化
- 纯 JavaScript(ES6+)
- UserScript API(Tampermonkey)
- DOM API + CSS3
├── 配置选项和默认值
├── 存储管理(GM_API + localStorage)
├── DOM 辅助函数
├── 样式定义(GM_addStyle)
├── UI 构建和事件绑定
├── 拖拽和位置管理
├── 倍速控制核心
├── 原生菜单同步
├── SPA 路由监听
└── 初始化流程
脚本包含详细的控制台日志,前缀为 [BiliSpeed],方便调试和问题排查。
- ✅ 实现自定义倍速列表功能
- ✅ 添加可拖动悬浮控件
- ✅ 支持智能自动隐藏
- ✅ 实现原生倍速双向同步
- ✅ 添加位置记忆功能
- ✅ 支持 Hover 防隐藏
- ✅ 添加拖动分隔区域
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 在本地修改
bilibili-speed-controller.user.js - 在 Tampermonkey 中测试
- 提交 Pull Request
如遇到问题,请提供:
- 浏览器版本和 Tampermonkey 版本
- 具体的错误现象或截图
- 浏览器控制台的错误信息
本项目采用 MIT 许可证。
cty2333 - GitHub
⭐ 如果这个项目对你有帮助,欢迎给个 Star!