您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
zeigt an wie viel Restzeit ein Video läuft,
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/488745/1336163/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 start1 = 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){ log('info','color:green',`Restlaufzeit aktiviert`) }else if(restlaufzeit==2){ log('info','color:orange',`Restlaufzeit deaktieviert`) }else{ log('error','color:red',`Restlaufzeit hat probleme,bitte beim Hersteller melden`) } }