Displays stream delay next to viewer stats on Kick Next
当前为
// ==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
// ==/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 = `
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path d="M8 1L12 6H10V12H6V6H4L8 1Z"></path>
</svg>
<span>${delayText}</span>
`;
viewerStatsContainer.insertBefore(delayElement, viewerStatsContainer.firstChild); // Dodaj przed liczbą widzów
} else {
delayElement.querySelector('span').textContent = delayText;
}
}
}
adjustPlaybackRate();
})();