From ccb83abc073ab495ee530995b8d51c79bb79ea45 Mon Sep 17 00:00:00 2001 From: Abhyshek Bhalaji <142843226+Abhyshekbhalaji@users.noreply.github.com> Date: Fri, 10 Oct 2025 18:54:43 +0530 Subject: [PATCH 1/3] Update settings.js --- .../www.youtube.com/settings.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/js&css/web-accessible/www.youtube.com/settings.js b/js&css/web-accessible/www.youtube.com/settings.js index 7771cfb3e..4db8a937d 100644 --- a/js&css/web-accessible/www.youtube.com/settings.js +++ b/js&css/web-accessible/www.youtube.com/settings.js @@ -180,3 +180,23 @@ ImprovedTube.youtubeLanguage = function () { } } }; + + +/*----------------------------------------------------------------------------- +4.10.5 ADVANCED VIDEO BUFFERING +-----------------------------------------------------------------------------*/ + +ImprovedTube.advancedVideoBuffering = function () { + // You could add any change/display logic here if required, + // but the player logic will use ImprovedTube.storage.get('advanced_video_buffering') + // for the effective toggle. + // This stub is needed for extension settings consistency. + var enabled = this.storage.advanced_video_buffering; + + // All logic to apply buffering/preload goes in player.js. + // Optionally: reload/update the player if the setting was changed. + if (changed) { + // You can reload the player or re-apply settings if needed: + ImprovedTube.applyPlayerSettings && ImprovedTube.applyPlayerSettings(); +} +}; From e994db7484e1c14cdf0a833b304dc38f0d188d6b Mon Sep 17 00:00:00 2001 From: Abhyshek Bhalaji <142843226+Abhyshekbhalaji@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:07:17 +0530 Subject: [PATCH 2/3] Update player.js --- js&css/web-accessible/www.youtube.com/player.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index b00ad715e..1480992b0 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -488,7 +488,18 @@ ImprovedTube.playerQuality = function (quality = this.storage.player_quality) { player.setPlaybackQuality(quality); player.dataset.defaultQuality = quality; } + + // --- Place your advanced buffering logic here --- + const video = this.elements.video; + if (ImprovedTube.storage.get('advanced_video_buffering') === true && video) { + video.preload = 'auto'; + let originalTime = video.currentTime; + let bufferTime = Math.min(video.duration || (originalTime + 30), originalTime + 30); + video.currentTime = bufferTime; + video.currentTime = originalTime; + } }; + /*------------------------------------------------------------------------------ QUALITY WITHOUT FOCUS ------------------------------------------------------------------------------*/ From 47d86243d60b05db70fbe3be3761fa92143a9e7a Mon Sep 17 00:00:00 2001 From: Abhyshek Bhalaji <142843226+Abhyshekbhalaji@users.noreply.github.com> Date: Tue, 14 Oct 2025 13:45:07 +0530 Subject: [PATCH 3/3] Update player.js --- js&css/web-accessible/www.youtube.com/player.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 1480992b0..b5ed372e2 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -492,12 +492,14 @@ ImprovedTube.playerQuality = function (quality = this.storage.player_quality) { // --- Place your advanced buffering logic here --- const video = this.elements.video; if (ImprovedTube.storage.get('advanced_video_buffering') === true && video) { - video.preload = 'auto'; - let originalTime = video.currentTime; - let bufferTime = Math.min(video.duration || (originalTime + 30), originalTime + 30); - video.currentTime = bufferTime; - video.currentTime = originalTime; - } + video.preload = 'auto'; + let originalTime = video.currentTime; + let bufferSeconds = ImprovedTube.storage.get('buffer_seconds') || 30; + let bufferTime = Math.min(video.duration || (originalTime + bufferSeconds), originalTime + bufferSeconds); + video.currentTime = bufferTime; + video.currentTime = originalTime; +} + }; /*------------------------------------------------------------------------------