Greasy Fork is available in English.
zeigt an wie viel Restzeit ein Video läuft,
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/488745/1336167/erweiterung%20%28Resttime%29%20f%C3%BCr%20das%20%20gesehende%20videos%20ausblenden%20oder%20makieren.js
// ==UserScript==
// @name erweiterung (Resttime) für das gesehende videos ausblenden oder makieren
// @namespace https://basti1012.bplaced.net
// @version 1.2
// @description zeigt an wie viel Restzeit ein Video läuft,
// auch wenn der Player schneller läuft wird die zeit mitgerrechnet
// Dieses Script wurde von 4lrick geschrieben ( YouTube - Remaining time ).
// Ich hatte mir zwar auch eine Version erstellt .aber seine läuft besser
// @author 4lrick . Für mein Youtube Script umgebaut von basti1012 als erweiterung
// @allFrames true
// @run-at document-end
// @license MIT License
// @noframes
// @icon https://basti1012.de/images/favicon.png
// ==/UserScript==
var start2 = performance.now();
if(!array_localsdtorage){
var array_localsdtorage=[];
}
if(!erweiterungs_einstellungs_array){
var erweiterungs_einstellungs_array=[];
}
array_localsdtorage.push(["rest_zeit_einblenden", false]);
function rest_lauf_zeit_anzeigen(){
if(localStorage.getItem('rest_zeit_einblenden')=='true'){
let init = false;
let timeDisplay;
function displayRemainingTime() {
const videoElement = document.querySelector('video');
if (videoElement) {
const timeRemaining = (videoElement.duration - videoElement.currentTime) / videoElement.playbackRate;
const hours = Math.floor(timeRemaining / 3600);
const minutes = Math.floor((timeRemaining % 3600) / 60);
const seconds = Math.floor(timeRemaining % 60);
const isLive = document.querySelector('.ytp-live');
const viewLiveCount = document.querySelector('span[dir="auto"].bold.style-scope.yt-formatted-string');
const isEmbed = window.location.href;
if ((viewLiveCount !== null && viewLiveCount.textContent.trim() !== "watching now") || isEmbed.includes("youtube.com/embed") && !isLive) {
timeDisplay.textContent = `(${hours > 0 ? `${hours}:` : ''}${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds})`;
} else {
timeDisplay.textContent = null;
}
}
requestAnimationFrame(displayRemainingTime);
}
function initDisplay() {
timeDisplay = document.createElement('div');
timeDisplay.style.display = 'inline-block';
timeDisplay.style.marginLeft = '10px';
timeDisplay.style.color = '#ddd';
const timeContainer = document.querySelector('.ytp-time-display');
if (timeContainer) {
timeContainer.appendChild(timeDisplay);
init = true;
}
}
function checkVideoExists() {
const videoElement = document.querySelector('video');
if (videoElement) {
if (!init) {
initDisplay();
}
videoElement.onplaying = displayRemainingTime;
}
}
const observer = new MutationObserver(checkVideoExists);
const body = document.body;
const config = { childList: true, subtree: true };
observer.observe(body, config);
return 1;
}else{
return 2;
}
return 3;
}
if(localStorage.getItem('rest_zeit_aktivieren')=='true'){
var checkboxerweiterungrestzeitaktivieren ='checked="true"';
}else{
var checkboxerweiterungrestzeitaktivieren ='';
}
if(!erweiterungs_einstellungs_array){
var erweiterungs_einstellungs_array = [];
}
erweiterungs_einstellungs_array.push(['restzeit_anzeigen',`
<label>
<label style="display:flex;flex-direction:column">
<p>
<strong>Restzeit anzeigen </strong>
<input type="checkbox" id="rest_laufueit" ${checkboxerweiterungrestzeitaktivieren}>
<span>?
<small>
Mit dieser funktion wird im Player neben der Abgelaufene und endzeit noch die Restlaufzeit angezeigt<br>
Auch wenn sie den Player schneller oder öangsamer laufen lassen wird dies mit berechnet
</small>
</span>
</p>
</label>
</label>`]);
if(!array_script){
var array_script=[];
}
array_script.push([`
setTimeout(function(){
var restlaufzeit_var=document.getElementById('rest_laufueit')
restlaufzeit_var.addEventListener('click',function(){
restlaufzeit_var.checked;
if(restlaufzeit_var.checked==true){
localStorage.setItem('rest_zeit_einblenden',true);
}else{
localStorage.setItem('rest_zeit_einblenden',false);
}
console.log('save = '+restlaufzeit_var.checked);
})
},3333);
`]);
if(localStorage.getItem('rest_zeit_einblenden')){
var restlaufzeit=rest_lauf_zeit_anzeigen();
if(restlaufzeit==1){
console.log('%cRestlaufzeit aktiviert'+ (performance.now() - start2) + ' ms.','color:green');
}else if(restlaufzeit==2){
console.log('%cRestlaufzeit deaktiviert'+ (performance.now() - start2) + ' ms.','color:orange');
}else{
console.log('%cRestlaufzeit error'+ (performance.now() - start2) + ' ms.','color:red');
}
}