一个简约的 Chrome 扩展与高效自动化工具组合,专注于无缝视频播放与学习通刷课体验。扩展防止视频暂停并拦截鼠标移出事件,自动化脚本智能管理课程进度。
No Stop Video
技碎枷锁鸣,影贯寰宇情。
Tech shatters chains' chime, streams pierce the realm sublime.
愿世间视频,皆自由流淌。
May all videos flow, unbound and strong.
- 智能视频防暂停:动态监测,无惧鼠标移出窗口或切换标签页。
- 事件精准拦截:底层劫持暂停逻辑。
- 零配置全站兼容:开箱即用,方便快捷。
- 多线程 GUI 控制:提供可视化面板,一键 Start/Stop,支持安全终止。
- 独立进程静音:一键静音全部 Chrome 窗口,让你安心做其他事。
- 图像识别引擎:精准定位学习通课程界面元素。
- 自动化操作流:模拟点击,自动播放视频并推进进度。
- 题目自动处理:高效完成视频内简单题目。(视频后题目暂不支持作答,后续可通过调用大模型+题库答案实现)
本工具由两部分协同工作:
-
Chrome 扩展 (JS 注入): 通过注入 JavaScript (
content.js),修改网页的默认媒体控制逻辑,防止视频意外暂停:- DOM 遍历与定位:脚本会主动遍历当前页面及嵌套的
iframe,寻找实际的<video>标签。 - 原生 API 重写:定位到视频元素后,将原生的
video.pause方法重写为空函数,阻止网页脚本层面的主动暂停调用。 - 播放状态轮询:设置 500ms 的定时器持续监测视频状态,若检测到视频处于暂停状态,则自动执行
video.play()恢复播放。 - 特定平台事件拦截:针对未直接暴露视频元素的复杂页面,扩展会在捕获阶段拦截并阻止
mouseout(鼠标移出)事件的冒泡;同时针对学习通平台的播放器组件,重写其核心的window.ananas.pause方法,防止由于失去焦点触发的暂停逻辑。
- DOM 遍历与定位:脚本会主动遍历当前页面及嵌套的
-
桌面自动化程序 (Python + PyAutoGUI + Tkinter): 基于 Python 构建的桌面控制脚本,用于处理翻页、答题等交互逻辑:
- 窗口控制:通过
pygetwindow锁定 Chrome 进程,强制前置并固定窗口尺寸(1280x1000),为图像识别提供稳定的绝对坐标系。 - 视觉识别:利用
pyautogui的像素级图像匹配,在屏幕指定区域扫描loc文件夹内的特征图片,计算出中心坐标后模拟物理鼠标点击。 - 音频分离:调用 Windows Core Audio API (
pycaw),精准抓取 Chrome 浏览器的音频会话进行静音/解除静音,不影响你电脑后台播放的音乐或其他软件声音。 - 异步并发:采用多线程架构,GUI 主界面与后台自动化死循环分离,确保程序在执行漫长挂机任务时,界面依然流畅响应。
- 窗口控制:通过
- 扩展范围:Chrome-Extension 默认全站生效,可编辑
manifest.json的host_permissions限定网站范围(如["*://*.chaoxing.com/*"])。 - 合规性:请确保您的使用 符合学习通等网站的服务条款。
- 稳定性:若
NoStopVideo.exe异常(如误点、卡死),请立即关闭 Chrome 或终止程序。在长时间使用前,请先进行短时间测试,确保安全可用后,再长时间使用(如一整夜)。 - 适配:本项目自动化脚本基于“屏幕物理图像识别”实现,极度依赖于当前的显示器分辨率、Windows 缩放比例以及浏览器渲染!如果程序运行异常,请根据你的电脑环境进行适配,修改图像识别特征库(automation-program/_internal/loc/)内的图像截图,将图标换成你电脑上重新截的图,重新运行即可。(如果是运行源代码,还在代码中调整 Chrome 窗口大小(当前为 1280x1000 ))。
- 从 GitHub Releases 下载
nostopvideo-v1.1.0.zip。 - 解压后包含两个文件夹:
chrome-extension和automation-program。
| 步骤 | 操作 |
|---|---|
| 1 | 打开 Chrome,导航至 chrome://extensions/ |
| 2 | 启用“开发者模式”(右上角开关) |
| 3 | 点击“加载已解压的扩展” |
| 4 | 选择解压后的 chrome-extension 文件夹 |
| 5 | 安装完成,立即生效 |
| 步骤 | 操作 |
|---|---|
| 1 | 进入解压后的 automation-program 文件夹 |
| 2 | 双击 NoStopVideo.exe 运行 |
git clone https://github.com/BlairCode/NoStopVideo.git
cd NoStopVideo
pip install -r requirements.txt
python main.py- 扩展管理:在
chrome://extensions/禁用或移除扩展。 - 静音控制:
automation-program默认静音 Chrome,可点击界面“解除静音”按钮切换。 - 测试建议:首次运行
Auto.exe时,建议观察几分钟,确保稳定后再长时间运行。 - 窗口管理:Chrome窗口置于最上方,
Auto.exe才可检测到窗口信息。
nostopvideo-v1.1.0.zip
├── chrome-extension/ # Chrome 扩展文件夹
│ ├── manifest.json # 扩展核心配置文件
│ ├── content.js # 视频控制与事件拦截逻辑
│ ├── background.js # 后台运行服务
│ ├── popup.html # 精简交互界面
│ ├── popup.js # 弹出窗口动态脚本
│ └── icons/ # 高质量图标集
│ ├── icon16.png # 16x16 小图标
│ ├── icon48.png # 48x48 中图标
│ └── icon128.png # 128x128 大图标
└── automation-program/ # 桌面自动化端
├── _internal/ # PyInstaller 运行依赖库
│ ├── loc/ # ⚠️ 图像识别特征库
│ └── ...
└── NoStopVideo.exe # 主程序入口
本项目遵循 MIT 许可证,开源共享,欢迎贡献。 声明:本工具仅供 Python 自动化技术学习与交流使用,请合理安排学习时间,遵守相关平台的用户协议。
- 邮箱: zhanghoubing777@gmail.com
- GitHub Issues: 提交问题
- 讨论区: 加入交流
