一个强大而简单的视频倍速控制脚本,支持大多数网页视频播放器(可通过修改脚本的 @match 规则扩展支持的网站),特别优化了YouTube和Bilibili等主流视频网站。 修改自苗言的脚本https://greasyfork.org/zh-CN/scripts/523429-%E8%A7%86%E9%A2%91%E5%80%8D%E9%80%9F%E6%92%AD%E6%94%BE
本项目由个人维护。如果你觉得脚本对你有帮助,欢迎扫码打赏支持,捐赠将帮助我持续维护和更新项目。感谢你的支持!
→长按:以预设倍速播放(可在菜单中设置,范围 0.1-16,默认2.5倍速)→松开:恢复原始播放速度→单击:快进5秒←单击:快退5秒Space空格键:暂停/播放视频
+/-:调整下次长按→时的目标倍速值(步长可在菜单中设置,范围 0.1-16,默认0.5)]/[:增加/减少当前播放速度(步长可在菜单中设置,范围 0.1-3,默认0.5,最低 0.1x)P:立即恢复为默认播放速度
,: 上一帧 (按 1/30 秒步长后退).: 下一帧 (按 1/30 秒步长前进)
↑:增加音量(每次+10%)↓:减小音量(每次-10%)
Enter:切换全屏/退出全屏
- 页面中有多个视频时,每个视频左上角会显示圆形控制标签
- 悬停时标签会放大并显示"选择视频"提示,点击可切换控制目标视频
- 当前控制的视频标签呈30%透明度蓝色高亮,并显示中心小点指示器
- 在任何未默认支持的网站上,通过油猴菜单点击 “在当前网站启用视频倍速控制”。
- 脚本会提示您刷新页面。
- 刷新页面后,脚本将在该网站上激活。
在启用网站时,脚本会自动检测页面中的所有 <iframe> 元素,并将检测到的跨域视频域名与主域名建立分组关系进行管理。这极大提升了第三方视频网站的兼容性,无需手动操作即可实现控制。
- 查看: 通过油猴菜单中的 "查看所有临时启用的网站",可以打开可视化的分层级管理弹窗。界面采用树形结构,主域 名作为父节点,其包含的iframe域名作为子节点,层次清晰,便于管理。
- 删除: 支持两种删除方式:1) 删除整个分组(包含主域名和所有iframe域名);2) 单独删除分组中的某个iframe域名。操作后需要刷新页面使更改生效。
- 清空: 弹窗右上角提供"清空所有"按钮,可以一键删除所有已启用的网站分组。
- 展开/折叠: 分组默认折叠状态节省界面空间,点击可展开查看详情。所有设置相关的命令(如"设置默认播放速度")也只会在网站启用后出现。
- 无需界面操作,纯键盘控制
- 支持绝大多数网页视频播放器
- 特别优化了YouTube和Bilibili的兼容性
- 实时显示速度、音量和全屏状态变化提示
- 完美支持动态加载和延迟加载的视频
- 优化的按键响应,提高与浏览器手势的兼容性
- 智能过滤无效视频元素,精准定位真实播放器
- 安装脚本后即可使用,无需额外设置
- 在任何包含HTML5视频的网页中都可以使用
- 特别适合观看教学视频、演讲等需要经常调整播放速度的场景
- 所有操作都会有浮动提示,方便了解当前状态
- 支持所有主流浏览器
- 支持大多数使用HTML5播放器的视频网站
- 特别优化支持:
- YouTube
- Bilibili
- 其他使用标准HTML5 video标签的网站
- 修复 Enter 键在按钮/链接上触发全屏的键盘导航问题
- 修复长按右键切换窗口后播放速度卡住的问题
- 修复视频元素为空时的崩溃问题
- 修复菜单修改设置后不立即生效的问题
- 修复快速切换页面时的初始化竞态问题
- 优化长按判定逻辑,改用时间戳避免键盘重复率影响
- 优化内存管理,使用 WeakMap 防止视频元素泄漏
- 优化 DOM 扫描性能,限制遍历深度并增量检测新视频
- 优化 Toast 提示为单例模式,避免高频调用闪烁
- 支持长按上/下箭头连续调节音量
- 修复 URL 监听器重复注册导致的性能问题
- 新增日志级别控制功能
- 修复第三方网站找到视频但无法控制的严重问题
- 新增后备视频监听器,完美支持延迟加载的视频
- 优化视频元素有效性检测,自动过滤无效的占位符视频
- 修复 iframe 中菜单重复注册问题
- 自动迁移旧版本数据到新的分组结构
- 修复 iframe 中脚本启用逻辑,确保视频域名在启用列表中时脚本正常运行
- 优化主页面错误提示,避免在有 iframe 的页面显示误导性错误信息
- 增强多层嵌套 iframe 视频检测,支持更多第三方视频网站
- 修复长按右箭头键松开时重复触发快进的问题
- 新增对
iframe srcdoc视频的完整支持,特别优化了使用内嵌HTML结构的第三方视频网站 - 增强 iframe 环境检测:脚本现在能自动识别并启用包含视频的 iframe 环境
- 优化事件监听机制:添加 iframe 窗口键盘监听和完整的清理机制,防止内存泄漏
- 优化多视频标签显示,采用纯圆形极简设计,半透明不干扰观看,并支持悬停提示功能
非常感谢一位朋友的慷慨捐赠!这是我收到的第一笔捐赠,对我来说意义非凡,是莫大的鼓励和认可。您的支持是我持续更新和维护这个项目的巨大动力。再次感谢!
- 新增自动检测和启用跨域iframe域名功能:在启用网站时,脚本会自动扫描页面中的所有iframe元素,并将检测到的跨域域名与主域名建立分组关系进行管理,极大提升了第三方视频网站的兼容性。
- 全新分层级域名管理界面:将域名管理从平面列表升级为树形结构,主域名作为父节点,iframe域名作为子节点,层次清晰,便于管理。
- 解决iframe跨域重复弹窗问题:通过检测运行环境,在iframe中不显示管理弹窗,避免重复操作。
- 新增分组管理功能:支持删除整个分组(包含主域名和所有iframe),或单独删除分组中的某个iframe域名,灵活满足不同管理需求。
- 新增展开/折叠功能:分组默认折叠状态节省界面空间,点击可展开查看详情,优化用户体验。
- 优化启用流程提示:启用时会显示主域名和检测到的iframe域名详情,并输出详细的控制台日志。
- 改进数据结构:使用分组数据结构替代简单的域名数组,支持创建时间、更新时间等元数据,便于扩展和维护。
v1.5.0版本出现奇怪的bug,临时回退到v1.4.0版本
- 代码重构: 对脚本核心代码进行了全面重构,提升了代码质量、可读性和可维护性。
- 性能优化:
- 合并并优化了
MutationObserver,显著降低了在动态页面上的性能开销。 - 为视频检测引入了防抖(Debounce)机制,避免了不必要的重复计算。
- 合并并优化了
- 兼容性增强:
- 重构启用流程: 移除了令人困惑的"手动查找视频"功能。
- 新增"重新扫描"功能: 在网站启用后,提供"重新扫描以查找视频"的菜单命令,专门用于解决
iframe或动态加载视频的兼容性问题,操作流程更符合逻辑。
- 安全加固: 替换了
innerHTML的使用,杜绝了潜在的 XSS 风险。 - 逻辑增强: 增加了对动态移除视频的“垃圾回收”机制,防止内存泄漏。
- 体验优化: 移除了所有阻塞性的
alert弹窗,改用更友好的浮动通知。
- 修复 YouTube 页面在视频区域外点击(如作者简介)导致快捷键失效的问题。
- 修复部分情况下过早按下快捷键会将播放速度恢复到1倍速
- 移除 哔哩哔哩在某些情况可能出现的多视频控制按键
- 移除 未找到视频元素时的冗余提示信息
- 修复 逐帧播放功能:修复了暂停状态下
,和.键失效的问题
- 新增 空格键暂停/播放功能:按空格键可以暂停或播放视频
- 优化 通用网站兼容性
- 新增 暂停状态下按左右方向键功能:在视频暂停时按左右方向键会取消暂停并执行相应操作
- fix bugs
- 新增 临时启用网站功能:可通过油猴菜单在任意网站上临时启用脚本
- 新增 多视频控制功能:在页面有多个视频时,可通过点击选择控制哪一个视频
- 优化 通用网站兼容性:添加通配符匹配规则,支持所有网站
- 优化 B站和YouTube的全屏功能,使回车键触发的全屏与网站原生全屏按钮效果一致
- 改进全屏按钮选择器,提高兼容性
- 修复 Bilibili 评论区快捷键冲突问题
- 优化 Shadow DOM 中的输入元素检测逻辑
- 新增 逐帧播放功能:视频暂停时,按
,上一帧,按.下一帧 (默认步长 1/30s)。 - 新增 自定义调速步长:可在油猴菜单中设置按
[/]调整当前速度的步长 (范围 0.1-3)。 - 新增 自定义目标倍速调整步长:可在油猴菜单中设置按
+/-调整目标倍速的步长 (范围 0.1-16)。 - 调整 速度下限:所有速度调整的最低值改为 0.1x。
- 调整 设置范围:默认播放速度和目标倍速的设置范围改为 0.1-16。
- 优化 YouTube 按键处理逻辑
- 降低事件拦截权限,提高与浏览器手势的兼容性
- 改进视频播放器区域检测
- 新增 YouTube 左方向键快退5秒功能
- 优化 YouTube 按键响应
- 新增音量控制功能(上下方向键)
- 新增全屏切换功能(回车键)
- 优化提示信息显示
- 首次发布
- 实现基础倍速控制功能
- 添加 YouTube 和 Bilibili 特别支持
