- 功能简介
在打开视频的网页上,点一下即可呼出「⚡ 强制倍速」浮动面板,选择倍速后立即、持续生效,并通过多重机制确保播放平台(网课、视频站、内嵌播放器等)无法把倍速悄悄改回 1x。
2. 适用场景
- 网课 / 培训平台(如超星、学堂在线等)挂机刷课。
- B 站、YouTube、各大视频网站的加速观看。
- 任意网页内嵌的
<video> 播放器(含 SPA 动态加载的播放器)。
- 需要统一把所有视频调到非标准倍速(如 1.75x、3x)的场景。
3. 两种形态对比
| 维度 |
书签版(Bookmarklet) |
油猴/脚本猫版(UserScript) |
| 安装成本 |
零安装,拖到书签栏即可 |
需装 Tampermonkey / 脚本猫 / Violentmonkey |
| 生效方式 |
在目标网页手动点击该书签 |
打开网页自动注入,无需操作 |
| 覆盖范围 |
当前顶层页面;跨域 iframe 靠广播接力(若 iframe 自身未运行本脚本则覆盖有限) |
@match *://*/* 自动注入各级 iframe,覆盖最彻底 |
| 手机支持 |
书签里粘贴 javascript: 代码运行 |
装对应 App 后自动生效 |
| 推荐人群 |
临时、偶尔使用;不想装扩展 |
长期、全站使用;页面含 iframe 视频 |
结论:想省事、页面有 iframe 视频 → 用油猴/脚本猫版;临时救急、不想装任何东西 → 用书签版。
4. 安装方法
4.1 书签版
- 打开交付页
全网页强制倍速.html。
- 把页面中的「⚡ 强制倍速」按钮拖到浏览器书签栏。
- (手机)点「复制书签代码」,在浏览器书签里新建一条,把网址粘贴成复制到的
javascript:... 内容。
4.2 油猴 / 脚本猫版
- 代入链接(脚本猫):在装有脚本猫的浏览器打开
http://localhost:8080/force-speed.user.js(或交付页中的「下载 .user.js」按钮),脚本猫会自动捕获并弹出安装。
- 从文件导入:下载
force-speed.user.js / 全网页强制倍速.user.js,在脚本猫/油猴中「导入 → 从文件」选择即可。
- 复制源码:交付页「复制油猴脚本」按钮,把内容新建为用户脚本保存。
5. 使用方法
电脑:
- 书签版:进入视频网页 → 点击书签栏的「⚡ 强制倍速」→ 右上角出现面板 → 点选倍速。
- 油猴/脚本猫版:安装后打开视频网页,面板自动出现。
手机:
- 书签版:在视频网页点对应书签。
- 脚本猫 App:导入后打开视频网页自动生效。
面板操作:
- 点选
0.5x ~ 16x 任意档位 → 立即锁定,按钮高亮。
- 拖动标题栏「⚡ 强制倍速」可移动面板位置。
- 点标题栏「-」→ 折叠成一条细栏(只留标题),再点「+」展开;适合屏幕小或不想遮挡时。
- 点右上角「✕」→ 隐藏面板,右下角出现显示当前倍速(如
2x)的小圆标,点它恢复。
- 点「关闭强制倍速」解除锁定,倍速恢复正常可控。
6. 控制面板说明
面板通过 Shadow DOM 渲染,样式与宿主页面完全隔离,不会被视频站 CSS 污染:
| 元素 |
作用 |
| 标题栏 |
显示「⚡ 强制倍速」,可拖拽移动 |
| - / + |
折叠 / 展开:折叠后只剩一条细标题栏,点「+」恢复完整面板 |
| 倍速按钮 |
0.5 / 1 / 1.25 / 1.5 / 1.75 / 2 / 3 / 4 / 8 / 16,点击即锁定 |
| 关闭强制倍速 |
解除所有锁定并停止守护(向 iframe 广播解除信号) |
| ✕ 收起 |
隐藏面板,右下角留显示当前倍速(如 2x)的小圆标可重新展开 |
7. 核心原理
脚本用四道防线让倍速「锁死」:
- 原生接口劫持:页面加载第一时间抓取
HTMLMediaElement.prototype.playbackRate 的原生 getter/setter(防止被站点脚本改写后拿不到),之后用原生 setter 直接写倍速,绕过站点自定义的 setter。
- 实例属性锁定:在每个
<video> 实例上用 Object.defineProperty 重定义 playbackRate——站点再对它赋值也被 set(){} 忽略,倍速保持目标值。
- 高频守护 + 纠偏:
setInterval 每 500ms 重设一次;同时监听 ratechange(捕获阶段),一旦检测到倍速偏离目标,50ms 内再强制一次。
- 全量覆盖:
MutationObserver 监听 DOM 变化,后插入的视频自动套用;getAllVideos() 递归遍历同源 iframe;broadcastRate() 通过 postMessage({__forceSpeedRate}) 向跨域 iframe 广播,各帧各自强制。
设计上所有逻辑包在 try/catch 中,单点异常不影响整体,也不依赖任何第三方库(无 GM_* 依赖,书签版也能跑)。
8. 倍速范围
预设档位:0.5x、1x、1.25x、1.5x、1.75x、2x、3x、4x、8x、16x。
如需其它档位(如 5x、0.75x),改源码中的 speeds 数组即可,例如 [0.75, 1, 1.5, 2, 5, 16]。
9. 注意事项与局限
- 跨域 iframe:书签版在顶层页运行,若视频完全处于跨域 iframe 且该 iframe 未运行本脚本,则无法直接锁定(油猴/脚本猫版因注入到各帧而覆盖更全)。
- 受控播放器:极个别站点用 Canvas 绘制或非标准媒体元素模拟播放,无原生
<video>,本脚本无法加速。
- 合规提示:仅用于个人学习/合理加速观看,请遵守各平台使用条款,勿用于违规刷分等行为。
- 性能:高频守护每 500ms 跑一次,开销极低;关闭强制后定时器自动清除。
10. 隐私与安全
- 纯前端脚本,不联网、不上报、不读取任何账号信息。
- 通过
postMessage 广播的仅是倍速数值,不含任何页面数据。
- 所有代码开源可读,无混淆、无外部请求。
11. 常见问题(FAQ)
Q:点了倍速但视频还是 1x?
A:多半是视频在跨域 iframe 里且用了书签版。换油猴/脚本猫版,或在那个 iframe 页面里也运行一次书签。
Q:面板挡住了网页内容?
A:拖动标题栏把面板移到空白处;或点 ✕ 收起,需要时再点右下角 ⚡ 展开。
Q:为什么没有 5x / 0.75x?
A:预设档位见第 8 节,改 speeds 数组即可自定义。
Q:书签版和油猴版会冲突吗?
A:不会,两者独立;同一页面同时用也只是重复锁定,效果一致。建议二选一。
Q:手机怎么装?
A:书签版把 javascript: 代码存进书签;油猴/脚本猫版装对应 App 后从文件或 URL 导入。