Você está passando uma lista de reprodução para o youtube-dl, junto com a opção de linha de comando --ignore-errors
. Isso significa que o youtube-dl tentará baixar a lista completa de vídeos antes de sair; independentemente de quantos fracassos enfrentará ao longo do caminho. Portanto, se o vídeo nº 2 falhar, a solicitação para o vídeo nº 3 será imediatamente após. Eu não sei o quão vigilante o Google é, mas isso já pode ser um bom sinal.
E mesmo depois de o último vídeo da sua lista de reprodução ter sido acertado, como você está certo de que o youtube-dl retorna um código de saída diferente de zero? Não há menção a isso no readme , então eu não ficaria surpreso se seu sleep 90
nunca seria executado.
Além disso, que bom é esse loop de qualquer maneira? Reiniciar o youtube-dl com a mesma lista de músicas baixará tudo de novo; incluindo todos os vídeos que foram baixados com sucesso na primeira vez. Embora as opções --no-overwrites
e --continue
possam ajudar aqui.
Para evitar que o Google bloqueie seu endereço IP (HTTP 429), sugiro usar a opção --sleep-interval
. Exemplo:
youtube-dl --verbose --ignore-errors --sleep-interval 10 url-to-playlist
Não tenho certeza se a intenção do seu loop era continuar tentando repetir um vídeo com falha até que tenha sucesso. Espero que não; não é muito simples, já que:
- Você não pode usar o código de saída do youtube-dl para detectar falhas. Você precisaria fazer uma referência cruzada da pasta de saída com sua lista de reprodução ou analisar a saída do youtube-dl.
- Você precisaria implementar algum contador para restringir o número de novas tentativas; alguns problemas não desaparecem por si mesmos.