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.
[sommaire ordre="ol" type="1"]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é:
[codeRoot]apt install youtube-dl[/codeRoot]Installer la dernière version
La procédure d'installation simplifiée:
[codeRoot]curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl chmod a+rx /usr/local/bin/youtube-dl[/codeRoot]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:
[codeUser]youtube-dl --version[/codeUser]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:
[codeUser]youtube-dl https://www.youtube.com/watch?v=7iMr0DzAXaQ[/codeUser]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:
[codeUser]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)[/codeUser]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.
[codeFile fichier=""]format code extension resolution note 18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k[/codeFile]Il suffit de récupérer le code de la vidéo qui correspond et de lancer la commande:
[codeUser]youtube-dl -f 18 https://www.youtube.com/watch?v=7iMr0DzAXaQ[/codeUser]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.
[codeUser]youtube-dl -f 160+140 https://www.youtube.com/watch?v=7iMr0DzAXaQ[/codeUser]Télécharger les sous-titre de la vidéo
On commence par lister les sous-titre disponible pour cette vidéo:
[codeUser]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[/codeUser]Pour télécharger uniquement les sous-titre en français
[codeUser]youtube-dl --write-sub --sub-lang fr --skip-download https://www.youtube.com/watch?v=7iMr0DzAXaQ[/codeUser]On peut aussi récupérer les sous-titres dans plusieurs langues:
[codeUser]youtube-dl --write-sub --sub-lang be,de,ja --skip-download https://www.youtube.com/watch?v=7iMr0DzAXaQ[/codeUser]Pour télécharger la vidéo et intégrer les fichiers de sous-titre dans le fichier:
[codeUser]youtube-dl -f 160+140 --write-sub --sub-lang fr --embed-subs https://www.youtube.com/watch?v=7iMr0DzAXaQ[/codeUser]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:
[codeUser]youtube-dl https://www.youtube.com/playlist?list=PLPkQoAsYuIp1HrM3LP3dkST_7YjIhvTIM[/codeUser]
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):
- --playlist-start : pour indiquer la première vidéo à télécharger
- --playlist-end : pour indiquer la dernière vidéo à télécharger
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:
Ensuite on lance notre commande:
[codeUser]youtube-dl -a liste.txt[/codeUser]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:
[codeUser]youtube-dl https://www.youtube.com/watch?v=7iMr0DzAXaQ -o "%(title)s.%(ext)s"[/codeUser]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:
[codeUser]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[/codeUser]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
- http://rg3.github.io/youtube-dl/ Page officielle du projet
- https://github.com/rg3/youtube-dl/blob/master/README.md#readme documentation de youtube-dl
By nIQnutn