您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
自动加载高清画质;添加倍速播放,数字键1,2,3分别对应1,2,3倍速,4为1.5倍速,5为开启画中画模式; '[' 上一集; ']' 下一集。
// ==UserScript== // @name 优化百度网盘在线播放 // @namespace http://tampermonkey.net/ // @description 自动加载高清画质;添加倍速播放,数字键1,2,3分别对应1,2,3倍速,4为1.5倍速,5为开启画中画模式; '[' 上一集; ']' 下一集。 // @author You // @match https://pan.baidu.com/* // @icon https://nd-static.bdstatic.com/m-static/v20-main/favicon-main.ico // @grant none // @license MIT // @version 1.0.0 // ==/UserScript== (function () { window.addEventListener("keydown", (e) => { if (e.ctrlKey || ![49, 50, 51, 52, 53, 219, 221].includes(e.keyCode)) return; const video = document.querySelector("video"); const controlBtns = document.querySelectorAll( ".vp-video__control-bar--play .vp-video__control-bar--button-group" ); if (!video || !controlBtns.length) return; switch (e.keyCode) { case 49: video.playbackRate = 1; savePlayBackRate(1); break; case 50: video.playbackRate = 2; savePlayBackRate(2); break; case 51: video.playbackRate = 3; savePlayBackRate(3); break; case 52: video.playbackRate = 1.5; savePlayBackRate(1.5); break; case 53: togglePictureInPictureMode(video); break; case 219: controlBtns[1] .querySelector(".vp-video__control-bar--button") .click(); break; case 221: controlBtns[2] .querySelector(".vp-video__control-bar--button") .click(); break; } }); const savePlayBackRate = (playbackRate) => { sessionStorage.setItem("playBackRate", playbackRate); }; const togglePictureInPictureMode = async (video) => { if (video !== document.pictureInPictureElement) { await video.requestPictureInPicture(); } else { await document.exitPictureInPicture(); } }; const mutation = new MutationObserver((mutation) => { for (let m of mutation) { if (m.target.classList && m.target.classList.contains("vjs-tech")) { const btns = document.querySelectorAll( ".vp-video__control-bar--video-resolution .vp-video__control-bar--video-button" ); if (btns.length && !btns[1].classList.contains("is-selected")) { const highDefinitionBtn = btns[1].querySelector("button"); highDefinitionBtn && highDefinitionBtn.click(); } const video = document.querySelector("video"); const playBackRate = sessionStorage.getItem("playBackRate") || 1; if (video && video.playbackRate !== +playBackRate) { video.playbackRate = +playBackRate; } } } }); const config = { childList: true, attributes: true, subtree: true, }; mutation.observe(document.body, config); })();