From fc62c7a53d564118dd6045e373c5c725c86cacb9 Mon Sep 17 00:00:00 2001 From: joegauto Date: Wed, 8 Jul 2026 21:01:15 +0200 Subject: [PATCH] feat: add custom seek distance setting (fixes #4132) - Add 'Seek distance' slider (1-60s, default 10) in Player settings - Keyboard shortcuts (J/L) now use the custom distance - Rewind/Forward player buttons use the custom distance - Add 'seekDistance' localization key --- _locales/en/messages.json | 3 +++ js&css/web-accessible/www.youtube.com/player.js | 10 ++++++---- js&css/web-accessible/www.youtube.com/shortcuts.js | 6 ++++-- menu/skeleton-parts/player.js | 10 ++++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 686f493a0..e76ca6ec2 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1332,6 +1332,9 @@ "seekForward10Seconds": { "message": "Seek forward 10 seconds" }, + "seekDistance": { + "message": "Seek distance (seconds)" + }, "seekNextChapter": { "message": "Seek Next Chapter" }, diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 0f8f47423..999d566ae 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -1980,9 +1980,10 @@ ImprovedTube.playerRewindAndForwardButtons = function(){ child: svgForward, onclick: function () { - ImprovedTube.elements.player.seekTo(ImprovedTube.elements.player.getCurrentTime() + 5); + var distance = Number(ImprovedTube.storage.player_seek_distance) || 10; + ImprovedTube.elements.player.seekTo(ImprovedTube.elements.player.getCurrentTime() + distance); }, - title: 'forward 5 seconds', + title: 'forward', }).classList.remove('it-player-button'); this.createPlayerButton({ id: 'it-rewind-player-button', @@ -1991,9 +1992,10 @@ ImprovedTube.playerRewindAndForwardButtons = function(){ child: svgBackward, onclick: function () { - ImprovedTube.elements.player.seekTo(ImprovedTube.elements.player.getCurrentTime() - 5); + var distance = Number(ImprovedTube.storage.player_seek_distance) || 10; + ImprovedTube.elements.player.seekTo(ImprovedTube.elements.player.getCurrentTime() - distance); }, - title: 'rewind 5 seconds', + title: 'rewind', }).classList.remove('it-player-button'); } } diff --git a/js&css/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js index cc7035f17..b7971feab 100644 --- a/js&css/web-accessible/www.youtube.com/shortcuts.js +++ b/js&css/web-accessible/www.youtube.com/shortcuts.js @@ -307,13 +307,15 @@ ImprovedTube.shortcutPrevVideo = function () { 4.7.9 SEEK BACKWARD ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekBackward = function () { - this.elements.player?.seekBy(-10); + var distance = Number(this.storage.player_seek_distance) || 10; + this.elements.player?.seekBy(-distance); }; /*------------------------------------------------------------------------------ 4.7.10 SEEK FORWARD ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekForward = function () { - this.elements.player?.seekBy(10); + var distance = Number(this.storage.player_seek_distance) || 10; + this.elements.player?.seekBy(distance); }; /*------------------------------------------------------------------------------ 4.7.11 SEEK NEXT CHAPTER diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index b3880cef1..2ea3bdf3e 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -1785,6 +1785,16 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'player_rewind_and_forward_buttons' }, + player_seek_distance: { + storage: 'player_seek_distance', + component: 'slider', + text: 'seekDistance', + textarea: true, + min: 1, + max: 60, + step: 1, + value: 10 + }, player_increase_decrease_speed_buttons: { component: 'switch', text: 'playerIncreaseDecreaseSpeedButtons',