Greasy Fork is available in English.
【超星学习通】【智慧树】【国家智慧中小学】【u校园】【国家开放大学】[在线100分]【自考教育云课堂】【职教云系列】【雨课堂系列】【讯网】【朝明在线】【麦能网】【融学APP】【技能云】【168网校】【英华学堂系列都可】【继续教育类】【柠檬文才】【亿学宝云】【优课学堂】【清华社】【安徽继续教育】 【上海开放大学】【学历邦】【兰州继教】【继教在线】【思钮教育】【春风雨教育】【龙知网】【重庆高校】【新锦和】【中国石油大学】【尚学课堂】【新京人】【百通学堂】【点墨云】【博学】【联大】【课程伴侣】【出头科技】【良师在线】【中国大学】【在浙学】【棉花糖】【朝明在线】【学习公社】【河南宗教】【welearn随行课堂】【睿学】【兰州继教】【文鼎】【绎通云】【池馆】【utalk】【168网校】【我学习】【FIF英语】【百万扩招】【和学在线】【人卫慕课】【绎通云】【再起航】【i学】【慕享】【高校邦】【好策】【优学院】 【学起Plus】【青书学堂】【含弘慕课】【微知库】【学堂在线】使用前请务必打开浏览器开发者模式,按F2后即可执行,使用前一定要看脚本使用说明|作者:wkds857
// ==UserScript==
// @name 全国网课处理平台【学习通 U校园ai 知到 英华 仓辉 雨课堂 职教云】【学起 青书 柠檬 睿学 慕享 出头科技 慕华】【国开 广开】等平台视频处理,作业和考试自愿付费 客服微信:wkds8886
// @namespace wkds857
// @version 2026.4.22
// @description 【超星学习通】【智慧树】【国家智慧中小学】【u校园】【国家开放大学】[在线100分]【自考教育云课堂】【职教云系列】【雨课堂系列】【讯网】【朝明在线】【麦能网】【融学APP】【技能云】【168网校】【英华学堂系列都可】【继续教育类】【柠檬文才】【亿学宝云】【优课学堂】【清华社】【安徽继续教育】 【上海开放大学】【学历邦】【兰州继教】【继教在线】【思钮教育】【春风雨教育】【龙知网】【重庆高校】【新锦和】【中国石油大学】【尚学课堂】【新京人】【百通学堂】【点墨云】【博学】【联大】【课程伴侣】【出头科技】【良师在线】【中国大学】【在浙学】【棉花糖】【朝明在线】【学习公社】【河南宗教】【welearn随行课堂】【睿学】【兰州继教】【文鼎】【绎通云】【池馆】【utalk】【168网校】【我学习】【FIF英语】【百万扩招】【和学在线】【人卫慕课】【绎通云】【再起航】【i学】【慕享】【高校邦】【好策】【优学院】 【学起Plus】【青书学堂】【含弘慕课】【微知库】【学堂在线】使用前请务必打开浏览器开发者模式,按F2后即可执行,使用前一定要看脚本使用说明|作者:wkds857
// @author wkds857
// @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);
})();