Télécharger plusieurs fichiers avec youtube-dl

28

J'utilise youtube-dl pour télécharger des fichiers depuis 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 veux 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 à la fois? J'utilise Ubuntu 12.04 64 bits.

    
posée Mecha-Unix 18.08.2013 - 12:15
la source

7 réponses

36

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 -ci <url-of-playlist>

... où <url-of-playlist> est remplacé par l'URL de la liste de lecture et remplace FORMAT par tout format vidéo disponible, par exemple 18 .

Vidéo de la playlist pour commencer à

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

... où <url-of-playlist> est remplacé par l'URL de la liste de lecture, remplacez FORMAT par n'importe quel format vidéo disponible, par exemple 18 et NUMBER représente le numéro de la vidéo dans la liste de lecture à démarrer téléchargement en premier.

Canal

youtube-dl -f FORMAT -citw -v <url-of-channel>

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

Vidéos ne figurant pas dans la même liste de lecture ou la même chaîne

Commencez par créer 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 placées dans une liste comportant une seule URL et rien d'autre sur chaque ligne, avec une nouvelle ligne pour chaque URL dans la liste. Enregistrez le fichier de commandes avec un nom facile à retenir, tel que batch-file.txt. Si les fichiers multiples se trouvent tous sur la même page Web de YouTube, vous pouvez générer un fichier texte contenant une liste contenant tous les liens de cette page en exécutant la commande suivante:

lynx --dump -listonly "URL-of-YouTube-webpage" > batch-file.txt

À partir du terminal exécuté:

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

Ceci est la commande de base, mais vous devez également ajouter les formats des vidéos que vous souhaitez télécharger ou télécharger des vidéos avec des formats inutiles. Donc, simulez d’abord 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 obtenez un message d’erreur indiquant: requested format not available . Si le format vidéo est disponible, vous ne recevrez aucun message d'erreur lorsque vous utilisez l'option --simulate . Vous pouvez également ajouter l'option -F pour voir tous les formats valides comme celui-ci:

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 . Donc, après avoir ajouté le format vidéo que vous souhaitez à la commande, la commande devient quelque chose comme ceci:

youtube-dl -cit -f 35 --batch-file='/path/to/batch-file.txt'

Remarques:

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

    
réponse donnée karel 18.08.2013 - 13:40
la source
8

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

Notez que --help dit youtube-dl --help Usage: youtube-dl [options] url [url...]

Exemple d'entrée:

    corey in /media/Media/Videos$ 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
    
réponse donnée coreyb 13.11.2013 - 16:23
la source
2

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

Utilisez ensuite la commande ci-dessous.

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

L'option --yes-playlist téléchargera la playlist, si l'URL se réfère à une vidéo et à une playlist.

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

    
réponse donnée user669330 24.03.2017 - 18:29
la source
1

Pour télécharger plusieurs vidéos, vous pouvez utiliser cette structure. C'est similaire à 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étez la dernière commande sans le dernier argument

youtube-dl -f FORMAT url1; !:- url2; !:-url...
    
réponse donnée Xui 26.06.2017 - 13:51
la source
1

La solution la plus simple serait de créer un script 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"

copiez et collez les liens vidéo dans ce fichier txt dans le dossier de documents avec chaque URL de la vidéo dans une nouvelle ligne et exécutez ce script il va télécharger les vidéos une par une Par défaut, l'option -f 18 est pour la vidéo 360p

    
réponse donnée Shantanu Bedajna 26.06.2017 - 14:07
la source
1

étape 1: accédez à votre bureau et créez un document texte appelé list (ou tout autre nom). Copiez et collez les URL si les fichiers que vous souhaitez télécharger dans le fichier, 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é quelque chose d'autre dans votre fichier)

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 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 sous forme de fichiers MP4.
  • --yes-playlist affirme que l'URL qui suit pointe vers une liste de lecture vidéo.
réponse donnée Ahmed Ismail 19.08.2017 - 05:32
la source
0

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

youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url) 
    
réponse donnée user859198 12.08.2018 - 06:07
la source

Lire d'autres questions sur les étiquettes