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.
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.
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'
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.
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
.
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.
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
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...
é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.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
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.
Essayez avec le script bash:
while read LL ; do youtube-dl "$LL" ; done < your_file
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)