自动连播助手

释放双眼,带上耳机,听听看~!

自动连播助手

自动连播助手(Chrome / Edge 扩展)

一个通用的浏览器扩展:自动识别网页里正在播放的视频和播放列表,视频暂停时自动续播,播放结束后自动点击下一个视频。

功能

  • 自动识别视频:扫描页面中所有 <video> 元素,并监听动态加载的新视频(含 iframe 内嵌播放器、Shadow DOM)。
  • 暂停自动续播:检测到视频被暂停(非播放结束)时,自动恢复播放。
  • 识别待播列表:用启发式算法解析课程/播放列表,区分 已播 / 播放中 / 待播 状态;自动穿透 iframe,识别主页面和子页面中的目录。
  • 自动连播:当前视频播放结束后,优先点击平台自带的”下一集”按钮;没有时按目录顺序点下一个待播项,遇到未展开目录会自动展开父级后再点击。
  • 倍速播放:可选开关,支持 1.0x ~ 5.0x 多档倍速,视频切换后自动保持,关闭即恢复 1 倍速。
  • 读取视频进度条:实时显示当前视频播放进度(00:33 / 34:06)和课程总进度百分比。
  • 悬浮面板:页面右下角实时显示运行状态、视频数量、目录统计,可拖拽、可折叠,支持手动”立即播放下一集”,可展开调试日志查看识别过程。

安装步骤

  1. 打开 Chrome 或 Edge,地址栏输入 chrome://extensions(Edge 为 edge://extensions)。
  2. 打开右上角 「开发者模式」 开关。
  3. 点击 「加载已解压的扩展程序」
  4. 选择本文件夹(auto-video-player,包含 manifest.json 的那一层)。
  5. 打开任意视频网站(B站、YouTube、课程网站等),页面右下角会出现悬浮面板即表示已生效。

使用

  • 面板 / 扩展图标弹窗里可开关:总开关暂停自动续播播完自动下一集倍速播放
  • 设置通过 Chrome 同步存储,改动会实时生效到已打开的页面。
  • 若不希望某些页面自动运行,可在扩展详情里通过「网站访问权限」限制。

文件说明

| 文件 | 作用 | | — | — | | manifest.json | 扩展清单(Manifest V3) | | content.js | 核心逻辑:视频识别、续播、列表识别、连播、悬浮面板 | | content.css | 悬浮面板样式 | | popup.html / popup.js | 扩展图标弹窗(设置面板) | | icons/ | 扩展图标 | | gen_icons.py | 图标生成脚本(可删除) |

更新日志

v1.7.9

  • 新增倍速播放功能:
  • 默认 1 倍速,最高 5 倍速,档位:1.0x / 1.25x / 1.5x / 2.0x / 2.5x / 3.0x / 4.0x / 5.0x。
  • 悬浮面板新增「倍速播放」开关 + 「播放速度」下拉选择;扩展图标弹窗同样支持设置。
  • 默认关闭speedEnabled: false),避免与平台自带倍速冲突或触发违规检测;开启后所有帧的视频统一应用倍速。
  • 视频切换(重新播放)时自动重新应用倍速,防止播放器重置;设置实时同步到所有已打开页面,关闭开关即恢复 1 倍速。

v1.7.8

  • 修复「任何网页都触发扩展、很麻烦」:
  • manifest.jsoncontent_scripts.matches<all_urls> 收紧为常见视频/网课平台清单(网梯、B站、优酷、爱奇艺、腾讯视频、网易云课堂、中国大学MOOC、学堂在线、智慧树、慕课网、超星、网易公开课、腾讯课堂、高顿、抖音、快手、虎牙、斗鱼、YouTube 等),未列入的网站完全不会注入。
  • content.js 顶层 frame 启动时再次校验:不在已知平台域名 没有 <video> 元素时,整个 IIFE 立即 return,不绑定任何事件、不创建面板、不扫描 DOM。
  • 子 frame 仍正常工作(依赖父 frame 的 postMessage 唤醒),但只在匹配的网课平台子页面里才会注入。
  • 调整清单:若遇到扩展在某个网课平台未生效,可编辑 manifest.jsonmatches 加上对应域名后重新加载。

v1.7.7

  • 修复「仍未按顺序播放,且播完最后一个视频后不会回头补齐漏看课时」:
  • findNextItem 改为自动补齐模式:自动连播时按目录顺序取第一个未完成课时,不再局限于「当前项之后」。这样即使前面有漏掉的视频,播完后也会回头继续播放,直到课程全部完成。
  • 手动点击「立即播放下一集」仍优先取当前项之后的下一个未完成课时,保持操作预期;当前项之后没有待播项时,再兜底取全局第一个未完成项。
  • clickNext 增加 autoEnded 参数,自动结束事件与手动按钮使用不同策略,并在跨帧广播中传递 manual 标志。
  • 全部课时完成后日志输出「全部课时已完成」,避免无意义重复跳转。

v1.7.6

  • 修复「v1.7.5 仍未拦住播放器帧乱点 / 当前项识别错位」:
  • clickNext 目录有效性判断由「leafCount ≥ 3」改为「本帧必须含 .s_point[itemtype="video"]」。网梯内容帧(播放器控件)即便识别出 3 项也不算目录,必须让顶层调度到真正拥有 .s_learnlist 的目录帧。
  • pickBestFrameForNext 同样过滤掉不含 .s_point 的无效帧,委派的目标帧一定是真实目录帧。
  • analyzeList 当前项识别顺序改为 URL 匹配优先,再退回到 s_pointerct 类标记。原因:平台可能在目录上保留对某一项的 s_pointerct 高亮,但用户实际播放的是另一项(URL 不同),此时按 s_pointerct 找当前项会指错,导致下一集跳过多个真实未看项。
  • 行为:用户从 leaf[N](未标 s_pointerct)播放结束 → 用 URL 识别为 leaf[N] → 下一集严格取 leaf[N+1] 之后的第一个非已完成项。

v1.7.5

  • 修复「播完下一集仍不按顺序乱跳」:
  • 顶层统一调度:视频结束后由顶层挑选「目录项最多」的帧执行下一集,避免多个 iframe 同时点击导致乱跳;
  • 子帧目录项不足 3 个时不再处理下一集,防止播放器画质选择(全高清等)被误当目录点击;
  • 网梯平台直接调用 openLearnResItem(itemId, 'video', null, title),比点击元素更稳定;
  • 新增全局 8 秒跳转锁,防止重复触发下一集。

v1.7.4

  • 修复「播完跳转下集不按顺序、中间跳过的视频被误认为已看完」:
  • 目录状态判定只信任平台真实标记(completestate="1"s_pointerct 等),不再把当前项之前的所有课时默认标为已播;
  • 修复后:跳过未看的视频仍保持「待播」,课程总进度与待播数量与平台实际状态一致;
  • findNextItem 严格按 DOM 顺序取当前项的下一个非已完成课时,避免跳集。

v1.7.3

  • 修复「点击播放下一集仍跳回当前正在播放的视频」:
  • findWangtiCatalog 移除 .learn-menu(左侧导航)误命中,只认 #learnMenu / .s_learnlist 等真正的课程目录;
  • 目录容器搜索改为跨所有同域 iframe 取评分最高者,.s_point[itemtype="video"] 目录永远优先,左侧导航强烈减分;
  • 移除「兜底点击随机元素」逻辑(此前顶层帧找不到下一节时会乱点顶层元素,导致跳到当前视频);
  • 「下一集」支持跨帧委托:没有目录的帧返回失败后,由顶层广播给拥有目录的子帧执行精准跳转,子帧成功即停止向下广播。
  • 日志新增帧标识(TOP / IFRAME|页面名),便于定位问题帧。

v1.7.2

  • 修复 collectItemsconst candidates 被重新赋值导致的 Assignment to constant variable 错误(该错误使目录分析中断)。
  • 目录识别优先使用网梯平台专用 findWangtiCatalog,避免把左侧「课件/课程简介/学习进度」导航菜单当成课程目录。
  • 在启发式评分里:包含 .s_point[itemtype="video"] 大幅加分,包含 .learn-menu-cell 大幅减分。
  • collectItems 增加过滤,排除左侧导航、播放器控件(高清/标清等)等非课时项。

v1.7.1

  • 加入设置版本迁移:升级后强制把「暂停自动续播」重置为关闭,避免旧设置残留导致继续触发平台警告。
  • 进一步增强网梯平台目录识别:新增 findWangtiCatalog,直接命中 #learnMenu / .s_learnlist / [class*="learnlist"],并以包含最多 .s_point[itemtype="video"]div 作为兜底。

v1.7

  • 风险规避:默认关闭「暂停自动续播」,移除直接调用 video.play() 的逻辑,改为仅在开启开关时模拟点击播放按钮。
  • 降低视频进度上报频率(500ms → 2000ms)和子帧 ping 频率(1s → 3s),减少被平台检测为异常播放的可能性。
  • 面板与弹窗对「暂停自动续播」增加 ⚠️ 风险提示。
  • 修复目录识别为 0 项:增加对网梯平台 #learnMenu / .s_learnlist 的直接命中与兜底选择。

v1.6

  • 针对网梯 / whaty-learnspace 课程平台做精准适配:
  • 目录叶子项直接识别 .s_point[itemtype="video"],避免取到内部 .wrap 导致 class/状态丢失;
  • 已完成状态读取 completestate="1" 属性;
  • 当前播放中状态识别 s_pointerct 类;
  • 当前课时通过 onclick 中的 itemId 与 URL 中的 params.itemId 前 8 位匹配,解决无 <a href> 时无法定位当前项的问题。
  • 课程总进度计算更准确:1 个已完成 + 1 个播放中 + 11 个待播 = 13 项。

v1.5

  • 目录识别只保留“带播放时长的视频课时”,剔除「第X讲」「章节」等非视频项,避免把 15 项误算成视频数。
  • 当前课时定位增强:支持从目录项的 onclick / data-* 属性中提取真实跳转链接,再与当前 iframe URL 匹配。
  • 面板新增「复制日志」「复制目录HTML」按钮,可一键复制识别结果与目录 HTML,方便针对性适配。
  • 调试日志改为输出全部课时的文本、类名、完成标记、跳转链接。

v1.4

  • 修复“所有课时都识别为已播、课程总进度 100%”的误报:
  • 已完成检测更严格,避免 checkbox / checked 等子元素误匹配;
  • 新增“URL 匹配”定位当前课时,适配 whaty / webtrn 类课程平台;
  • 新增页面标题、章节标题匹配当前课时;
  • 当全部课时都被标记为已完成、但当前视频尚未结束时,自动判定为误报并清空已完成标记。
  • 调试日志默认输出目录分析详情,方便定位识别问题。

说明与限制

  • “识别列表”采用通用启发式策略,大多数主流视频网站都能命中;极少数结构特殊的网站可能需要针对该站做适配。
  • 自动续播依赖页面已发生过用户交互(浏览器自动播放策略),正常浏览观看场景下均满足。
  • 本工具仅用于个人学习、课程连播等合法场景,请遵守目标网站的条款。

更新日志

更新日志

声明:本站所有文章,如无特殊说明或标注,均来自于互联网,下载的软件和资源请在24小时之内删除,本站提供的资源只可作为下载、学习交流使用,其版权归原作者所有,其产生的任何后果均自己承担,本站不作任何责任承担,具体可查看本站免责声明。如已声明或标注原创,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理,客服链接:点此前往,投诉邮箱:nc08wlkj@163.com

给TA赞赏
共{{data.count}}人
人已赞赏
未分类

opu

2026-9-16 17:27:07

数码资讯

内存条涨成"电子茅台"?装机党哭了,这波涨价啥时候是头?

2025-12-9 15:01:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索