视频播放结束后自动跳转到下一个未播放的视频
// ==UserScript==
// @name 自动跳转到下一个未播放的视频
// @namespace http://tampermonkey.net/
// @version 0.3
// @description 视频播放结束后自动跳转到下一个未播放的视频
// @license Proprietary
// @author PASSIONYOUNGZ
// @match https://sydw.hnu.edu.cn/course/*/task/*/show // 修改为更通用的匹配
// @grant none
// ==/UserScript==
(function () {
'use strict';
// 获取当前页面的视频元素
function getVideo() {
return document.querySelector("video");
}
// 获取当前视频播放时间
function getCurTime() {
let video = getVideo();
return video ? video.currentTime : 0;
}
// 获取视频总时长
function getTotalTime() {
let video = getVideo();
return video ? video.duration : 0;
}
// 检查视频是否播放完毕
function isPlayFinish() {
return getCurTime() + 5 >= getTotalTime(); // 5秒内视为播放完成
}
// 查找目录中未解锁的视频链接
function getNextUnwatchedVideoLink() {
let taskItems = document.querySelectorAll(".task-item.task-content .mouse-enter.color-warning");
if (taskItems.length > 0) {
let nextVideoLink = taskItems[0].closest('li').querySelector('a.title').getAttribute('href');
return nextVideoLink;
}
return null;
}
// 模拟跳转到下一个未播放的视频
function goToNextVideo() {
let nextVideoLink = getNextUnwatchedVideoLink();
if (nextVideoLink) {
console.log("正在跳转到下一个未播放的视频: " + nextVideoLink);
window.location.href = nextVideoLink; // 跳转到下一个视频
} else {
console.log("没有找到未播放的视频任务");
}
}
// 视频播放完后执行跳转
function checkVideoFinish() {
let video = getVideo();
if (!video) return;
video.addEventListener('ended', function () {
console.log("视频播放结束,准备跳转到下一个视频");
goToNextVideo(); // 跳转到下一个未播放的视频
});
}
// 页面加载完成后初始化检查
window.addEventListener('load', function () {
setTimeout(function () {
checkVideoFinish(); // 延迟执行,确保视频元素已加载
}, 1000);
});
})();