YouTube - Ctrl+矢印キーで1秒づつシーク

Ctrl+矢印キーで1秒づつシークします 小数点以下を丸めてシークするのでタイムスタンプの作成に便利です

目前为 2019-08-09 提交的版本。查看 最新版本

// ==UserScript==
// @name         YouTube - Ctrl+矢印キーで1秒づつシーク
// @namespace    https://twitter.com/4chouyou
// @version      0.0.1
// @description  Ctrl+矢印キーで1秒づつシークします 小数点以下を丸めてシークするのでタイムスタンプの作成に便利です
// @author       mufuuuu
// @match        https://www.youtube.com/*
// @grant        none
// @noframes
// ==/UserScript==
/* jshint esversion: 6 */

(function() {
    window.addEventListener('keydown', (e) => {
        let keyCode = e.keyCode;
        if(e.ctrlKey) { // Ctrlキーが押下されている
            if(!document.activeElement.classList.contains('ytp-volume-panel')) { // 音量調節にフォーカスがない
                if(!isInputElement(document.activeElement)) { // 文字入力中ではない
                    if(keyCode === 37) { // Left arrow key
                        seekVideo(-1); // 1sec戻る
                    }
                    if(keyCode === 39) { // Right arrow key
                        seekVideo(1); // 1sec進む
                    }
                }
            }
        }
    });

    function seekVideo(sec) {
        let video = document.querySelector('#movie_player > div.html5-video-container > video');
        if(video) {
            let targetTime = Math.max(0, video.currentTime + sec);
            targetTime = (sec > 0 || !video.paused) ? Math.floor(targetTime) : Math.ceil(targetTime);
            video.currentTime = targetTime;
        }
    }

    function isInputElement(target) {
        let element = target;
        if(element.nodeType == 3) element = element.parentNode;
        return (element.tagName == 'INPUT' || element.tagName == 'TEXTAREA' || element.getAttribute('contenteditable') == 'true');
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址