Comment télécharger une vidéo ou playlist youtube sous linux ?
Si vous suivez ce tutoriel, vous serez ensuite capable de télécharger n'importe quelle vidéo provenant des sites suivants :
youtube-dl --list-extractors youtube:playlist youtube:user youtube:search youtube metacafe dailymotion video.google video.google:search photobucket video.yahoo video.yahoo:search DepositFiles facebook blip.tv vimeo myvideo comedycentral escapist collegehumor xvideos soundcloud infoq mixcloud stanfordoc mtv generic
Pas mal, non ? 😉
Commençons par installer le programme principal youtube-dl écrit en python.
sudo apt-get install youtube-dl
Ensuite pour télécharger une vidéo de youtube c'est très simple, il suffit de copier l'url dans la commande :
youtube-dl "http://www.youtube.com/watch?v=BcL---4xQYA"
et la vidéo sera téléchargée dans le dossier courant, au format .flv
Pour spécifier un autre format il faut utiliser l'option -f, la liste des formats disponibles est :
youtube-dl -F "http://www.youtube.com/watch?v=BcL---4xQYA"[youtube] Setting language [youtube] BcL---4xQYA: Downloading video webpage [youtube] BcL---4xQYA: Downloading video info webpage [youtube] BcL---4xQYA: Extracting video information Available formats: 35 : flv [480x854] 34 : flv [360x640] 18 : mp4 [360x640] 43 : webm [360x640] 5 : flv [240x400] 17 : mp4 [144x176]
Ainsi si vous souhaitez enregistrer la vidéo au format mp4 il vous faudra rajouter :
youtube-dl -f 17 "http://www.youtube.com/watch?v=BcL---4xQYA"
Cela marche aussi en théorie avec l'url d'une playlist youtube. Cependant chez moi seule la première vidéo de la playlist était téléchargée. J'ai donc du au préalable parser les flux youtube de la playlist pour appliquer youtube-dl sur chacun d'eux. Cela se fait au moyen du script umph. Téléchargez sur le site les deux archives umph-version.tar.gz et Umph-Prompt-version.tar.gz et les extraire.
Assurez vous au préalable que vous avez bien perl d'installé :
perl -v
Le cas échéant installez le à partir du site officiel perl.org
Pour installer umph et Umph-Prompt la procédure est la même :
perl Makefile.PL make make install
L'installation est terminée. Pour parser le flux de la playlist il suffit alors de taper :
umph playlist_ID | youtube-dl -l -a
où le playlist_ID est la chaîne de caractères et numéros étranges qui identifie la playlist youtube (privé de PL), voir l'image ci-dessous :
umph 46408891B63317A4 | youtube-dl -l -a -
Par défaut il téléchargera les 25 premières vidéos, pour spécifier le nombre de vidéos il suffit de rajouter l'option -m 200 pour avoir les 200 premières vidéos par exemple.
De cette façon vous récupérez toutes les vidéos de la playlist au format .flv.
Pour extraire seulement la piste audio au format mp3 (si seule la musique vous intéresse), vous pouvez utiliser le programme ffmpeg, et faire une boucle sur chaque fichier flv en appelant la commande :
ffmpeg -i fichier.flv fichier.mp3
Fin du tutoriel.
Très bon article.
Quelques remarques :
– il peut éventuellement manquer quelques paquets :
* libgetopt-argvfile-perl
* libxml-dom-perl
– si des signatures sont présentes, la vidéo peut ne pas être téléchargées, alors on peut rajouter -i pour utiliser le mode interactif et sélectionner plus précisément les vidéos à télécharger parmi la playlist.
En tout cas, merci, je fais suivre via mon blog !
Salut !
Peux tu m’aider ? (tout d’abord je suis ultra nulle en informatique !)
J’ai installé youtube-dl mais une fois que je copie l’url comme dans ton article, ça ne fonctionne pas et j’ai ce message :
youtube-dl « https://www.youtube.com/watch?v=pJmmlH9ghgY »
[youtube] Setting language
[youtube] pJmmlH9ghgY: Downloading video webpage
[youtube] pJmmlH9ghgY: Downloading video info webpage
[youtube] pJmmlH9ghgY: Extracting video information
Traceback (most recent call last):
File « /usr/bin/youtube-dl », line 4645, in
main()
File « /usr/bin/youtube-dl », line 4636, in main
_real_main()
File « /usr/bin/youtube-dl », line 4620, in _real_main
retcode = fd.download(all_urls)
File « /usr/bin/youtube-dl », line 869, in download
ie.extract(url)
File « /usr/bin/youtube-dl », line 1135, in extract
return self._real_extract(url)
File « /usr/bin/youtube-dl », line 1406, in _real_extract
url_map = dict((ud[‘itag’][0], ud[‘url’][0] + ‘&signature=’ + ud[‘sig’][0]) for ud in url_data)
File « /usr/bin/youtube-dl », line 1406, in
url_map = dict((ud[‘itag’][0], ud[‘url’][0] + ‘&signature=’ + ud[‘sig’][0]) for ud in url_data)
KeyError: ‘sig’
Merci beaucoup!
Salut !
C’est un problème de version installée.
Essaye les manip’ suivantes :
http://askubuntu.com/questions/429746/youtube-dl-stopped-working
http://askubuntu.com/questions/431508/unable-to-download-videos-using-youtube-dl-sig-error-how-to-correct