Youtube.com Auto Continue Playback

auto continue when playback stops it asks to press 'yes' to keep playing, now without delay

目前为 2022-02-03 提交的版本。查看 最新版本

// ==UserScript==
// @name         Youtube.com Auto Continue Playback
// @namespace    q1k
// @version      2.0.0
// @description  auto continue when playback stops it asks to press 'yes' to keep playing, now without delay
// @author       q1k
// @match        *://music.youtube.com/*
// @include      *://www.youtube.com/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==


var video_player;
var user_clicked_time=0;
function addListeners() {
    video_player.addEventListener('pause', (e) => {
        if(e.srcElement.ended){
            return;
        }
        if(user_clicked_time>0){
            let temp_time=new Date().getTime();
            if(temp_time - user_clicked_time < 1000) {
                return;
            }
        }
        e.srcElement.play();
    });
    window.addEventListener('keydown', (e) => {
        if (e.target.tagName=="INPUT" || e.target.contentEditable=="true" || e.target.contentEditable==true){
            return;
        }
        else {
            user_clicked_time=new Date().getTime();
        }
    });
    window.addEventListener('mouseup', (e) => {
        if (e.which == 1) {
            user_clicked_time=new Date().getTime();
        }
    });
}

var checkElementID;
function startElementChecker(){
    if(document.domain=="music.youtube.com"){
        checkElementID = setInterval(function(){
            if ( (typeof(document.querySelector("#song-video #movie_player .html5-video-container video")) == undefined || document.querySelector("#song-video #movie_player .html5-video-container video") == null) ) {
                return;
            }
            video_player = document.querySelector("#song-video #movie_player .html5-video-container video");
            addListeners();
            clearInterval(checkElementID);
        },1000);
    } else if(document.domain=="www.youtube.com"){
        checkElementID = setInterval(function(){
            if ( (typeof(document.querySelector("#ytd-player #movie_player .html5-video-container video")) == undefined || document.querySelector("#ytd-player #movie_player .html5-video-container video") == null) ) {
                return;
            }
            video_player = document.querySelector("#ytd-player #movie_player .html5-video-container video");
            addListeners();
            clearInterval(checkElementID);
        },1000);
    }
}
startElementChecker();