您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
hot key: '+','-' adjust speed; 'I' rotate left; 'O' rotate right; 'U' mirror; 'R' reset
// ==UserScript== // @name YuoTubeQuickDo // @namespace https://gist.github.com/jeayu // @version 0.0.1 // @description hot key: '+','-' adjust speed; 'I' rotate left; 'O' rotate right; 'U' mirror; 'R' reset // @author jeayu // @license MIT // @match *://www.youtube.com/watch?* // ==/UserScript== (function () { 'use strict'; const q = (query) => document.querySelectorAll(query); const qI = (query) => document.getElementById(query); const qT = (query) => document.getElementsByTagName(query); const YuoTubeQuickDo = { keyCode: { 'enter': 13, 'esc': 27, '=+': 187, '-_': 189, '+': 107, '-': 109, '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57, 'a': 65, 'b': 66, 'c': 67, 'd': 68, 'e': 69, 'f': 70, 'g': 71, 'h': 72, 'i': 73, 'j': 74, 'k': 75, 'l': 76, 'm': 77, 'n': 78, 'o': 79, 'p': 80, 'q': 81, 'r': 82, 's': 83, 't': 84, 'u': 85, 'v': 86, 'w': 87, 'x': 88, 'y': 89, 'z': 90, }, config: { quickDo: { 'addSpeed': '=+', 'subSpeed': '-_', 'mirror': 'u', 'rotateRight': 'o', 'rotateLeft': 'i', 'reset': 'r', }, }, getKeyCode: function (type) { return this.keyCode[this.config.quickDo[type]]; }, bindKeydown: function () { document.addEventListener("keydown", e => { if (q('input:focus, textarea:focus').length <= 0) { if (!e.ctrlKey && !e.shiftKey && !e.altKey) { this.keyHandler(e.keyCode); } } }, true); }, keyHandler: function (keyCode) { const h5Player = qT('video')[0]; if (keyCode === this.getKeyCode('addSpeed') && h5Player.playbackRate < 4) { h5Player.playbackRate += 0.25; } else if (keyCode === this.getKeyCode('subSpeed') && h5Player.playbackRate > 0.5) { h5Player.playbackRate -= 0.25; } else if (keyCode === this.getKeyCode('rotateRight')) { this.h5PlayerRotate(1); } else if (keyCode === this.getKeyCode('rotateLeft')) { this.h5PlayerRotate(-1); } else if (keyCode === this.getKeyCode('mirror')) { if (this.getTransformCss(h5Player) != 'none') { this.setH5PlayerRransform(''); } else { this.setH5PlayerRransform('rotateY(180deg)'); } } else if (keyCode === this.getKeyCode('reset')) { h5Player.playbackRate = 1; this.setH5PlayerRransform(''); } }, h5PlayerRotate: function (flag) { const h5Player = qT('video')[0]; const deg = this.rotationDeg(h5Player) + 90 * flag; let transform = `rotate(${deg}deg)`; if (deg == 0 || deg == 180 * flag) { transform += ` scale(1)`; } else { transform += ` scale(${h5Player.videoHeight / h5Player.videoWidth})`; } this.setH5PlayerRransform(transform); }, setH5PlayerRransform: function (transform) { qT('video')[0].style.transform = transform; }, getTransformCss: function (e) { return getComputedStyle(e).transform; }, rotationDeg: function (e) { const transformCss = this.getTransformCss(e); let matrix = transformCss.match('matrix\\((.*)\\)'); if (matrix) { matrix = matrix[1].split(','); if (matrix) { const rad = Math.atan2(matrix[1], matrix[0]); return parseFloat((rad * 180 / Math.PI).toFixed(1)); } } return 0; }, init: function () { this.bindKeydown(); } }; YuoTubeQuickDo.init(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址