Youtube.com Auto Continue Playback

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

Verze ze dne 04. 02. 2022. Zobrazit nejnovější verzi.

// ==UserScript==
// @name         Youtube.com Auto Continue Playback
// @namespace    q1k
// @version      2.1.0
// @description  auto resume when playback stops it asks to press 'yes' to continue playing, 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){
            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();