搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

chaolucky18/xuexitongScript

效率与系统工具

面向学习通用用户的浏览器脚本,自动播放课程视频并切换小节。

3,835
444
JavaScript
创建于 6 年前

项目介绍

这是一个用于超星学习通课程页面的控制台脚本/油猴脚本,处理重复的播放操作:识别 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。

快速使用

控制台方式

  1. 打开学习通课程播放页。
  2. 按 F12,进入 Console。
  3. 复制 v3_optimized.js 全部内容,粘贴并执行。
  4. 首次执行后可用 app.run() 启动,用 app.nextUnit() 切到下一小节 README lines 75–89 README lines 85–88。

油猴方式

  1. 安装 Tampermonkey。
  2. 导入 v3_optimized.user.js。
  3. 确认脚本已启用。
  4. 刷新学习通播放页面 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 = true README 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 生成,更新于 ,以项目官方文档为准。