SmartEdu Watch Helper 是一个面向在线课程页面的用户脚本,主要用于辅助课程视频播放、进度查看和自动切换下一节资源。
目前它主要针对以下两个站点做了兼容:
爱课程网:service.icourses.cn
国家高等教育智慧教育平台:higher.smartedu.cn
如果你经常需要在这两个平台上连续学习视频课程,或者正在做课程页面自动化测试,这个脚本会比较省事。
这个脚本的目标不是“替代平台本身”,而是在不破坏页面原有逻辑的前提下,尽量补一层轻量的学习辅助能力。
脚本能做什么
1. 自动播放课程视频
进入课程页面后,脚本会识别当前页面中的视频资源,并尽量通过页面原生入口启动播放。
这样做的好处是:
比直接裸调原生播放方法更稳
更容易保留平台自己的播放状态同步
更不容易破坏页面原有进度逻辑
2. 视频结束后自动切换下一节
在支持的课程页面中,脚本会在当前视频播放完成后尝试自动切换到下一节或下一条视频资源。
目前分别做了两类兼容:
对爱课程网章节树页面,自动识别下一节课程资源
对智慧教育平台资源卡片页面,自动切换到下一张资源卡
3. 显示学习辅助面板
脚本会在页面右下角注入一个浮动面板,用于展示当前识别到的学习信息。这块面板更适合拿来做学习辅助和脚本调试。
面板通常包括:
当前播放状态
当前课程标题
当前课程进度
下一节提示
总体学习进度
学习记录摘要
倍速和静音快捷控制
4. 展示课程进度信息
脚本会尽量结合页面已有信息,显示课程相关进度,例如当前节的播放进度、课程树中每节课后的已观看百分比、总体学习进度摘要以及视频数量和总时长等辅助信息。
需要说明的是,这些信息有时来自页面本身,有时来自脚本本地状态,所以它更适合作为“辅助展示”,而不是平台官方唯一依据。
5. 自动展开章节
在爱课程网的章节树型课程页面中,脚本会尝试自动展开课程章节,方便识别全部课程资源。
这样做主要是为了:
提高“自动切换下一节”的命中率
减少手动点开章节的操作
让课程资源结构更清晰
6. 简单播放控制
面板提供了几个快捷按钮:减速、加速、静音切换、重置本地记录。适合快速调试播放状态,不需要总去点播放器控件。
当前支持范围
已适配页面
爱课程网课程资源页
国家高等教育智慧教育平台全局
智慧教育平台独立资源卡片页
不保证支持的情况
其他域名或课程系统
平台后续大改版后的页面结构
完全不同播放器或资源树结构的特殊课程页
依赖额外授权、强登录态或更严格跨域策略的页面
使用方法
安装方式
建议先安装任意一个用户脚本扩展,例如:Tampermonkey、ScriptCat。然后把脚本导入扩展并启用。
使用步骤
打开支持的网站课程页面
等待页面加载完成
脚本会自动注入右下角辅助面板
如果页面存在可自动播放的视频,脚本会尝试自动启动
视频结束后,脚本会尝试自动切换到下一节或下一条资源
面板里能看到什么
脚本面板中的信息一般包括:
状态:当前是否播放中、倍速、静音状态
当前:脚本识别到的当前视频标题
本节:当前视频对应的进度
下一节提示:脚本推断出的下一条资源
总进度:脚本汇总出的整体进度
学习记录:脚本可读取到的课程学习摘要
这部分信息主要是为了方便查看和调试,不需要频繁切回平台其他区域。
适合什么场景
这个脚本更适合下面这些用途:
顺序学习同一门课的多个视频资源
测试课程页面的自动播放逻辑
测试课程页面的自动切换逻辑
个人学习效率增强
前端页面自动化联调
需要注意的几点
1. 它是辅助脚本,不是平台官方功能
平台最终是否认定为有效学习记录,仍然以平台自身逻辑和服务端判定为准。
2. 不同页面的自动化强度不一样
有的页面可以稳定实现自动播放和自动切换,有的页面可能只适合做进度辅助展示。因为不同课程页的前端结构、播放器类型、弹层逻辑都可能不同。
3. 平台更新后可能需要重新适配
如果站点前端改版,原来的章节树结构、资源卡结构、播放器弹层结构或按钮类名都可能变化,这时脚本逻辑就要跟着更新。
常见问题
为什么有时能自动播放,但进度显示不完全一致?
因为不同页面里可读取的数据来源不同:有些来自页面 DOM,有些来自平台已有进度展示,有些来自脚本本地辅助状态。所以面板进度是辅助信息,不一定和平台页面所有位置完全一致。
为什么有时自动下一节不生效?
常见原因有:页面结构发生变化、章节没有正确展开、当前资源列表不是顺序课程树,或者平台在视频结束后先执行了自己的弹层或状态切换。
为什么某些页面要单独做兼容?
因为不同课程页虽然都在同一平台体系内,但实际使用的前端结构可能完全不同。例如爱课程网常见的是章节树结构,而部分高教平台页面更像资源卡加弹层播放器结构。如果强行共用一套逻辑,反而容易互相影响。
结语
如果你本身就在爱课程网或国家高等教育智慧教育平台上高频学习,这类辅助脚本的价值主要不在“花哨”,而在于减少重复点击、提高顺序播放效率、补足页面本身不够顺手的部分。
脚本的目标一直比较明确:尽量不破坏平台原有行为,优先适配真实页面结构,在可控范围内增强学习体验。






还没有评论,来说两句吧...