66 votes

Téléchargement de plusieurs fichiers avec youtube-dl

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 toutes les URL en une seule fois ? J'utilise Ubuntu 12.04 64-bit.

68voto

karel Points 97032

Raccourcis

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

Liste de lecture

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 remplacer FORMAT avec tout format vidéo disponible, par exemple 18 . Vous pouvez utiliser le -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 liste de lecture du début à la fin d'un 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, replace FORMAT avec tout format vidéo disponible, par exemple 18 et NUMBER est le numéro de la vidéo dans la liste de lecture pour commencer/terminer le téléchargement.

Chaîne

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 remplace FORMAT avec tout format vidéo disponible, par exemple 18 .

Vidéos ne se trouvant pas dans la même liste de lecture ou le même canal

Créez d'abord un fichier batch qui est un fichier texte contenant une liste d'URL de vidéos de YouTube que vous voulez télécharger. Les URL doivent être organisées en une liste ne comportant qu'une seule URL et rien d'autre sur chaque ligne, avec une nouvelle ligne pour chaque URL de la liste. Enregistrez le fichier batch avec un nom facile à retenir, comme batch-file.txt. Si les fichiers multiples se trouvent tous sur la même liste de lecture, la même chaîne ou la même page web d'utilisateur dans YouTube, vous pouvez générer un fichier texte avec une liste qui contient 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, exécutez :

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 voulez télécharger, sinon vous risquez de télécharger des vidéos dans des formats que vous ne vouliez pas. Simulez donc d'abord votre téléchargement pour voir si le format que vous voulez 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 obtiendrez un message d'erreur indiquant : requested format not available . Si le format vidéo est disponible, vous n'obtiendrez pas de message d'erreur lorsque vous utiliserez l'application --simulate option. 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 commun flv 360p :
-f 34 . Vous pourriez préférer essayer le format vidéo flv 480p en utilisant -f 35 . Ainsi, après avoir ajouté le format vidéo que vous souhaitez à la commande, celle-ci devient quelque chose comme ceci :

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

Notes :

Je n'ai pas ajouté le --simulate à la dernière commande, afin que cette commande soit exécutée pour de bon.

40voto

Adrian Serafin Points 4442

Vous pouvez mettre les urls l'une après l'autre, avec un espace entre elles. Youtube-dl les téléchargera séquentiellement. C'est un peu plus simple que de faire un fichier batch.

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

Entrée de l'échantillon :

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

13voto

Ahmed Ismail Points 139

Pour télécharger plusieurs fichiers depuis YouTube

  1. Allez sur votre bureau et créez un document texte appelé list (ou tout autre nom). Copiez et collez les URL des fichiers que vous voulez télécharger dans le fichier, une URL par ligne.

  2. Ouvrez le terminal et allez sur le bureau

    cd ~/Desktop
  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 vidéo de YouTube liste de lecture

Exécutez cette commande

youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
  • -c reprendre les fichiers partiellement téléchargés
  • -i ignorer toute erreur.
  • -t utiliser le titre de la vidéo comme nom de fichier.
  • -k conserver 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.

6voto

Shantanu Bedajna Points 978

la solution la plus simple serait de faire un script bash comme ceci

#!/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 documents avec chaque URL de vidéo dans une nouvelle ligne et exécutez ce script il téléchargera les vidéos une par une Par défaut, le -f 18 l'option est pour la vidéo 360p

5voto

MrMesees Points 221

youtube-dl -cit --format=mp4 --batch-file=./list-of-youtube-videos-link.txt c'est ce qui a fonctionné pour moi en combinant https://askubuntu.com/a/947676/481688 y https://askubuntu.com/a/334097/481688 solutions. Je l'enregistre ici de manière autonome plutôt que de faire défiler les réponses multiples à l'avenir.

  • --batch-file=./list-of-youtube-videos-link.txt fichier avec une liste de liens youtube
  • --format=mp4 sortie au format mp4 souhaitée
  • -c reprendre les fichiers partiellement téléchargés
  • -i ignorer toute erreur.
  • -t utiliser le titre de la vidéo comme nom de fichier.

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