Télécharger une liste de lecture YouTube avec YouTube-DL, ignorer les fichiers existants

22

Je me demandais s'il était possible de télécharger une liste de lecture YouTube en mp3 en utilisant youtube-dl, en sautant 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 défini pour ne pas écraser, il retélécharge tout à partir de zéro. Est-ce possible?

guerrier
la source
même s'il le retélécharge, il saute généralement l'écriture du fichier par défaut même sans que cette option ne soit définie
mchid
Ok, si je garde la vidéo téléchargée avec le fichier mp3, la fonction de saut fonctionne correctement. Pas exactement ce dont j'avais besoin mais c'est ok.
Warrior

Réponses:

45

Avec l'option --download-archive FILE youtube-dl à la fois 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, cet identifiant vidéo est ajouté à 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 une dernière fois lors de la création de 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 téléchargement en créant à downloaded.txtpartir de YouTube %(id)ssur 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
Martin Thornton
la source
1
Une réponse précieuse ici. Cela résout mon problème. Je vous remercie.
Warrior
Qu'y a-t-il -cwixici?
bteo
2
-cwixest une alternative plus courte à--continue --no-overwrites --ignore-errors --extract-audio
Martin Thornton
1
Il convient de mentionner que bien que cela fonctionne parfaitement pour YouTube, youtube-dl fonctionne également avec d'autres sites (par exemple Soundcloud) où l' -xoption semble interrompre la sortie. Vous pouvez supprimer ce drapeau en toute sécurité si vous téléchargez à partir d'une source audio.
christianbundy
2

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

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 résoudre cela par eux-mêmes, mais tout le monde n'est pas au courant des scripts bash.

Jeremy Paul Carroll
la source