学堂在线自动刷课代码脚本-自动播放下一节

学堂在线自动刷课代码

        2020-6-9:有网友留言说2倍播放不能用,我之前没太注意,然后自己试了一下的确有问题,近些天尝试看能不能修复吧,临近期末,事情也比较多了,望谅解,大家就先凑合着用吧
        补更2020-6-8:把跳过讨论版的代码也分享了出来——跳过讨论版
        补更2020-4-20:不知道为什么之前用jquery语法写的用了一段时间会报错,索性直接改成了用原生javascript语法

        疫情期间学校开展了网课,网课竟然是在学堂在线上面找了一些课程视频让我们自己刷。不得吐槽一下课节又多,时间又长,放完一节视频还不自动跳到下一节,每次还得自己调播放倍速,真麻烦。想投机取巧,在网上找了好久也没找到合适的刷课代码,算了,自己尝试写一个吧。

使用方法:

  1. 进入到相对应的课程界面(有视频列表的那个页面)
  2. 打开浏览器,按F12调出控制台,进入控制台(console)
  3. 复制下面代码,在控制台粘贴,并按回车
  4. 在视频列表双击你要开始的视频
  5. 视频在5秒后会自动2.0倍速播放、自动关闭视频声音、本节看完后会自动跳转到下一个视频、自动跳过作业列
  6. 暂停视频播放,控制台输入stop(); 继续播放控制台输入start();
  7. 当跳到视频列表目录的“讨论-*”不会自动跳下一节,需要手动跳过
  8. 花了一些时间重新写了一个代码,把跳过讨论的功能给实现了,如果有跳过讨论需求的可以进这篇博客跳过讨论版

具体代码:

start();
var runIt;
//开始视频播放
function start(){
    sta = document.getElementsByClassName("play-btn-tip")[0];
    console.log(sta);
    
    console.log("播放----");
    window.clearInterval(runIt);

    runIt= setInterval(next,5000);
    if(sta.innerText == "播放"){
        console.log("开始播放视频");
        document.getElementsByClassName("play-btn-tip")[0].click();
    }
}

//停止视频播放
function stop(){
	start();
    clearInterval(runIt);
    console.log("暂停----");
    if(sta.innerText == "暂停"){
        console.log("暂停视频");
        document.getElementsByClassName("play-btn-tip")[0].click();
    }
}

//跳转下一节视频
function next(){
    var video = document.getElementsByClassName("xt_video_player")[0];
    if(video == undefined){
        document.getElementsByClassName("next")[0].click();
        console.log("作业,5秒后跳转下一个视频");
    }
    else if(video.length != 0){
        var staNow = document.getElementsByClassName("play-btn-tip")[0];
        if(staNow.innerText == "播放"){
            console.log("播放视频");
            staNow .click();
        }
        var c= video.currentTime;
        var d = video.duration;
        //不想关闭声音可以把此行代码删掉
        soundClose();
        speed();
        //视频播放进度超过95%跳转下一节视频
        if((c/d)>0.95){
            document.getElementsByClassName("next")[0].click();
            console.log("跳转到下一节");
            console.log("本节观看百分比"+c/d);  
        }
    }else {
        console.log("未知错误!");
    }
}
//关闭视频声音
function soundClose(){
    var sound = document.getElementsByClassName("xt_video_player_common_icon_muted");
    if(sound.length == 0){
        document.getElementsByClassName("xt_video_player_common_icon")[0].click();
        console.log("视频声音关闭");
    }
}
//播放速度2.0
function speed(){
    var speed = document.getElementsByClassName("xt_video_player_common_list")[0];
    var speedChild = speed.firstChild;
    speedChild.click();
    console.log("倍速点击了2.0");
}

截图:

注:

  1. 由于网站不定期会有代码变动,所以该脚本代码也不知道什么时候就会不能用了,2020/4/20亲测可用。脚本代码较简单,若不能使用可以留言,有编程基础的同学也可以自己试着看看或改改。
  2. 本人只在edge和谷歌浏览器中进行过测试,是可以运行的
  3. 该代码只是模拟鼠标点击而已,并不存在封号什么的。
  4. 学校开展课程的目的还是为了让大家学到知识,不要一味的为了完成任务而盲目的用脚本刷课。
  5. 转载请注明出处,谢谢

你可能感兴趣的:(javascript,html5)