Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Nomes77 committed Feb 10, 2023
1 parent f9df118 commit 1a8778e
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 53 deletions.
41 changes: 36 additions & 5 deletions autoconfirm.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,51 @@
// 1. Method: Set last time active all 10 minutes to now | Does probably not help
setInterval(() => window._lact = Date.now(), 600000);

// 2. Method: Looks for popup and override pause button
// Declare constants
const YTMusic = window.location.hostname === 'music.youtube.com';
const appName = YTMusic ? 'ytmusic-app' : 'ytd-app';
const popupEventNodename = YTMusic ? 'YTMUSIC-YOU-THERE-RENDERER' : 'YT-CONFIRM-DIALOG-RENDERER';
const popupContainer = YTMusic ? 'ytmusic-popup-container' : 'ytd-popup-container';
const videoElement = document.querySelector('video');
const playButtonPause = YTMusic ? '#play-pause-button[title="Pause"]' : '.ytp-play-button[data-title-no-tooltip="Pause"]';
const playButtonPlay = YTMusic ? '#play-pause-button[title="Play"]' : '.ytp-play-button[data-title-no-tooltip="Play"]';

// General functions
function asDoubleDigit(value) {
return value < 10 ? '0' + value : value;
}
function getTimestamp() {
let dt = new Date();
let time = asDoubleDigit(dt.getHours()) + ':' + asDoubleDigit(dt.getMinutes()) + ':' + asDoubleDigit(dt.getSeconds());
return time;
}
function log(message) {
console.log(`[YT-Nonstop | ${getTimestamp()}] ${message}`);
}

// 1. Method: Set last time active all 10 minutes to now | Does probably not help
setInterval(() => {
window._lact = Date.now();
log('Reset last time active');
},
600000);

// 2. Method: Looks for popup
function listenForPopupEvent() {
document.addEventListener('yt-popup-opened', (e) => {
if (e.detail.nodeName === popupEventNodename) {
document.querySelector(popupContainer).handleClosePopupAction_();
videoElement.play();
log('Popup hidden and video played again');
}
});
}

listenForPopupEvent();

// 3. Method: Pause and UnPause after 30 minutes
setInterval(() => {
if (window.location.href.indexOf("/watch") == -1 ) return;
if (playButtonPause) {
document.querySelector(playButtonPause).click();
document.querySelector(playButtonPlay).click();
log('Paused and unpaused video');
}
},
1800000);
104 changes: 57 additions & 47 deletions autoskip.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,76 +29,86 @@ let YTNonstop = (function YTNonstop(options) {
// .getPlayerState(): -1 = unstarted, 0 = ended, 1 = playing, 2 = paused, 3 = buffering, 5 = video cued
// if video ended ---> skip to next video
const skip = () => {
if (autotube.getIsAutoSkip() == true && player().getPlayerState() === 0) {
player().setAutonav(true);
if (player().getPlayerState() === 0 && !YTMusic) {
const overlay = document.querySelector('.ytp-autonav-endscreen-countdown-overlay[style="display: none;"]');
const play = document.querySelector('.ytp-autonav-endscreen-upnext-play-button');
const cancel = document.querySelector('.ytp-autonav-endscreen-upnext-cancel-button');

const playList = player().getPlaylist();
const currentIndex = player().getPlaylistIndex();
const loop = document.querySelector('#playlist-action-menu ytd-playlist-loop-button-renderer button[aria-label] path[d="M20,14h2v5L5.84,19.02l1.77,1.77l-1.41,1.41L1.99,18l4.21-4.21l1.41,1.41l-1.82,1.82L20,17V14z M4,7l14.21-0.02l-1.82,1.82 l1.41,1.41L22.01,6l-4.21-4.21l-1.41,1.41l1.77,1.77L2,5v6h2V7z"]')
|| document.querySelector('#playlist-action-menu ytd-playlist-loop-button-renderer button[aria-label] path[d="M13,15h-1.37v-4.52l-1.3,0.38v-1L12.83,9H13V15z M20,17L5.79,17.02l1.82-1.82l-1.41-1.41L1.99,18l4.21,4.21l1.41-1.41 l-1.77-1.77L22,19v-5h-2V17z M4,7l14.21-0.02l-1.82,1.82l1.41,1.41L22.01,6l-4.21-4.21l-1.41,1.41l1.77,1.77L2,5v6h2V7z"]');
const shuffle = document.querySelector('#playlist-action-menu ytd-toggle-button-renderer button[aria-label][aria-pressed="true"]');

if (playList === null || playList === undefined) {
return player().nextVideo();
} else
if (loop || shuffle) {
if (overlay) {
log('Return skip; autonav-endscreen is not visible.');
return;
} else {
playList.length - 1 == currentIndex
? player().nextVideo()
: player().playVideoAt(currentIndex + 1);
} else
if (autotube.getIsAutoSkip() == true) {
play.click();
log('Skipped to next video');
} else
if (autotube.getIsAutoSkip() == false) {
// player().setAutonav(false);
cancel.click();
document.querySelector('.ytp-autonav-endscreen-countdown-overlay').remove();
log('Canceled next video');
}
} else {
player().setAutonav(false);
}
}

const autonav_button = () => {
const autonav_on = document.querySelector('.ytp-autonav-toggle-button-container > .ytp-autonav-toggle-button[aria-checked="true"]')
|| document.querySelector('#automix[role="button"][aria-pressed="true"]');
const autonav_off = document.querySelector('.ytp-autonav-toggle-button-container > .ytp-autonav-toggle-button[aria-checked="false"]')
|| document.querySelector('#automix[role="button"][aria-pressed="false"]');

if (autotube.getIsAutoSkip() == true && autonav_off) {
autonav_off.click();
log('Enabled autoplay/autonav');
} else
if (autotube.getIsAutoSkip() == false && autonav_on) {
autonav_on.click();
log('Disabled autoplay/autonav');
}
}

const autonav_button_style = () => {
const autonav = document.querySelector('.ytp-button[data-tooltip-target-id="ytp-autonav-toggle-button"]')
|| document.querySelector('ytmusic-app .autoplay.ytmusic-tab-renderer');

autonav.setAttribute("style", "height:0px; width:0px; opacity:0");
log('Hide autoplay/autonav, since the button is overriden');
}

function run() {
const play_button = {
getButton: window.document.querySelector('.ytp-play-button.ytp-button') || window.document.getElementById('play-pause-button'),
getButton: window.document.querySelector('.ytp-play-button.ytp-button')
|| window.document.getElementById('play-pause-button'),
config: { attributes: true, childList: true, subtree: true },
callback: (mutationsList, observer) => {
skip();
}
}

const autoplay_button = {
getButton: window.document.querySelector('#movie_player .ytp-progress-bar')
|| window.document.querySelector('#movie_player .ytmusic-player-bar#progress-bar'),
config: { attributes: true },
callback: (mutationsList, observer) => {
loadSettings.setButton();
}
}

const loadSettings = {
setInterval: setInterval(() => {
setSettings: setInterval(() => {
if (window.location.href.indexOf("/watch") == -1 ) return;

// set play button observer
const play_button_observer = new MutationObserver(play_button.callback);
play_button_observer.observe(play_button.getButton, play_button.config);
try {
const play_button_observer = new MutationObserver(play_button.callback);
play_button_observer.observe(play_button.getButton, play_button.config);
} catch(e) {
log('Play button does not exist; reload page');
window.location.reload();
}

// set autonav button
const autoplay_button_observer = new MutationObserver(autoplay_button.callback);
autoplay_button_observer.observe(autoplay_button.getButton, autoplay_button.config);
autonav_button();
autonav_button_style();

clearInterval(loadSettings.setInterval);
clearInterval(loadSettings.setSettings);
}, 1000),

setButton: function() {
const autonav_on = document.querySelector('.ytp-autonav-toggle-button-container > .ytp-autonav-toggle-button[aria-checked="true"]')
|| document.querySelector('#automix[role="button"][aria-pressed="true"]');
const autonav_off = document.querySelector('.ytp-autonav-toggle-button-container > .ytp-autonav-toggle-button[aria-checked="false"]')
|| document.querySelector('#automix[role="button"][aria-pressed="false"]');

if (autotube.getIsAutoSkip() == true && autonav_off) {
autonav_off.click();
} else
if (autotube.getIsAutoSkip() == false && autonav_on) {
autonav_on.click();
}
}
setAutonavButton: setInterval(() => {
if (window.location.href.indexOf("/watch") == -1 ) return;
autonav_button();
}, 5000)
}

return autotube;
Expand Down
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "YT-Nonstop",
"version": "2.1.0",
"version": "2.2.0",
"description": "Deletes the annoying \"Video paused. Continue watching?\" popup on YouTube and keeps it running nonstop without autoplay message!",
"permissions": [ "declarativeContent", "storage", "tabs" ],
"host_permissions": [ "https://www.youtube.com/*", "https://music.youtube.com/*", "https://m.youtube.com/*" ],
Expand Down

0 comments on commit 1a8778e

Please sign in to comment.