Skip to content

Repository files navigation

No Stop Video

一个简约的 Chrome 扩展与高效自动化工具组合,专注于无缝视频播放与学习通刷课体验。扩展防止视频暂停并拦截鼠标移出事件,自动化脚本智能管理课程进度。

No Stop Video
技碎枷锁鸣,影贯寰宇情。
Tech shatters chains' chime, streams pierce the realm sublime.
愿世间视频,皆自由流淌。
May all videos flow, unbound and strong.

License: MIT Python 3.8+ Chrome Extension


✨ 项目核心功能

🧩 Chrome-Extension (前端防暂停)

  • 智能视频防暂停:动态监测,无惧鼠标移出窗口或切换标签页。
  • 事件精准拦截:底层劫持暂停逻辑。
  • 零配置全站兼容:开箱即用,方便快捷。

🤖 Automation-Program (后端自动化)

  • 多线程 GUI 控制:提供可视化面板,一键 Start/Stop,支持安全终止。
  • 独立进程静音:一键静音全部 Chrome 窗口,让你安心做其他事。
  • 图像识别引擎:精准定位学习通课程界面元素。
  • 自动化操作流:模拟点击,自动播放视频并推进进度。
  • 题目自动处理:高效完成视频内简单题目。(视频后题目暂不支持作答,后续可通过调用大模型+题库答案实现)

🧠 实现原理

本工具由两部分协同工作:

  1. Chrome 扩展 (JS 注入): 通过注入 JavaScript (content.js),修改网页的默认媒体控制逻辑,防止视频意外暂停:

    • DOM 遍历与定位:脚本会主动遍历当前页面及嵌套的 iframe,寻找实际的 <video> 标签。
    • 原生 API 重写:定位到视频元素后,将原生的 video.pause 方法重写为空函数,阻止网页脚本层面的主动暂停调用。
    • 播放状态轮询:设置 500ms 的定时器持续监测视频状态,若检测到视频处于暂停状态,则自动执行 video.play() 恢复播放。
    • 特定平台事件拦截:针对未直接暴露视频元素的复杂页面,扩展会在捕获阶段拦截并阻止 mouseout(鼠标移出)事件的冒泡;同时针对学习通平台的播放器组件,重写其核心的 window.ananas.pause 方法,防止由于失去焦点触发的暂停逻辑。
  2. 桌面自动化程序 (Python + PyAutoGUI + Tkinter): 基于 Python 构建的桌面控制脚本,用于处理翻页、答题等交互逻辑:

    • 窗口控制:通过 pygetwindow 锁定 Chrome 进程,强制前置并固定窗口尺寸(1280x1000),为图像识别提供稳定的绝对坐标系。
    • 视觉识别:利用 pyautogui 的像素级图像匹配,在屏幕指定区域扫描 loc 文件夹内的特征图片,计算出中心坐标后模拟物理鼠标点击。
    • 音频分离:调用 Windows Core Audio API (pycaw),精准抓取 Chrome 浏览器的音频会话进行静音/解除静音,不影响你电脑后台播放的音乐或其他软件声音
    • 异步并发:采用多线程架构,GUI 主界面与后台自动化死循环分离,确保程序在执行漫长挂机任务时,界面依然流畅响应。

⚠️ 使用前注意事项

  • 扩展范围:Chrome-Extension 默认全站生效,可编辑 manifest.jsonhost_permissions 限定网站范围(如 ["*://*.chaoxing.com/*"])。
  • 合规性:请确保您的使用 符合学习通等网站的服务条款。
  • 稳定性:若 NoStopVideo.exe 异常(如误点、卡死),请立即关闭 Chrome 或终止程序。在长时间使用前,请先进行短时间测试,确保安全可用后,再长时间使用(如一整夜)。
  • 适配:本项目自动化脚本基于“屏幕物理图像识别”实现,极度依赖于当前的显示器分辨率、Windows 缩放比例以及浏览器渲染!如果程序运行异常,请根据你的电脑环境进行适配,修改图像识别特征库(automation-program/_internal/loc/)内的图像截图,将图标换成你电脑上重新截的图,重新运行即可。(如果是运行源代码,还在代码中调整 Chrome 窗口大小(当前为 1280x1000 ))。

Automation_window

🛠️ 安装指南

下载与解压

  • GitHub Releases 下载 nostopvideo-v1.1.0.zip
  • 解压后包含两个文件夹:chrome-extensionautomation-program

1. 安装 chrome-extension

步骤 操作
1 打开 Chrome,导航至 chrome://extensions/
2 启用“开发者模式”(右上角开关)
3 点击“加载已解压的扩展”
4 选择解压后的 chrome-extension 文件夹
5 安装完成,立即生效

2. 运行 automation-program

步骤 操作
1 进入解压后的 automation-program 文件夹
2 双击 NoStopVideo.exe 运行

3. 源代码运行

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才可检测到窗口信息。

📂 Release 结构

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 自动化技术学习与交流使用,请合理安排学习时间,遵守相关平台的用户协议。

📬 联系与支持


打造无缝学习与娱乐体验,No Stop Video 与你同行!

About

一款轻量级 Chrome 扩展,防止视频因鼠标移出窗口而暂停。专为提升视频观看体验设计,支持超星学习通等平台。另附自动化学习通刷课脚本。

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages