youtube-dl: télécharger les vidéos Youtube

Pour lire des vidéos Youtube, il existe une solution simple, aller sur youtube.com se taper la pub, les commentaires nauséabonds et les recommandations douteuses ou se la jouer ninja en téléchargeant directement la vidéo.

Le streaming, c'est pratique mais ça ne permet pas de lire en étant hors ligne et pas de possibilité d'archiver ni de partager des vidéos. C'est le cas pour tous les autres sites de streaming, mais ça tombe bien parce que youtube-dl gère de très nombreux sites (comme son nom ne l'indique pas).

C'est un couteau suisse, en ligne de commande, qui risque de rebuter quelques-uns mais qui est un incontournable. L'essayer c'est l'adopter en plus on va tout détailler pour que vous puissiez l'utiliser sans difficultés.

Installation

Je préfère installer le paquet youtube-dl depuis les dépôts Debian par fainéantise. Tant que ça marche, je ne m'aventure pas à installer la dernière version.

Installer depuis les dépôts

On installe avec notre gestionnaire de paquet préféré:


#root
apt install youtube-dl

Installer la dernière version

La procédure d'installation simplifiée:


#root
curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl

mais je vous recommande de lire la documentation: http://rg3.github.io/youtube-dl/download.html

Vérifier la version utilisée

Pour voir quelle version vous utilisez:


$user
youtube-dl --version

Si vous rencontrez des difficultés, cela peut venir d'une version trop ancienne ou d'un site qui n'est pas/plus géré. Cette information vous sera utile à ce moment.

Utilisation

On décide de télécharger la vidéo: "Alladech - Shaïning - Les Kassos #41" https://www.youtube.com/watch?v=7iMr0DzAXaQ
Si vous ne connaissez pas Les Kassos, il n'est pas trop tard.

Télécharger une vidéo

La solution la plus facile pour télécharger une vidéo:


$user
youtube-dl https://www.youtube.com/watch?v=7iMr0DzAXaQ

Le problème avec cette commande, c'est qu'on ne choisit pas grand chose. Dans ce cas, j'ai téléchargé la vidéo en 1080p (c'est pas toujours utile) et si vous n'avez pas beaucoup de place ni de bande passante ça va être pénible.

La solution, c'est de choisir quel format télécharger.

Télécharger une vidéo (méthode avancée)

D'abord, on va voir qu'elles sont les formats et les qualités disponibles:


$user
youtube-dl -F https://www.youtube.com/watch?v=7iMr0DzAXaQ

[youtube] 7iMr0DzAXaQ: Downloading webpage
[youtube] 7iMr0DzAXaQ: Downloading video info webpage
[youtube] 7iMr0DzAXaQ: Extracting video information
WARNING: unable to extract uploader nickname
[youtube] 7iMr0DzAXaQ: Downloading MPD manifest
[info] Available formats for 7iMr0DzAXaQ:
format code  extension  resolution note
139          m4a        audio only DASH audio   48k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 526.91KiB
249          webm       audio only DASH audio   57k , opus @ 50k, 569.12KiB
250          webm       audio only DASH audio   71k , opus @ 70k, 708.14KiB
171          webm       audio only DASH audio  108k , vorbis@128k, 1.07MiB
251          webm       audio only DASH audio  127k , opus @160k, 1.24MiB
140          m4a        audio only DASH audio  128k , m4a_dash container, mp4a.40.2@128k (44100Hz), 1.37MiB
160          mp4        256x144    DASH video   47k , avc1.4d400c, 25fps, video only, 288.10KiB
278          webm       256x144    144p   81k , webm container, vp9, 25fps, video only, 640.82KiB
133          mp4        426x240    DASH video   98k , avc1.4d4015, 25fps, video only, 527.64KiB
242          webm       426x240    240p  154k , vp9, 25fps, video only, 999.95KiB
134          mp4        640x360    DASH video  206k , avc1.4d401e, 25fps, video only, 1.11MiB
243          webm       640x360    360p  285k , vp9, 25fps, video only, 1.82MiB
135          mp4        854x480    DASH video  370k , avc1.4d401e, 25fps, video only, 2.03MiB
244          webm       854x480    480p  477k , vp9, 25fps, video only, 3.06MiB
136          mp4        1280x720   DASH video  651k , avc1.4d401f, 25fps, video only, 3.91MiB
247          webm       1280x720   720p 1157k , vp9, 25fps, video only, 8.19MiB
137          mp4        1920x1080  DASH video 1258k , avc1.640028, 25fps, video only, 8.47MiB
248          webm       1920x1080  1080p 2373k , vp9, 25fps, video only, 21.62MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
43           webm       640x360    medium , vp8.0, vorbis@128k
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k
22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)

Cette commande ne télécharge rien.

Télécharger une vidéo en choisissant son format

Je décide maintenant de télécharger la vidéo dans un autre format, par exemple en .mp4 avec la résolution 640x360.


code
format code  extension  resolution note
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k

Il suffit de récupérer le code de la vidéo qui correspond et de lancer la commande:


$user
youtube-dl -f 18 https://www.youtube.com/watch?v=7iMr0DzAXaQ

De la même manière, je peux aussi combiner le format audio et le format vidéo. Par exemple, si c'est un clip, on peut choisir une qualité audio élevée et une qualité vidéo faible.


$user
youtube-dl -f 160+140  https://www.youtube.com/watch?v=7iMr0DzAXaQ

Télécharger les sous-titre de la vidéo

On commence par lister les sous-titre disponible pour cette vidéo:


$user
youtube-dl --list-subs  https://www.youtube.com/watch?v=7iMr0DzAXaQ
...
Available subtitles for 7iMr0DzAXaQ:
Language formats
fr       vtt, ttml
be       vtt, ttml
it       vtt, ttml
es       vtt, ttml
en       vtt, ttml
ja       vtt, ttml
de       vtt, ttml

Pour télécharger uniquement les sous-titre en français


$user
youtube-dl --write-sub --sub-lang fr --skip-download https://www.youtube.com/watch?v=7iMr0DzAXaQ

On peut aussi récupérer les sous-titres dans plusieurs langues:


$user
youtube-dl --write-sub --sub-lang be,de,ja --skip-download https://www.youtube.com/watch?v=7iMr0DzAXaQ

Pour télécharger la vidéo et intégrer les fichiers de sous-titre dans le fichier:


$user
youtube-dl -f 160+140 --write-sub --sub-lang fr --embed-subs  https://www.youtube.com/watch?v=7iMr0DzAXaQ

Télécharger une playlist

Je veux récupérer la saison 1 de Kassos, elle disponible sous forme de playlist ici: https://www.youtube.com/playlist?list=PLPkQoAsYuIp1HrM3LP3dkST_7YjIhvTIM

Une solution simple consiste à utiliser uniquement le lien de la playlist comme on l'a fait pour une vidéo:


$user
youtube-dl https://www.youtube.com/playlist?list=PLPkQoAsYuIp1HrM3LP3dkST_7YjIhvTIM

Ici, on récupère toutes les vidéos de la playlist (22 vidéos au total).
Dans le cas où je ne souhaite récupérer que les 16 épisodes (donc pas de teaser ni trailer):


$user
youtube-dl --playlist-start 1 --playlist-end 16  https://www.youtube.com/playlist?list=PLPkQoAsYuIp1HrM3LP3dkST_7YjIhvTIM

  • --playlist-start : pour indiquer la première vidéo à télécharger
  • --playlist-end : pour indiquer la dernière vidéo à télécharger
si on indique pas de numéro après --playlist-start ou --playlist-end, le téléchargement commencera par la première vidéo et se terminera à la dernière.

Télécharger plusieurs vidéos

Pour télécharger plusieurs vidéos (hors playlist), il est possible de faire ça grâce une seule commande.
Dans cet exemple, on récupère un épisode de chaque saison.
On commence par créer un fichier texte avec tous les liens des vidéos à télécharger:


code
liste.txt
https://www.youtube.com/watch?v=43ehs06IxlA
https://www.youtube.com/watch?v=pLVtpMqTUSI
https://www.youtube.com/watch?v=FD3i31DGAMI

Ensuite on lance notre commande:


$user
youtube-dl -a liste.txt

C'est tout.

Définir le nom du fichier de sortie

Plutôt que de s’embêter à renommer les fichiers après le téléchargement, on peut indiquer dans la commande ce qui doit être mis comme nom de fichier. Ici, le titre de la vidéo et son extension:


$user
youtube-dl https://www.youtube.com/watch?v=7iMr0DzAXaQ -o "%(title)s.%(ext)s"

Pour les infos complémentaires lire la section "OUTPUT TEMPLATE" du man.

Récupérer le lien de la vidéo

Pour obtenir l'URL de la vidéo, et l'ouvrir en streaming dans VLC ou mplayer:


$user
youtube-dl -g -f 43  https://www.youtube.com/watch?v=Un2yBgIAxYs

https://r8---sn-n4g-atok.googlevideo.com/videoplayback?ei=_oYlWtsglN1w0a6byAg&ms=au&ipbits=0&pl=23&mv=m&source=youtube&mt=1512408704&id=o-AG4rJwtEp9i5733-6z6v2NOL7b6haeaQd7QlLR--tzGg&mm=31&expire=1512430430&itag=43&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&mn=sn-n4g-atok&signature=A097A1E939EB0568D66B4C900906F6CA29D27CFF.3952EF1EA8D9E9F61FBC1AF2D10C00361B24EBF1&requiressl=yes&initcwndbps=1798750&ip=77.130.135.150&mime=video%2Fwebm&gir=yes&key=yt6&clen=62659982&ratebypass=yes&dur=0.000&lmt=1469203314069116

Divers

Pour mieux comprendre les URLs sur Youtube. Dans l'URL on peut retrouver différente informations:

https://www.youtube.com/watch?v=o6xHCmQOuXc&index=10&list=PLPkQoAsYuIp3FU9dPoa2WLHssuU9WuZAQ

  • v=o6xHCmQOuXc : identifiant de la vidéo
  • list=PLPkQoAsYuIp3FU9dPoa2WLHssuU9WuZAQ : identifiant de la playlist

Conclusion

On a utilisé youtube-dl sur YouTube mais il fonctionne sur de très nombreux sites . Je n'ai présenté que les fonctions de base alors qu'il existe de nombreuses fonctionnalités. En plus, il est possible de combiner les différentes options.
Si vous avez des astuces sur youtube-dl ou un meilleur utilitaire, vous pouvez les partager en commentaire.

Ressources


$user
man youtube-dl
youtube-dl --help

3 commentaires

WhilelM |

On peut aussi se contenter d'extraire la bande son d'une vidéo et choisir son format.
option -x (ou --extract-audio) pour convertir en fichier son uniquement, --audio-format FORMAT pour en choisir le format, j'ai un faible pour les formats vorbis, mp3 ou flac.

mr.bix |

Un peu de pub éhontée : youtube-dl ne fait que le téléchargement, pas la recherche de vidéo. Le projet weboob (et plus précisément la commande videoob) permet de faire des recherches youtube en ligne de commande, et de les télécharger (ça se sert de youtube-dl).
(Disclaimer : je suis l'un des devs de ce projet)

f4b1 |

Super article franchement, je bookmark direct !

Fil RSS des commentaires de cet article

Écrire un commentaire