From 63fe03f1a6f623ae356cce318d7b2ed66f291321 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 16 May 2024 03:31:30 +0200 Subject: [PATCH 1/4] Update player.js faster more reliable autoplayDisable --- .../web-accessible/www.youtube.com/player.js | 62 ++++++++----------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index abe7c0f01..3291bd207 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -1,43 +1,35 @@ /*------------------------------------------------------------------------------ AUTOPLAY DISABLE ------------------------------------------------------------------------------*/ -ImprovedTube.autoplayDisable = function (playerElement) { -if (ImprovedTube.storage.player_autoplay_disable - || ImprovedTube.storage.playlist_autoplay === false - || ImprovedTube.storage.channel_trailer_autoplay === false){ - let player; let tries=0; - (function waitForPlayer(){if(player=ImprovedTube.elements.player||playerElement.closest('#movie_player')){return;} - else if(tries++<4){ - console.log("autoplayOff is waiting for ImprovedTube.elements.player or #movie_player"); - setTimeout(waitForPlayer,500); - }else if(tries===4){console.error("resigning autoplayOff after 1.5s")} - })() - if (ImprovedTube.video_url !== location.href) { this.user_interacted = false; } - - // if (no user clicks) and (no ads playing) and - // ( there is a player and ( (it is not in a playlist and auto play is off ) or ( playlist auto play is off and in a playlist ) ) ) or (if we are in a channel and the channel trailer autoplay is off) ) - - // user didnt click - if (player && !this.user_interacted - // no ads playing - && !player.classList.contains('ad-showing') - // video page - && ((location.href.includes('/watch?') // #1703 - // player_autoplay_disable & not playlist - && (ImprovedTube.storage.player_autoplay_disable && !location.href.includes('list=')) - // !playlist_autoplay & playlist - || (ImprovedTube.storage.playlist_autoplay === false && location.href.includes('list='))) - // channel homepage & !channel_trailer_autoplay - || (ImprovedTube.storage.channel_trailer_autoplay === false && ImprovedTube.regex.channel.test(location.href)))) { - - if (!ImprovedTube.autoplayDeniedOnce) { - setTimeout(function () { player.pauseVideo(); }); - ImprovedTube.autoplayDeniedOnce = true; - } else { player.pauseVideo(); - console.log("autoplay:off - should we pause here again?"); +ImprovedTube.autoplayDisable = function (videoElement) { + if (this.storage.player_autoplay_disable + || this.storage.playlist_autoplay === false + || this.storage.channel_trailer_autoplay === false) { + const player = this.elements.player || videoElement.closest('#movie_player'); + + if (this.video_url !== location.href) { this.user_interacted = false; } + + // if (no user clicks) and (no ads playing) and + // ( there is a player and ( (it is not in a playlist and auto play is off ) or ( playlist auto play is off and in a playlist ) ) ) or (if we are in a channel and the channel trailer autoplay is off) ) + + // user didnt click + if (player && !this.user_interacted + // no ads playing + && !player.classList.contains('ad-showing') + // video page + && ((location.href.includes('/watch?') // #1703 + // player_autoplay_disable & not playlist + && (this.storage.player_autoplay_disable && !location.href.includes('list=')) + // !playlist_autoplay & playlist + || (this.storage.playlist_autoplay === false && location.href.includes('list='))) + // channel homepage & !channel_trailer_autoplay + || (this.storage.channel_trailer_autoplay === false && this.regex.channel.test(location.href)))) { + + videoElement.pause(); + player.pauseVideo(); + console.log("autoplayDisable: Pausing"); } } -} }; /*------------------------------------------------------------------------------ FORCED PLAY VIDEO FROM THE BEGINNING From 294f8e1c3fbef96ba72735a56ebb45e996867a5a Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 16 May 2024 03:34:31 +0200 Subject: [PATCH 2/4] Update functions.js pause right after play in same event --- js&css/web-accessible/functions.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index 97c5b2e7e..32ff02689 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -337,11 +337,14 @@ ImprovedTube.playerOnPlay = function () { this.removeEventListener('ended', ImprovedTube.playerOnEnded, true); this.addEventListener('ended', ImprovedTube.playerOnEnded, true); - ImprovedTube.autoplayDisable(this); ImprovedTube.playerLoudnessNormalization(); ImprovedTube.playerCinemaModeEnable(); - return original.apply(this, arguments); + const returnValue = original.apply(this, arguments); + + ImprovedTube.autoplayDisable(this); + + return returnValue; } })(HTMLMediaElement.prototype.play); }; From 0d0d9c1a6ec2358d39bc1500b09d863933574e78 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 16 May 2024 05:50:51 +0200 Subject: [PATCH 3/4] Update player.js --- js&css/web-accessible/www.youtube.com/player.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 3291bd207..b1ab7e4bc 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -5,7 +5,13 @@ ImprovedTube.autoplayDisable = function (videoElement) { if (this.storage.player_autoplay_disable || this.storage.playlist_autoplay === false || this.storage.channel_trailer_autoplay === false) { - const player = this.elements.player || videoElement.closest('#movie_player'); + let player; let tries=0; + (function waitForPlayer(){if(player=ImprovedTube.elements.player||playerElement.closest('#movie_player')){return;} + else if(tries++<4){ + console.log("autoplayOff is waiting for ImprovedTube.elements.player or #movie_player"); + setTimeout(waitForPlayer,500); + }else if(tries===4){console.error("resigning autoplayOff after 1.5s")} + })() if (this.video_url !== location.href) { this.user_interacted = false; } From e341388ccad6d2d72c3ac1ef837a266c1e2055ab Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 16 May 2024 05:54:12 +0200 Subject: [PATCH 4/4] Update player.js --- js&css/web-accessible/www.youtube.com/player.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index b1ab7e4bc..036a7bbaf 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -6,7 +6,7 @@ ImprovedTube.autoplayDisable = function (videoElement) { || this.storage.playlist_autoplay === false || this.storage.channel_trailer_autoplay === false) { let player; let tries=0; - (function waitForPlayer(){if(player=ImprovedTube.elements.player||playerElement.closest('#movie_player')){return;} + (function waitForPlayer(){if(player=this.elements.player||videoElement.closest('#movie_player')){return;} else if(tries++<4){ console.log("autoplayOff is waiting for ImprovedTube.elements.player or #movie_player"); setTimeout(waitForPlayer,500);