Youtube.com Auto Continue Playback

auto resume when playback stops it asks to press 'yes' to continue play, now without delay after pause. Keep playing forever.

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

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

var video_player;
var user_clicked_time=0;
var checkElementID;
function addListeners() {
    video_player.addEventListener('pause', (e) => {
        if(e.srcElement.ended || e.srcElement.seeking){
            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.tagName=="TEXTAREA" || e.target.contentEditable=="true" || e.target.contentEditable==true){
            return;
        }
        else {
            user_clicked_time=new Date().getTime();
        }
    });
    window.addEventListener('pointerup', (e) => {
        if (e.which == 1) {
            user_clicked_time=new Date().getTime();
        }
    });
}

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