Youtube-dl est un logiciel en ligne de commande qui vous permet de télécharger des vidéos YouTube et autres services.
Installation
Fedora
# yum install youtube-dl
Ubuntu
$ sudo apt-get install youtube-dl
Téléchargement simple d’une vidéo
L’utilisation la plus basique de youtube-dl est la suivante :
youtube-dl url-de-la-video
Remplacer url-de-la-video par le lien de la vidéo visible dans le navigateur quand vous regarder la vidéo. Peu importe comment il est, s’il comporte beaucoup de paramètre ou pas. Il faut quand même qu’il y est un watch?v=xxxxxxxx ou un playlist?list=xxxxxxxx
Par exemple :
youtube-dl https://www.youtube.com/watch?v=QG6EWqhaydI
Le résultat sera un fichier nommé QG6EWqhaydI.webm, suivant l’identifiant dans l’URL.
Pour avoir un fichier avec le nom réel de la vidéo poursuivez la lecture.
Utilisation avancé
Ce n’est pas réellement une utilisation avancé, mais ça permet d’avoir plus d’options et de contrôle sur le téléchargement.
Nommé le fichier avec le nom de la vidéo
On vas utilisé le paramètre -o comme suit :
youtube-dl -o "%(stitle)s.%(ext)s" url-de-la-video
Ou bien on peut on peu faire plus facile; utiliser l’un des paramètre -t ou -l. -l pour avoir le nom littérale de la vidéo et -t pour avoir un nom simplifié avec seulement des caractères alphanumérique. Le fichier enregistré aura la forme : nom_de_la_video-XXXXXX.ext ou bien nom de la video.ext.
Extraire le son seulement
youtube-dl --extract-audio url-de-la-video
Youtube-dl télécharge d’abord la vidéo et extrait le son après et fini par supprimé la vidéo, ne gardant ainsi que le fichier audio. Si vous préférez garder le fichier vidéo, ajouter le paramètre -k.
Télécharger plusieurs vidéos d’un coup
À partir d’une playlist
Pour télécharger toute une playlist, il faut indiquer l’URL de la playlist et non une URL vers une simple vidéo. Un lien de playlist est de la forme https://www.youtube.com/playlist?list=PLC24E7FE05C04C4B6
youtube-dl https://www.youtube.com/playlist?list=xxxxxxxx
À partir d’un fichier de URLs
Il faut utiliser le paramètre -a et indiquer après le nom d’un fichier contenant une liste d’URL vers les vidéos.
youtube-dl -a /fichier/contenat/les/liens
Téléchargement sélectif
Je vais simplement vous présenter les paramètres et leurs effets du moment qu’ils sont simple d’utilisation, comme tout ce qui précède d’ailleurs. Ils n’ont de sens que quand on télécharge plusieurs vidéos.
--playlist-start NUMERO commencer à télécharger à partir de de cette vidéo (1 par défaut) --playlist-end NUMERO finir le téléchargement à cette vidéo (jusqu’à la fin par défaut) --match-title REGEX télécharger seulement les vidéos qui correspondent à ce titre (expression régulière ou texte simple) --reject-title REGEX ne PAS télécharger les vidéos correspondant à ce titre. (expression régulière ou texte simple) --max-downloads NUMERO nombre maximal de vidéos à télécharger. -A numérote les fichier automatiquement
Autre paramètres utiles
-g, --get-url Retourne l'URL -e, --get-title Retourne le titre --get-thumbnail retourne l'URL vers la miniature de la vidéo --get-description affiche la description de la vidéo --get-filename retourne le nom du fichier a enregistré --get-format retourne le format enregistré -w, --no-overwrites ne pas écraser les fichiers.
Merci pour l’article. Très agréable à lire !!
petite question: tu fais comment pour mettre des urls dans un fichier??
j’imagine que tu les copie-colle dans un format comme odt, et lui tu le met dans un fichier? mais maintenant, lequel marche?
Ça reste flou pour moi aussi en ce qui concerne le fichier listant plusieurs urls. La documentation dit seulement :
» -a F, –batch-file=F
Specify the name of a file containing URLs of videos to download
from youtube in batch mode. The file must contain one URL per line. »
Sous Windows, il semblerait que les fichiers batch aient pour extension .cmd, .bat ou .btm.
Pour un système Unix/Linux, j’imagine que cela revient à créer un fichier en bash (.sh).
Du coup, est-ce que ce code conviendrait ou faut-il ajouter un fichier de configuration particulier?
#!/bin/bash
youtube-dl -a /chemin/vers/fichier/contenant/les/liens
Et dans le fichier de liens :
#!/bin/bash
http://urlverslavideo
http://urlversunedeuxiemevideo
Et si ce code est valide, fonctionne-t-il également si les urls sont des url de playlists?
Merci d’avance.
Non, il te faut juste un simple fichier texte avec les liens dedans.
liste.txt:
https://www.youtube.com/watch?v=wwxcsdcsd
https://www.youtube.com/watch?v=fdfgfdkuk
https://www.youtube.com/watch?v=fjfgfsdfd
Batch mode veut simplement dire, télécharger plusieurs fichier en une passe. Ça n’a rien a voir avec les fichier batch ou bash.
D’accord! ^^
Bon, depuis mon dernier post, j’ai un peu avancé et testé youtube-dl en tâche cron. Ca fonctionnait parfaitement … jusqu’à ce que je veuille utiliser le paramètre -a dans la commande…
J’écris les adresses dans un fichier url.txt via un formulaire php avec la fonction file_put_content() seulement cette fonction insère un saut de ligne avant d’écrire la première url. Et je crois bien que youtube-dl n’aime pas ça… car aucun téléchargement ne se lance. :/
En tout cas merci, Dragnucs, pour ton p’tit tuto et ton aide. (Ça leur apprendra, à ces bandes de rapaces, de vouloir faire du pognon avec du contenu qui ne leur appartient pas! :X)
Excellent ce petit logiciel que je ne connaissais pas ! Je l’installe de ce pas 🙂
Existe-il la fonctionnalité de n’extraire que le son ?
Effectivement, il faut ajouter le paramètre –extract-audio. J’en parle dans la partie Extraire le son seulement.