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
Utilisation
[somOl type="disc"]
Télécharger une vidéo
Télécharger une vidéo (méthode avancée)
Télécharger les sous-titre de la vidéo
Télécharger une playlist
Télécharger plusieurs vidéos
Définir le nom du fichier de sortie
Récupérer le lien de la vidéo
Divers
[/somOl]
Conclusion
Ressources
[/sommaire]
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):
[codeUser]youtube-dl --playlist-start 1 --playlist-end 16 https://www.youtube.com/playlist?list=PLPkQoAsYuIp1HrM3LP3dkST_7YjIhvTIM[/codeUser]
- --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:
[codeFile fichier="liste.txt"]https://www.youtube.com/watch?v=43ehs06IxlA
https://www.youtube.com/watch?v=pLVtpMqTUSI
https://www.youtube.com/watch?v=FD3i31DGAMI[/codeFile]
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
[codeUser]man youtube-dl
youtube-dl --help[/codeUser]
nIQnutn CC-BY
Original post of nIQnutn.Votez pour ce billet sur Planet Libre.