您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add the total duration of a YouTube Playlist
// ==UserScript== // @name Youtube Playlist Total Duration // @namespace http://tampermonkey.net/ // @version 0.3 // @description Add the total duration of a YouTube Playlist // @author Benoit Durand // @match *://www.youtube.com/playlist?list=* // @grant none // ==/UserScript== function addPlaylistDuration() { var el = document.getElementsByClassName("style-scope ytd-thumbnail-overlay-time-status-renderer"); var nb_video = document.getElementById("stats").getElementsByClassName("style-scope yt-formatted-string")[0].innerHTML; if (el.length == 2*nb_video) { var s = 0; var eq_sec = [3600, 60, 1]; for (var i = 0; i < el.length; i++) { if (el[i].tagName == "SPAN") { var time = el[i].innerHTML.replace(/\n/gi, "").split(":"); var selec = eq_sec.slice(-time.length); for (var j = 0; j < time.length; j++){ s = s + Number(time[j]) * selec[j]; } } } var nb_hour = Math.trunc(s / 3600); s = s%3600; var nb_min = Math.trunc(s / 60); s = s%60; var nb_sec = s; var final_string = "\n Total Duration : " + nb_hour + ":" + nb_min.toString().padStart(2, '0') + ":" + nb_sec.toString().padStart(2, '0') ; document.getElementById("description").appendChild(document.createTextNode(final_string)); } } var targetNode = document.querySelectorAll('div#overlays.style-scope.ytd-thumbnail')[0]; var config = {childList: true}; var callback = function(mutationsList){ mutationsList.forEach(function(mutation) { addPlaylistDuration(); observer.disconnect(); }); }; var observer = new MutationObserver(callback); observer.observe(targetNode, config);