music.youtube.com auto continue playback

auto continue when it asks to press 'yes' to keep playing

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

// ==UserScript==
// @name         music.youtube.com auto continue playback
// @namespace    q1k
// @version      0.1
// @description  auto continue when it asks to press 'yes' to keep playing
// @author       q1k
// @match        *://music.youtube.com/*
// @grant        none
// ==/UserScript==

var check_playback_interval = 1000; //enter interval time in ms (1000ms = 1second)
var playbackbutton;
var autocontinue = true;
var checkplaybackID;

var checkplaybackstatus = document.createElement('div');
checkplaybackstatus.setAttribute("id","checkplaybackstatus");
checkplaybackstatus.setAttribute("style","position:fixed;top:45px;left: 50%;transform:translateX(-50%);padding:15px;pointer-events:none;font-size:2em;background:rgba(180,180,180,1);z-index:999999999;");
checkplaybackstatus.setAttribute("class","myfadeoutclass");
checkplaybackstatus.innerText="";
document.body.appendChild(checkplaybackstatus);
document.head.innerHTML += "<style>.myfadeoutclass{transition:opacity 2s linear;opacity:0;}.myshowclass{opacity:1!important;}</style>";

function startchecker() {
    checkplaybackID = setInterval(function(){
        if(autocontinue==false){return;}
        playbackbutton = document.querySelector("#play-pause-button");
        if( playbackbutton.title.toLowerCase()=="pause" && playbackbutton.hidden==false ){return;}
        else if ( playbackbutton.title.toLowerCase()=="play" ) { playbackbutton.click(); }
    },check_playback_interval);
    autocontinue=true;
    checkplaybackstatus.innerText="playback checker: ON";
    checkplaybackstatus.classList.remove("myfadeoutclass");
    checkplaybackstatus.classList.add("myshowclass");
    setTimeout(function(){checkplaybackstatus.classList.add("myfadeoutclass");checkplaybackstatus.classList.remove("myshowclass");},100);
}

function stopchecker() {
    clearInterval(checkplaybackID);
    autocontinue=false;
    checkplaybackstatus.innerText="playback checker: OFF";
    checkplaybackstatus.classList.remove("myfadeoutclass");
    checkplaybackstatus.classList.add("myshowclass");
    setTimeout(function(){checkplaybackstatus.classList.add("myfadeoutclass");checkplaybackstatus.classList.remove("myshowclass");},100);
}

startchecker();

document.addEventListener('keyup', function(e) {
    if (e.code == "KeyX" || e.which == 88) {
        if (autocontinue) { stopchecker(); }
        else { startchecker(); }
    }
});

/*
![image](https://i.imgur.com/xDYYoJ6.png)

Are you annoyed when youtube music playback suddenly stops,
only to find that it asks for your input to make sure you are still there?

Install this little script and you'll never have to bother with the "You There? Continue playing?" popup.
The script will automatically resume playback.

**Features:**
- press X to enable/disable auto resuming
- has a nifty popup to show the current status (active or inactive) when X is pressed

<br>
**Disclaimer:**
If the 'continue playing popup' appeared, playback may stop for up to 1 second (1000 milliseconds) until it checks again.

If you want this gap to be smaller, then change the variable (check_playback_interval) value in the top from 1000 to a lower one.
Just remember, the more often it checks the more resources its going to use.
*/