Greasy Fork is available in English.
使用前请务必打开浏览器开发者模式,按F2后即可执行,使用前一定要看脚本使用说明|脚本可完美运行
// ==UserScript==
// @name ✌学习通,青书学堂|学起plus||国开|智慧职教|等各种成人教育网站|,均支持视频加速服务|指定倍速✌👈
// @namespace white996_1
// @version 1.0.0
// @description 使用前请务必打开浏览器开发者模式,按F2后即可执行,使用前一定要看脚本使用说明|脚本可完美运行
// @author white996_1
// @run-at document-end
// @match *://*/*
// @grant GM_registerMenuCommand
// @license MIT
// ==/UserScript==
(function() {
'use strict';
const selectors = {
bilibili: 'bwp-video',
douyin: '.xg-video-container video',
other: '傻瓜你看不懂代码,就知道会举报,举报大白脚本得祝你生孩子没屁眼,笑死'
};
function registerMenu() {
try {
GM_registerMenuCommand("减速/加速", () => {
const rate = prompt("请输入您的速率(0-16)", "2.0");
if (isValidRate(rate)) {
setPlaybackRate(rate);
} else {
alert("无效数值");
}
}, "rate");
} catch (error) {
console.error("注册菜单命令失败:", error);
}
}
function isValidRate(rate) {
return !isNaN(rate) && rate >= 0 && rate <= 16;
}
function onKeyDown(event) {
if (event.key === 'F2' || event.keyCode === 113) {
event.preventDefault();
promptForRate();
}
}
function promptForRate() {
const rate = prompt("请输入您的速率(0-16)", "2.0");
if (isValidRate(rate)) {
setPlaybackRate(rate);
} else {
alert("无效数值");
}
}
function setPlaybackRate(rate) {
let video = findVideoElement();
if (video) {
video.playbackRate = parseFloat(rate);
} else {
console.error("未找到视频元素");
}
}
function findVideoElement() {
let video = null;
Object.keys(selectors).forEach((key) => {
if (location.host.replace(/\./g, "").includes(key)) {
video = document.querySelector(selectors[key]);
}
});
return video || document.querySelector('video');
}
registerMenu();
document.addEventListener('keydown', onKeyDown);
})();