Stories

Detail Return Return

長風網視頻—網課刷課腳本&console控制枱粘貼回車即用 - Stories Detail

思路

  • 一些視頻學習網站,在學生觀看一段時間後,就自動暫停,防止學生掛機
  • 針對於這個情況,我們可以寫一個腳本去處理,從而做到電腦不關機
  • 睡覺的時候,也能夠自動播放,就很嗨皮
  • 大致就是,通過setInterval定時檢查判斷視頻狀態
  • 並且派發點擊事件讓視頻播放
  • 這樣的話,就可以掛機了
其他的視頻類網站也是類似的思路...

腳本一

document.querySelector(".btn-play")?.click();

const monitorVideo = () => {
  setTimeout(() => {
    const __video = document.getElementsByTagName("video")[0];
    __video.addEventListener("ended", playNext);
  }, 5000);
};

let todayCnt = 1;
const playNext = () => {
  if (todayCnt > 6) {
    console.log("今天已經學完6集");
    return;
  }

  const list = document.querySelectorAll(".cf-catalog-item1 .cf-catalog-item2");
  let curIdx = 0;
  let curName = list[0].title;
  for (let index = 0; index < list.length; index++) {
    const element = list[index];
    if (element.className.includes("active")) {
      curIdx = index;
      curName = element.title;
    }
  }

  if (++curIdx < list.length) {
    const next = list[curIdx];
    console.log(
      "當前集: " + curName + "已經播放完了\n5s後播放下一集: " + next.title
    );
    next.click();
    setTimeout(() => {
      document.querySelector(".btn-play").click();
      todayCnt++;
      monitorVideo()
    }, 5000);
  } else {
    console.log("您已經學習了全部課程");
  }
};

setInterval(() => {
  const btn1 = document.querySelector(
    ".el-notification .el-notification__closeBtn"
  );
  btn1 && btn1.click();

  const btn2 = document.querySelector(".cf-messagebox-body .enter");
  btn2 && btn2.click();
}, 10000);


monitorVideo()

腳本二

let videoDom = document.querySelector('video')
videoDom.addEventListener('ended', function () { //結束
    nextPlay()
}, false);
function nextPlay() {
    let current = document.querySelector('.cf-catalog-item1 .active')
    let next = current.nextElementSibling
    console.log('當前視頻播放完了,2秒後播放下一個');
    setTimeout(() => {
        simulate(next)
        console.log('兩秒後播放下一個');
        let videoDom = document.querySelector('video')
        console.log('重新綁定視頻結束事件');
        videoDom.addEventListener('ended', function () {
            nextPlay()
        }, false);
        videoDom.play()
    }, 4000);
}
function simulate(dom) {
    dom.dispatchEvent(new MouseEvent('click', {
        bubbles: true,
        cancelable: true,
        view: window,
    }))
}
setInterval(() => {
    let box = document.querySelector('.cf-messagebox-body')
    if (box) {
        console.log('彈框出現,模擬點擊按鈕,繼續刷課');
        let btn = box.querySelector('button')
        simulate(btn)
    } else {
        console.log('彈框未出現,等待之');
    }
}, 5000);

參考文章1:使用js進行智慧樹刷課

參考文章2:video標籤屬性

user avatar yinzhixiaxue Avatar zhoumo_62382eba4b454 Avatar fisher_feng Avatar dengzhanyong Avatar zhangfeidezhu Avatar niewj Avatar pinmingxueqianduandelaji Avatar _60c4a10050259 Avatar meiyounvpengyoudeqikeng Avatar faker_5acebe0256c30 Avatar gplml Avatar houbinbin Avatar
Favorites 13 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.