因为疫情原因,要在家上网课,有些像毛概这样的课要刷智慧树的视频,这视频很烦,有防止挂机的机制,中间会弹出来选择题,而且播放完了不会自动下一P。
于是花了十几分钟写了一个自动刷视频的脚本,自动答弹框选择题(只选一个选项),自动跳下一P,挂着就行了。
食用方法
1. 打开智慧树,打开要看的视频
2.按F12打开控制台,点击console
3. 复制以下代码,粘贴到console,按下回车
function qs(el) {
return document.querySelector(el);
}
// 自动点击弹题测验
setInterval(() => {
let que = qs('[aria-label=弹题测验] li.topic-item');
// 如果弹出了题目
if (que) {
// 点击第一个选项
que.click();
// 点击关闭按钮
qs('[aria-label=弹题测验] .btn').click();
// 点击播放按钮
qs('#playButton').click();
log(`完成一次答题`);
}
}, 1000);
function preventStop() {
let oldTime = qs('.currentTime').innerText;
setTimeout(() => {
let nowTime = qs('.currentTime').innerText;
if (nowTime === oldTime) {
// 点击播放按钮
qs('#playButton').click();
}
}, 2000);
}
// 防止播放意外暂停
setInterval(() => {
log(`脚本工作中`);
preventStop();
}, 5000);
// 自动播放下一集
autoPlayNext();
function autoPlayNext() {
const interval = setInterval(() => {
const iconFinish = qs('.clearfix.video.current_play .fl.time_icofinish');
if (iconFinish) {
qs('#nextBtn').click();
log(`播放下一集`);
clearInterval(interval);
setTimeout(() => {
autoPlayNext();
switchToBQ();
scrollSideBarIntoView();
}, 5000);
}
}, 2000);
}
// 自动切换清晰度为流畅,防止播放卡顿
function switchToBQ() {
const switchBtn = qs('.line1bq.switchLine.active');
if (!switchBtn) {
qs('.line1bq.switchLine').click();
log(`切换清晰度至流畅`);
}
}
setTimeout(switchToBQ, 2000);
// 将侧边栏滚动至可视范围
setTimeout(scrollSideBarIntoView, 2000);
function scrollSideBarIntoView() {
qs('.clearfix.video.current_play .fl').scrollIntoView();
}
function log(info) {
const date = new Date();
console.log(`${info} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`);
}
console.log(`脚本开始工作了`);
4. 去干你该干的事情
接下来,把浏览器开着就行,可以把时间用在刀刃上了。