Skip to content

Instantly share code, notes, and snippets.

@eddieoz
Forked from RafalJDev/CountYoutubeVideosTime.js
Created December 31, 2023 11:18
Show Gist options
  • Save eddieoz/5b0e25775748364669155cd61d7bb464 to your computer and use it in GitHub Desktop.
Save eddieoz/5b0e25775748364669155cd61d7bb464 to your computer and use it in GitHub Desktop.
Count all videos time duration on youtube channel
//You need to run this in javascript console inside chrome
//Assumptions:
//1. Will count only "expanded" videos on page, you may first need to run script to scroll to last video or do it manually
//2. Tested on chrome, ubuntu, 2019
//3. Time format: hh:mm:ss
var array = document.getElementsByClassName("style-scope ytd-thumbnail-overlay-time-status-renderer");
var arrLength = array.length;
var allHours = 0;
var allMinutes = 0;
var allSeconds = 0;
for (var i=0; i<arrLength; i++) {
var content = array[i].textContent;
// console.log("content: ", content);
var splitedTime = content.split(":");
if (splitedTime.length == 1) {
allSeconds += +splitedTime[0];
} else if (splitedTime.length == 2) {
allMinutes += +splitedTime[0];
allSeconds += +splitedTime[1];
} else if (splitedTime.length == 3) {
allHours += +splitedTime[0];
allMinutes += +splitedTime[1];
allSeconds += +splitedTime[2];
} else {
console.log("WTF error, current content:", content);
}
}
var seconds = allSeconds % 60;
var minutes = (allMinutes % 60 + allSeconds / 60) % 60;
var hours = allHours + allMinutes / 60 + allSeconds / 3600;
// console.log("allHours:", allHours);
// console.log("allMinutes:", allMinutes);
// console.log("allSeconds:", allSeconds);
console.log("Hours:", hours);
console.log("Minutes:", minutes);
console.log("Seconds:", seconds);
//comments leaved for future fast debugging in case of errors, I know, bad practice
//Example page: https://www.youtube.com/user/DNewsChannel/videos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment