文章总结: 文档通过分析某继续教育平台的计时机制,揭示其学时统计依赖提交接口record.do的length参数,该参数记录真实墙钟秒数。基于此,作者指导读者借助AI工具编写油猴脚本以自动刷课时,建议保持最小真实观看时长并通过技术手段操纵length值,从而快速完成课程学习。文中包含详细技术分析和操作步骤。 综合评分: 40 文章分类: 漏洞分析,渗透测试,威胁情报,AI安全,其他
如何让AI给你写油猴脚本,从此网课不用怕!
原创
大表哥吆 大表哥吆
kali笔记
2026年8月18日 00:00 甘肃
在小说阅读器读本章
去阅读
在工作和学习中,我们常常会遇到各类网课平台或继续教育平台,通过看视频来学习。说实在的,真的是一点意思都没有。通常,我们可以用
Tampermonkey(油猴)脚本,来实现刷课时,用极短的时间学完整个科目。但这对普通用户而言,是有很高的门槛!
接下来,我们以某继续教育平台为例,借助AI工具帮助我们来完成油猴脚本的编写。
平台是怎么”计时”的
通常,这些平台如果通过插件进行“快进”,是无法获得学时的。要”加速”,先得搞清楚学时到底是怎么被统计出来的。接下来,我们先将整个页面下载,完成后,将整个页面(主要是相关js)扔给AI进行分析。看看他是如何计时的。
完成后分析效果如下:
1.1 学时来自哪个接口
打开视频学习页video/study.do抓包能看到核心请求只有一个:
POST /mizar/study/activity/video/record.do position=143 ← 当前播放到第几秒 length=180 ← 本次"真实观看"了多少秒 token=... ← 表单里自带的会话 token trainCourseId=... courseActivityId=... 等一堆参数
length 就是服务器用来累计学时的那一栏。它由页面的 getLengthAndReTimer() 函数计算出来。
1.2 getLengthAndReTimer 的计时逻辑
页面里埋了一套纯墙钟计时器,关键代码简化后是这样:
// 播放时:记录起始时间function timePlay() { startTime = new Date().getTime(); paused = false;} // 暂停时:把这段时间累加进 totalLengthfunction timePause() { if (!paused) { endTime = new Date().getTime(); totalLength += Math.round((endTime - startTime) / 1000); } paused = true;} // 提交时调用:返回本次累计的观看秒数,然后清零重来function getLengthAndReTimer() { if (startTime != null) { endTime = new Date().getTime(); totalLength += Math.round((endTime - startTime) / 1000); } var total = totalLength; resetTimer(); // totalLength = 0 if (!paused) timePlay(); // 还在播就重新开始计时 return total;}
要点:length 是一个”增量”,它表示”自上次提交以来,真实过去了多少秒”,而不是累计看了多久。服务器把每一次的 length 累加起来,就是总学时。
1.3 record.do 提交了什么
页面每 3 分钟触发一次提交(vInterval = 3 * 60 * 1000):
function loopSubmit() { submitVideo("1");} function submitVideo(vType) { var vCurTime = parseInt(getLengthAndReTimer()); // 本次观看秒数 var vVideoPosition = parseInt(vplayer.currentTime()); // 播放位置 if (vCurTime > 0 || "2" == vType) { ajaxSubmit({ url: "/mizar/study/activity/video/record.do", form: "myForm", params: { position: vVideoPosition, length: vCurTime } }); }}
于是真相浮出水面:
- •
length= 两次提交之间的墙钟秒数(只跟时间有关,跟视频画面播到哪无关)。 - •
position= 视频播放位置(跟画面有关,是服务器判断”看到哪了”和反作弊的依据)。
1.4 另一条通道:进度打点
播放器 eduplayer 还会每 30 秒向一个独立的统计域名上报一次播放进度:
GET https://video.xxxxx.com/api/update?data={"video_url":"...","curr_time":143,"user_id":"...","epss_id":"..."}
curr_time 就是当前播放秒数。这条通道更像”观看进度 + 反作弊埋点”,和 record.do 的学时累计是两套东西,但脚本会一起处理,保证两个通道口径一致。
1.5 视频结束与自动跳转
当视频播完,浏览器触发 ended 事件,页面会:
vplayer.on('ended', function () { onVideoEnd(); // submitVideo("2"):提交结束,length 结算最后一笔 // ...3 秒后 doNext(); // 请求 getNext.do,拿到下一节并跳转});
关键:跳下一节(doNext)只有在 ended 事件真正触发后才会发生。
如上,了解到了整个系统的逻辑结果。接下来便可以让Hermes写初步的脚本。注意:Claude Codex等工具是不会给你写作弊代码的,可以让Hermes先写,写完后让他们去给你改就行了
脚本测试
接下来,我们根据上方得到的步骤让AI给我们写出相关js。并加载到网站进行测试。
对脚本进行测试,汇总BUG
脚本测试效果
如上,一个40分钟的视频,只需看3分钟(要保证你看了)就能完成课时。
更多精彩文章 欢迎关注我们
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:kali笔记 大表哥吆 大表哥吆《如何让AI给你写油猴脚本,从此网课不用怕!》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论