Skip to content

Instantly share code, notes, and snippets.

@cesarhilario
Forked from fredericogg/playlist_time.js
Last active November 21, 2023 14:31
Show Gist options
  • Save cesarhilario/28ec17d630f04fc3a3c915cfc56c0452 to your computer and use it in GitHub Desktop.
Save cesarhilario/28ec17d630f04fc3a3c915cfc56c0452 to your computer and use it in GitHub Desktop.
Calcula o tempo total de uma playlist no Youtube. É só colar no console na página da playlist. Update para a nova interface do Youtube
(function () {
const timeContainer = document.querySelectorAll(
".ytd-thumbnail-overlay-time-status-renderer"
);
let timeSeconds = 0;
for (let i = 0; i < timeContainer.length; i++) {
const timeStr = timeContainer[i].innerText;
if (!/\d?\d:\d{2}(:\d{2})?/g.test(timeStr)) continue;
const timeParts = timeStr.split(":");
let seconds;
if (timeParts.length === 3) {
seconds =
parseInt(timeParts[0]) * 60 * 60 +
parseInt(timeParts[1]) * 60 +
parseInt(timeParts[2]);
} else {
seconds = parseInt(timeParts[0]) * 60 + parseInt(timeParts[1]);
}
timeSeconds += seconds;
}
const renderNumber = (number) =>
number <= 9 ? `0${Math.round(number)}` : Math.round(number);
console.log(timeSeconds);
const hours = timeSeconds >= 60 * 60 ? timeSeconds / 60 / 60 : 0;
const minutes = timeSeconds >= 60 ? (timeSeconds / 60) % 60 : 0;
const seconds = timeSeconds % 60;
const result = `${renderNumber(hours)}:${renderNumber(
minutes
)}:${renderNumber(seconds)}`;
alert(result);
})();
@joismar
Copy link

joismar commented Nov 29, 2017

Funcionando perfeito, mas tem que abrir a playlist depois de salva, tentei verificar porquê não funcionou na página da playlist sem está salva. @rissimone No chrome vc clica em configurações > Mais ferramentas > Ferramentas do desenvolvedor > Vai abrir uma janelinha (Aba console).

@joismar
Copy link

joismar commented Nov 30, 2017

Corrigido. Agora funciona na pagina da playlist normal. Acredito que havia parado de funcionar devido a alguma OUTRA atualização do YT.

@FoundSol
Copy link

FoundSol commented Mar 9, 2018

Muito bom, valeu!!!

@naanadr
Copy link

naanadr commented Oct 9, 2018

Muito obrigada.

@ronaldscruz
Copy link

ronaldscruz commented Dec 20, 2018

parou de funcionar de novo, amigo :(
@edit: eu estava usando errado heheh, eu tava rodando a função num vídeo da playlist, mas o correto é na pagina da playlist mesmo

@cesarhilario
Copy link
Author

Muito obrigada.

Não há de que

@cesarhilario
Copy link
Author

Muito bom, valeu!!!

tmj

@JoakimTeixeira
Copy link

Aparentemente não está mais funcionando, já que em diversos testes que realizei, o valor retornado difere do tempo total da playlist. Talvez o seletor que você passou por parâmetro mudou.

@giovanacgois
Copy link

Aparentemente não está mais funcionando, já que em diversos testes que realizei, o valor retornado difere do tempo total da playlist. Talvez o seletor que você passou por parâmetro mudou.

Realmente mudou... Fiz um Fork, adaptando para a nova versão:
https://gist.github.com/giovanacgois/4dc87f374bab60d70e3fd097b80f7ba2

@cesarhilario
Copy link
Author

Aparentemente não está mais funcionando, já que em diversos testes que realizei, o valor retornado difere do tempo total da playlist. Talvez o seletor que você passou por parâmetro mudou.

Realmente mudou... Fiz um Fork, adaptando para a nova versão:
https://gist.github.com/giovanacgois/4dc87f374bab60d70e3fd097b80f7ba2

Vlw giovana

@Anderson-Andre-P
Copy link

Aparentemente não está mais funcionando, já que em diversos testes que realizei, o valor retornado difere do tempo total da playlist. Talvez o seletor que você passou por parâmetro mudou.

Realmente mudou... Fiz um Fork, adaptando para a nova versão:
https://gist.github.com/giovanacgois/4dc87f374bab60d70e3fd097b80f7ba2

Mudou de novo?

@orafaribeiro
Copy link

orafaribeiro commented Dec 11, 2020

Oi pessoal, tudo bem?
A interface mudou novamente. Criei um fork com a adaptação para a interface mais atual: https://gist.github.com/anthonyrafa/dafe380fe87334089cf4cf14a752393c

@cesarhilario
Copy link
Author

Oi pessoal, tudo bem?
A interface mudou novamente. Criei um fork com a adaptação para a interface mais atual: https://gist.github.com/anthonyrafa/dafe380fe87334089cf4cf14a752393c

Vlw Rafa vou atualizar aqui também!

@cesarhilario
Copy link
Author

Atualizado novamente!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment