chaolucky18/xuexitongScript
效率与系统工具面向学习通用用户的浏览器脚本,自动播放课程视频并切换小节。
项目介绍
这是一个用于超星学习通课程页面的控制台脚本/油猴脚本,处理重复的播放操作:识别 iframe 内的真实视频元素并调用 play(),播放被中断时尝试恢复,普通播放失败时尝试静音播放,视频结束后在目录树中定位并进入下一小节。如果当前小节先进入的是「学习目标」页,脚本会尝试点击顶部的 2视频 / 视频 标签;遇到章节测验页面时,会尝试点击 #prevNextFocusNext 跳过当前步骤,并限制最多尝试 3 次以避免循环 README lines 29–36 README lines 37–58 README lines 63–72。
当前 V3 版本刻意收窄功能:v3_optimized.js 是唯一源码,油猴版由构建脚本生成 README lines 18–26。
另有一个独立的 DeepSeek 控制台版,通过本地服务调用 DeepSeek API 识别章节练习题并辅助作答,不影响 V3 的入口 README lines 13–17。
快速使用
控制台方式
- 打开学习通课程播放页。
- 按
F12,进入Console。 - 复制 v3_optimized.js 全部内容,粘贴并执行。
- 首次执行后可用
app.run()启动,用app.nextUnit()切到下一小节 README lines 75–89 README lines 85–88。
油猴方式
- 安装 Tampermonkey。
- 导入 v3_optimized.user.js。
- 确认脚本已启用。
- 刷新学习通播放页面 README lines 90–96。
默认播放配置包括 playbackRate: 1.5、autoplay: true、retryInterval: 2000、maxRetries: 10、videoCheckInterval: 1000,autoAdvanceNoVideo: false README lines 48–57。
使用约束
- 默认不会自动跳过无法识别的无视频页面,避免反复触发平台「当前章节还有任务未完成」提示。确认当前节点无需处理后,可手动执行
app.nextUnit();只有课程结构已确认时,才在控制台设置app.configs.autoAdvanceNoVideo = trueREADME lines 99–104。 - 播放器初始化或页面重置播放状态时,可能出现
The play() request was interrupted by a call to pause()这类AbortError,脚本会优先尝试恢复播放,而不是立即判定失败 README lines 105–120。 - 同一页面反复粘贴执行会叠加监听和定时逻辑,导致重复日志。建议刷新后只执行一次;使用油猴版时尽量不要再在控制台重复粘贴 README lines 121–129。
- 静音播放成功后会保持静音,当前版本不再自动恢复声音 README lines 130–133。
- 修改
v3_optimized.js后,执行node scripts/build-userscript.mjs重新生成油猴版,再执行node tests/verify-v3.mjs验证两个入口语法并确认油猴脚本与唯一源码一致 README lines 148–151。 - 仓库未声明许可证。README 说明项目仅用于脚本调试、前端自动化研究和页面行为分析,并要求遵守目标平台的使用规定 README lines 156–158。
HotRepo 点评
在 2026-11-05 的 JavaScript 日榜中,该项目单日新增 49 Star,最好名次为第 4。这是一次快照而非连续趋势,但说明课程自动化脚本仍有一定关注度。项目的可取之处在于范围克制:README 明确写出脚本处理了哪些页面路径(页签切换、iframe 视频识别、测验页跳过选择器),并保持单一源码加构建验证步骤,行为比叠加大量功能的脚本更容易理解。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。