您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Customize YouTube skip time by arrow key and block Numpad0~Numpad9 function
// ==UserScript== // @name YouTube Skip Time Customizer // @namespace http://tampermonkey.net/ // @version 2.3 // @description Customize YouTube skip time by arrow key and block Numpad0~Numpad9 function // @author TrainingDummy1 // @match https://www.youtube.com/watch* // @match https://www.youtube.com/shorts* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // You can change this constant to customize skip time const step = 2; const video = document.querySelector('video'); if(!video) { console.error('비디오 요소를 찾을 수 없습니다.'); return; } document.addEventListener('keydown', function(event) { // 입력이 콘텐츠 편집 영역에서 발생하지 않는지 확인 if(event.target.getAttribute('contenteditable') !== 'true' && event.target.id !== 'contenteditable-root') { // ArrowRight 또는 ArrowLeft 키 눌렀을 때 if(event.key === 'ArrowRight' || event.key === 'ArrowLeft') { event.preventDefault(); event.stopPropagation(); const direction = event.key === 'ArrowRight' ? 1 : -1; const targetTime = Math.max(0, Math.min(video.duration, video.currentTime + direction * step)); // 정확하게 이동하기 위한 보정 함수 let retries = 0; const maxRetries = 5; const tolerance = 0.15; function accurateSeek() { video.currentTime = targetTime; if(Math.abs(video.currentTime - targetTime) < tolerance || retries >= maxRetries) { return; } retries++; setTimeout(accurateSeek, 100); } accurateSeek(); } // Numpad 동작 차단 else if(event.code.match(/Numpad\d/)) { event.preventDefault(); event.stopPropagation(); } } }, true); console.log(`화살표 키로 정확하게 ${step}초씩 이동하는 기능이 활성화되었습니다.`); })();