-
-
Save liaohuqiu/4ee77b9b03afcdecc80252252378d367 to your computer and use it in GitHub Desktop.
var list = document.getElementsByClassName('pl-video-time'); | |
var time = 0; | |
function toS(hms) { | |
var a = hms.split(':'); | |
while (a.length < 3) { | |
a.unshift(0); | |
} | |
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); | |
return seconds; | |
} | |
function toHMS(totalSec) { | |
var hours = parseInt( totalSec / 3600 ) % 24; | |
var minutes = parseInt( totalSec / 60 ) % 60; | |
var seconds = totalSec % 60; | |
var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds); | |
return result; | |
} | |
function add(item) { | |
item = item.getElementsByClassName('timestamp')[0]; | |
item = item.getElementsByTagName('SPAN')[0]; | |
var timeString = (item.innerText || item.textContent); | |
time += toS(timeString); | |
} | |
for (var i = 0; i < list.length; i++) { | |
var item = list[i]; | |
add(item); | |
} | |
console.log("The full duration time is: " + toHMS(time)); |
//To add days count
var list = document.getElementsByClassName('pl-video-time');
var time = 0;
function toS(hms) {
var a = hms.split(':');
while (a.length < 3) {
a.unshift(0);
}
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
return seconds;
}
function toHMS(totalSec) {
var days = parseInt( totalSec / 86400 ) % 24;
var hours = parseInt( totalSec / 3600 ) % 24;
var minutes = parseInt( totalSec / 60 ) % 60;
var seconds = totalSec % 60;
var result =(days < 10 ? "0" + days : days) + ":"+ (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
return result;
}
function add(item) {
item = item.getElementsByClassName('timestamp')[0];
item = item.getElementsByTagName('SPAN')[0];
var timeString = (item.innerText || item.textContent);
time += toS(timeString);
}
for (var i = 0; i < list.length; i++) {
var item = list[i];
add(item);
}
console.log("The full duration time is: " + toHMS(time));
does not work on the new YouTube with Polymer anymore.
it does work ! thanks
To make it work again, use the code below:
var list = document.getElementsByClassName('ytd-thumbnail-overlay-time-status-renderer');
var time = 0;
function toS(hms) {
var a = hms.split(':');
while (a.length < 3) {
a.unshift(0);
}
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
return seconds;
}
function toHMS(totalSec) {
var hours = parseInt( totalSec / 3600 ) % 24;
var minutes = parseInt( totalSec / 60 ) % 60;
var seconds = totalSec % 60;
var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
return result;
}
function add(item) {
/*item = item.getElementsByClassName('timestamp')[0];
item = item.getElementsByTagName('SPAN')[0]; */
var timeString = (item.innerText || item.textContent);
time += toS(timeString);
}
for (var i = 0; i < list.length; i++) {
var item = list[i];
add(item);
}
console.log("The full duration time is: " + toHMS(time));
I don't know why you added %24
, it makes the script return wrong results. Removing it fixes that. Alternatively, you could add something for days.
Thanks for the correction @kreekhoorn, it works well 😄
I have added to days feature to the code as it prints only hours, minutes, and seconds, but ignores the days.
https://github.com/omargoda/Get-full-length-of-YouTube-playlist/blob/master/README.md
aussies fun