有一个视频教学的网站,我必须看完,而且视频不会自动播放下一个防止你不看,写个脚本让它自动播放下一个。

因为你不知道具体是哪个网站,这个脚本对你没啥用,仅供参考。

代码的逻辑是,首先试着点下一视频,如果不能点,再点播放列表。跳转后,获取视频的总时间,设置定时器定时翻页。

代码如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function next() {
const selector_banner = '.sm-hc-list > ul > li[class$="active"] + li > a';
const selector_list = 'dd[class$="active"] + dd > span';
const ele_banner = document.querySelector(selector_banner);
if (ele_banner === null) {
const ele_dd = document.querySelector(selector_list);
if (ele_dd !== null) {
ele_dd.click();
setTimeout(
function () {
const sec = get_duration();
if (sec !== -1) setTimeout('next()', sec * 1000);
}, 60 * 1000);
}
}
else {
ele_banner.click();
setTimeout(
function () {
const sec = get_duration();
if (sec !== -1) setTimeout('next()', sec * 1000);
}, 60 * 1000);
}
}

function get_duration() {
const selector_display = 'div.vjs-duration-display';
const ele_duration = document.querySelector(selector_display);

if (ele_duration !== null) {
const str_time = ele_duration.textContent.substring(3);
const arr_time = str_time.split(":");
let sec = 0;
for (let i = arr_time.length - 1, t = 1; i >= 0; i--, t *= 60) {
sec += arr_time[i] * t;
}
return sec;
}
return -1;
}

(function () {
var s = get_duration();
if (s !== -1) setTimeout('next()', s * 1000);
} ());