48 votes

Télécharger une liste de lecture youtube avec youtube-dl, en sautant les fichiers existants

Je me demandais s'il était possible de télécharger une liste de lecture youtube en tant que mp3 en utilisant youtube-dl en ignorant les fichiers déjà existants. J'utilise cette commande :

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

et, même si je l'ai configuré pour ne pas écraser, il a tout rechargé à partir de zéro. Est-ce possible ?

90voto

Martin Thornton Points 4221

Avec l'option --download-archive FILE youtube-dl lit et ajoute à une liste de fichiers à ne pas télécharger à nouveau. Chaque fois qu'un fichier est téléchargé avec succès, l'identifiant de la vidéo est ajouté à la liste des fichiers à ne pas télécharger. FILE .

Vous pouvez l'utiliser comme suit :

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

Il retéléchargera toutes les vidéos d'avant que vous n'avez pas gardées pour une dernière fois en créant la liste. Vous pouvez maintenant les supprimer.

Si vos fichiers MP3 avaient été nommés avec le format par défaut de %(title)s-%(id)s.%(ext)s vous auriez pu éviter le retéléchargement en créant downloaded.txt à partir du youtube %(id)s dans un terminal bash comme suit :

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

7voto

C'est vraiment utile. Si cela peut être utile à quelqu'un, j'ai modifié le code pour créer la liste des téléchargements existants afin d'inclure tous les fichiers du dossier. Utile si vous téléchargez de l'audio avec la fonction --extract-audio y --audio-quality "best" drapeaux

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

Je suis sûr que la plupart des gens auraient pu s'en rendre compte par eux-mêmes, mais tout le monde ne connaît pas les scripts bash.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X