// ==UserScript== // @name Next Kick Stream Delay Display // @namespace http://tampermonkey.net/ // @version 0.3 // @description Displays stream delay next to viewer stats on Kick Next // @author Your Name // @match https://next.kick.com/* // @grant none // @run-at document-end // @downloadURL https://update.greasyfork.icu/scripts/504074/Next%20Kick%20Stream%20Delay%20Display.user.js // @updateURL https://update.greasyfork.icu/scripts/504074/Next%20Kick%20Stream%20Delay%20Display.meta.js // ==/UserScript== (function() { 'use strict'; // Opcjonalnie, zmień te wartości według własnych potrzeb const targetDelay = 4; // Opóźnienie w sekundach, przy którym zmieniamy prędkość const speedUpFactor = 1.25; // Współczynnik przyspieszenia function adjustPlaybackRate() { const video = document.querySelector('video'); let delayText = ''; if (video) { // Oblicz opóźnienie const currentTime = video.currentTime; const buffered = video.buffered; if (buffered.length > 0) { const bufferEnd = buffered.end(buffered.length - 1); const delay = bufferEnd - currentTime; if (delay > targetDelay) { video.playbackRate = speedUpFactor; } else { video.playbackRate = 1.0; // Przywróć normalną prędkość } delayText = `${Math.round(delay)}s`; } } updateDelayDisplay(delayText); setTimeout(adjustPlaybackRate, 1000); } function updateDelayDisplay(delayText) { const viewerStatsContainer = document.querySelector('div.flex.items-center.gap-2.self-end.py-0\\.5'); if (viewerStatsContainer) { let delayElement = document.getElementById('delay-display'); if (!delayElement) { delayElement = document.createElement('div'); delayElement.id = 'delay-display'; delayElement.className = 'flex items-center gap-1 text-sm font-bold'; delayElement.style.marginRight = '10px'; // Margines z prawej, aby oddzielić od liczby widzów delayElement.style.color = '#929EA6'; delayElement.innerHTML = ` ${delayText} `; viewerStatsContainer.insertBefore(delayElement, viewerStatsContainer.firstChild); // Dodaj przed liczbą widzów } else { delayElement.querySelector('span').textContent = delayText; } } } adjustPlaybackRate(); })();