web-dev-qa-db-fra.com

Télécharger plusieurs fichiers avec youtube-dl

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.

43
Mecha-Unix

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 remplacez FORMAT par tout format vidéo disponible, par exemple 18. Vous pouvez utiliser l'option -F 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 FORMAT par tout format vidéo disponible, par exemple 18, et NUMBER est le numéro de la vidéo de la liste de lecture où commencer 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 remplacez FORMAT par tout format vidéo disponible, par exemple 18.

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

Commencez par créer un fichier de commandes, qui est un fichier texte contenant une liste des URL des 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 aux formats que vous ne souhaitez 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 n'est pas disponible, vous recevrez un message d'erreur disant: requested format not available. Si le format vidéo est disponible, aucun message d'erreur ne s'affiche lorsque vous utilisez l'option --simulate. 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, j'ai utilisé le format vidéo flv 360p commun:
-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'

Notes:

Je n'ai pas ajouté l'option --simulate à la dernière commande. Cette commande sera donc exécutée pour de vrai.

53
karel

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.

Notez que --help indique 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
18
coreyb

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...
3
Xui

é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 list en consé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 reprend les fichiers partiellement téléchargés
  • -i ignore toutes les erreurs.
  • -t utilise le titre de la vidéo comme nom de fichier.
  • -k conserve la vidéo sur le disque une fois le post-traitement terminé.
  • --format mp4 enregistre les fichiers vidéo au format MP4.
  • --yes-playlist confirme que l'URL qui suit pointe vers une liste de lecture vidéo.
3
Ahmed Ismail

la solution la plus simple serait de créer 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 il téléchargera les vidéos une par une Par défaut, l'option -f 18 est destinée à la vidéo 360p

3
Shantanu Bedajna

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-playlist té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.

3
user669330

Essayez avec le script bash:

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

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) 
1
user859198