Fazendo o download da lista de reprodução do youtube com o youtube-dl, ignorando os arquivos existentes

17

Eu queria saber se era possível baixar uma playlist do youtube como mp3 usando youtube-dl , pulando arquivos já existentes. Eu estou usando este comando:

youtube-dl --continue --ignore-errors --no-overwrites --extract-audio --audio-format mp3 --output "%(title)s.%(ext)s" [path here]

e, apesar de configurá-lo para não sobrescrever, ele faz o download de tudo novamente do zero. Isso é possível?

    
por Warrior 12.09.2015 / 22:43

2 respostas

27

Com a opção --download-archive FILE youtube-dl lê e adiciona a uma lista de arquivos para não baixar novamente. Sempre que um arquivo é baixado com sucesso, esse ID de vídeo é adicionado a FILE .

Você pode usá-lo da seguinte maneira:

youtube-dl --download-archive downloaded.txt --no-post-overwrites -ciwx --audio-format mp3 -o "%(title)s.%(ext)s" [path here]

Ele fará o download novamente de todos os vídeos anteriores que você não guardou pela última vez enquanto cria a lista. Agora você pode excluí-los.

Se seus arquivos MP3 tivessem sido nomeados com o formato padrão de %(title)s-%(id)s.%(ext)s , você poderia ter evitado o download novamente, criando downloaded.txt do youtube %(id)s em um terminal bash da seguinte forma:

for n in *.mp3
do if [[ "$n" =~ -[-_0-9a-zA-Z]{11}.mp3$ ]]
   then echo "youtube ${n: -15: 11}" >> downloaded.txt
   fi
done
    
por Martin Thornton 14.12.2015 / 02:22
1

Isso é realmente útil. Se for de alguma utilidade para qualquer pessoa, modifiquei o código para criar a lista de downloads existente para incluir todos os arquivos na pasta. Útil se descarregar áudio com --extract-audio e --audio-quality "best" flags

for n in *.*
do if [[ "$n" =~ -[-_0-9a-zA-Z]{11}.*$ ]]
   then echo "youtube ${n: -15: 11}" >> downloaded.txt
   fi
done

Tenho certeza de que a maioria das pessoas poderia ter resolvido isso por conta própria, mas nem todo mundo está preparado para o script do bash.

    
por Jeremy Paul Carroll 11.04.2018 / 12:22

Tags