// ==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();
})();