Télécharger plusieurs fichiers avec youtube-dl

45

J'utilise youtube-dl pour télécharger des fichiers à partir de YouTube. J'ai essayé de télécharger plusieurs fichiers, mais cela ne fonctionne pas pour moi. Je dois ouvrir plusieurs terminaux et recommencer chaque fois que je souhaite télécharger une vidéo.

Pouvez-vous m'aider à télécharger plusieurs fichiers avec une seule fenêtre de terminal en mentionnant simplement toutes les URL en même temps? J'utilise Ubuntu 12.04 64 bits.

Mecha-Unix
la source
1
Ce n’est pas une réponse à votre question, mais d’autres risquent de trébucher. Si les vidéos sont liées d'une manière ou d'une autre, n'oubliez pas que youtube-dl peut télécharger toutes les vidéos d'une liste de lecture, d'un utilisateur ou d'un canal.
Dennis
voir la réponse ci-dessous (pas le plus voté actuellement) suggérant d'ajouter simplement un espace entre les URL et vous avez terminé.
gota

Réponses:

54

Raccourcis

Si toutes les vidéos se trouvent dans la même liste de lecture ou le même canal, vous pouvez gagner du temps en utilisant les raccourcis suivants.

Playlist

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-playlist>

... où <url-of-playlist>est remplacé par l'URL de la liste de lecture et remplacé FORMATpar tout format vidéo disponible, par exemple 18. Vous pouvez utiliser cette -Foption pour voir tous les formats valides comme ceci:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'

Télécharger une partie d'une playlist du début à la fin du lot

youtube-dl -f FORMAT -ci --playlist-start NUMBER --playlist-end NUMBER <url-of-playlist>  

... où <url-of-playlist>est remplacé par l'URL de la liste de lecture, remplacez-le FORMATpar n'importe quel format vidéo disponible, par exemple 18, et NUMBERcorrespond au numéro de la vidéo de la liste de lecture dans laquelle commencer / arrêter le téléchargement.

Canal

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>

... où <url-of-channel>est remplacé par l'URL du canal et remplacé FORMATpar tout format vidéo disponible, par exemple 18.

Vidéos pas dans la même playlist ou le même canal

Créez d'abord un fichier de commandes qui est un fichier texte contenant une liste d'URL de vidéos de YouTube que vous souhaitez télécharger. Les URL doivent être organisées dans une liste comportant une seule URL et rien d'autre sur chaque ligne, avec une nouvelle ligne pour chaque URL de la liste. Enregistrez le fichier de commandes sous un nom facile à retenir, comme batch-file.txt. Si plusieurs fichiers se trouvent tous dans la même liste de lecture, le même canal ou la même page Web utilisateur sur YouTube, vous pouvez générer un fichier texte avec une liste contenant tous les liens de cette page en exécutant la commande suivante:

sudo apt install jq  
youtube-dl -j --flat-playlist "https://<yourYoutubeWebpage>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt

Depuis le terminal:

youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'

Il s'agit de la commande de base, mais vous devez également ajouter les formats des vidéos que vous souhaitez télécharger ou vous risquez de télécharger des vidéos avec des formats que vous ne souhaitiez pas. Alors, commencez par simuler votre téléchargement pour voir si le format souhaité est disponible:

youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'

Si le format vidéo ne sont pas disponibles , vous obtenez un message d'erreur qui dit: requested format not available. Si le format vidéo est disponible, aucun message d'erreur ne s'affiche lorsque vous utilisez l' --simulateoption. Vous pouvez également ajouter l'option -F pour voir tous les formats valides comme ceci:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'

Dans la troisième commande que j'ai utilisé le flv commun 360p format vidéo:
-f 34. Vous préférerez peut-être essayer le format vidéo flv 480p en utilisant -f 35. Ainsi, une fois que vous avez ajouté le format vidéo que vous souhaitez à la commande, celle-ci se présente comme suit:

youtube-dl -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'

Remarques:

Je n'ai pas ajouté l' --simulateoption à la dernière commande, donc cette commande serait exécutée pour de vrai.

Karel
la source
18

Vous pouvez mettre les URL les unes après les autres, avec un espace entre les deux. Youtube-dl les téléchargera de manière séquentielle. C'est un peu plus simple que de créer un fichier de commandes.

Remarquez le --help youtube-dl --help Usage: youtube-dl [options] url [url...]

Exemple de saisie:

youtube-dl http://www.youtube.com/watch?v=fqULJBBEVQE http://www.youtube.com/watch?v=vDbbz-BdyYc http://www.youtube.com/watch?v=OrIFaWJ9Glo

Exemple de sortie:

    [youtube] Setting language
    [youtube] fqULJBBEVQE: Downloading video webpage
    [youtube] fqULJBBEVQE: Downloading video info webpage
    [youtube] fqULJBBEVQE: Extracting video information
    [download] Destination: Web Components - A Tectonic Shift for Web Development - Google I_O 2013-fqULJBBEVQE.mp4
    [download] 100% of 238.14MiB in 36:54
    [youtube] vDbbz-BdyYc: Downloading video webpage
    [youtube] vDbbz-BdyYc: Downloading video info webpage
    [youtube] vDbbz-BdyYc: Extracting video information
    [download] Paul Irish on Web Application Development Workflow-vDbbz-BdyYc.mp4 has already been downloaded
    [youtube] OrIFaWJ9Glo: Downloading video webpage
    [youtube] OrIFaWJ9Glo: Downloading video info webpage
    [youtube] OrIFaWJ9Glo: Extracting video information
    [download] Got server HTTP error. Retrying (attempt 1 of 20)...
    [download] Destination: Single Page Web Applications - JavaScript End-to-End (The Hard Stuff)-OrIFaWJ9Glo.mp4
    [download] 100% of 553.10MiB in 42:17
coreyb
la source
1
Meilleure réponse à mon avis! Très simple!
gota
5

étape 1: allez sur votre bureau et créez un document texte appelélist(ou tout autre nom). Copiez et collez les URL si vous souhaitez télécharger des fichiers, une URL par ligne.

étape 2: ouvrez le terminal et accédez au bureau

cd Desktop

étape 3: pour télécharger les fichiers de votre liste, tapez (remplacez-le enlistconséquence si vous avez nommé votre fichier autrement)

youtube-dl -a list

Pour télécharger une chaîne YouTube

Exécuter cette commande

youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
  • -c reprendre des fichiers partiellement téléchargés
  • -i ignorer les erreurs.
  • -t utilisez le titre de la vidéo comme nom de fichier.
  • -k conservez la vidéo sur le disque une fois le post-traitement terminé.
  • --format mp4 enregistrer les fichiers vidéo en tant que fichiers MP4.
  • --yes-playlist affirme que l'URL qui suit pointe vers une liste de lecture vidéo.
Ahmed Ismail
la source
1
-citkest très trompeur et peut entraîner des erreurs. -cla reprise des forces, même si cela n’a pas beaucoup de sens. La valeur par défaut est déjà de continuer. -ipeut être ok, mais attention, vous risquez de manquer des erreurs sur certaines vidéos. -test déjà la valeur par défaut et obsolète. -kn'a aucun sens avec -f mp4. Voir la FAQ youtube-dl pour plus de détails.
Phihag
3

Si vous avez plusieurs URL de vidéo, ajoutez-les simplement à une liste de lecture dans votre liste de lecture YouTube en en créant une nouvelle ou en utilisant une existante.

Ensuite, utilisez la commande ci-dessous.

youtube-dl -f FORMAT --yes-playlist [url-of-playlist]

L'option --yes-playlisttéléchargera la liste de lecture, si l'URL fait référence à une vidéo et à une liste de lecture.

C'est l'option la plus simple et la plus rapide que j'ai trouvée dans le but de télécharger des centaines de vidéos à partir d'un site Web contenant des vidéos liées à YouTube.

utilisateur669330
la source
Ceci est utile pour télécharger beaucoup de vidéos du même canal. Vous pouvez utiliser une liste de lecture non répertoriée pour ne pas la rendre publique
qwr
3

Pour télécharger plusieurs vidéos, vous pouvez utiliser cette structure. Cela ressemble à la réponse de @ coreyb avec l’ajout que vous pouvez l’utiliser ailleurs dans bash, par exemple avec echo. Voici deux manières:

Bretelles

youtube-dl -f FORMAT {url1,url2,url...}

Répéter la dernière commande sans le dernier argument

youtube-dl -f FORMAT url1; !:- url2; !:-url...
Xui
la source
3

la solution la plus simple serait de faire un script bash comme celui-ci

#!/bin/bash
terminal=`tty`
exec < ~/Documents/youtubevideolinks.txt

while read -r line
do
    cd ~/Desktop/TilakDa/
    youtube-dl -f 18 "$line"
done
exec < "$terminal"

il suffit de copier et coller les liens vidéo dans ce fichier txt dans le dossier de documents avec chaque URL de vidéo dans une nouvelle ligne et exécuter ce script qui téléchargera les vidéos une par une. Par défaut, l' -f 18option est pour la vidéo 360p.

Shantanu Bedajna
la source
1

Tapez la commande puis tapez &&et tapez la commande suivante comme suit:

youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url) 
utilisateur859198
la source
1

Essayez avec le script bash:

while read LL ; do youtube-dl "$LL" ; done < your_file
totolezero
la source
1

Le sujet est toujours d'actualité, alors:

  • Obtenez votre lien YouTube.
  • Supprime le premier paramètre vidéo commençant par ?
  • utiliser comme ceci :-)

    youtube-dl.exe --yes-playlist https://www.youtube.com/watch?list=yourlistlink
    

Cela fonctionne pour moi.

studen
la source