Вроде все правильно работает. Заселектил я конечно криво, но может меня поправят, как этот момент улучшить. Чтобы скрипт заработал, нужно выбрать плейлист и открыть любое видео в нем, в других разделах селекторы отличаются, если вам нужно там, сделайте сами по примеру. Результат возвращается в секундах:
const combineTime = (arr) => {
const arrLength = arr.length
if (arrLength === 3) {
return arr[0] * 3600 + arr[1] * 60 + arr[2]
}
if (arrLength === 2) {
return arr[0] * 60 + arr[1]
}
if (arrLength === 1) {
return arr[0]
}
}
const calculatePlaylistTime = () => {
const playlistItems = document.querySelectorAll('#playlist-items')
if (playlistItems.length === 0) return // если массив плейлиста пустой, стопаем функцию
let calculatedTime = 0
for (let i = 0; i < playlistItems.length; i++) {
const splitedTime = playlistItems[i].children[0].children[0].children[1].children[0].children[0].children[1].children[1].children[1].outerText
.split(':')
.map(item => +item) // достаем время в виде строки, разделяем его на составляющие в массив и перебираем этот массив, чтобы преобразовать в числа
const totalTime = combineTime(splitedTime) // вызываем функцию, которая посчитает время в массиве в секундах
calculatedTime += totalTime
}
return calculatedTime
}