您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Manipulate and center video elements on web pages. (Zoom, Invert, save per site, Move, Volume boost, Reset changes)
当前为
// ==UserScript== // @name Extra Video Control111 // @version 2.0 // @description Manipulate and center video elements on web pages. (Zoom, Invert, save per site, Move, Volume boost, Reset changes) // @run-at document-start // @match *://*/* // @grant none // @author TallTacoTristan // @license MIT // @namespace https://gf.qytechs.cn/users/1253611 // ==/UserScript== // Declare variables let xaxis = 1.0; let yaxis = 1.0; let xposition = 0; let yposition = 0; // Check if stored values exist for the current site if (localStorage.getItem('xaxis')) { xaxis = parseFloat(localStorage.getItem('xaxis')); yaxis = parseFloat(localStorage.getItem('yaxis')); xposition = parseInt(localStorage.getItem('xposition')); yposition = parseInt(localStorage.getItem('yposition')); } // Apply transformations to all existing video elements applyTransformations(); document.addEventListener('keydown', (event) => { if (event.altKey) { switch (event.keyCode) { case 88: // 'x' key if (event.shiftKey) { if (xaxis < 0) xaxis += 0.04; else xaxis -= 0.04; } else { if (xaxis < 0) xaxis -= 0.04; else xaxis += 0.04; } break; case 89: // 'y' key if (event.shiftKey) { if (yaxis < 0) yaxis += 0.04; else yaxis -= 0.04; } else { if (yaxis < 0) yaxis -= 0.04; else yaxis += 0.04; } break; case 187: // '+' key if (xaxis < 0) xaxis -= 0.04; else xaxis += 0.04; if (yaxis < 0) yaxis -= 0.04; else yaxis += 0.04; break; case 189: // '-' key if (xaxis < 0) xaxis += 0.04; else xaxis -= 0.04; if (yaxis < 0) yaxis += 0.04; else yaxis -= 0.04; break; case 85: // 'u' key (up) yposition -= 20; break; case 72: // 'h' key (left) xposition -= 20 break; case 74: // 'j' key (down) yposition += 20 break; case 75: // 'k' key (right) xposition += 20 break; case 82: // 'r' key (reset) xaxis = 1.0; yaxis = 1.0; xposition = 0; yposition = 0; break; } // Save the transformation values for the current site localStorage.setItem('xaxis', xaxis); localStorage.setItem('yaxis', yaxis); localStorage.setItem('xposition', xposition); localStorage.setItem('yposition', yposition); // Apply transformations to all video elements applyTransformations(); } }); // Function to apply transformations to all video elements function applyTransformations() { document.querySelectorAll('video').forEach(video => { video.style.transform = `scale(${xaxis}, ${yaxis}) translate(${xposition}px, ${yposition}px)`; }); } // Mutation observer to detect changes in the DOM and reapply transformations const config = { childList: true, subtree: true }; const callback = function(mutationsList, observer) { for (const mutation of mutationsList) { if (mutation.type === 'childList') { applyTransformations(); } } }; const observer = new MutationObserver(callback); observer.observe(document, config); //Optional Volume Control, if enabled, pressing shift to boost volume on some sites will break the video, mainly only works with html5 player like yt, uncomment lines to enable //const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); //const gainNode = audioCtx.createGain(); //gainNode.gain.value = 1.0; // Initial gain value //document.addEventListener('keydown', function(event) { //if (event.shiftKey) { //if (event.key === '+') { //gainNode.gain.value = Math.min(gainNode.gain.value + 0.5, 10.0); // Adjust maximum gain as needed //} else if (event.key === '_') { //gainNode.gain.value = Math.max(gainNode.gain.value - 0.5, 0.0); //} //document.querySelectorAll('video').forEach(video => { //const source = audioCtx.createMediaElementSource(video); //source.connect(gainNode); //gainNode.connect(audioCtx.destination); //}); //} //});
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址