Afficher/cacher Sommaire
youtube-dl: télécharger les vidéos Youtube
Installation
On installe avec notre gestionnaire de paquet préféré:
$ sudo apt install youtube-dl #debian
$ yaourt -S youtube-dl #archlinux
Vérifier la version utilisée
$ youtube-dl --version
Utilisation
On décide de télécharger la vidéo: “Alladech - Shaïning - Les Kassos #41” https://www.youtube.com/watch?v=7iMr0DzAXaQ
Télécharger une vidéo
La solution la plus facile pour télécharger une vidéo:
$ 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:
$ youtube-dl -F https://www.youtube.com/watch?v=7iMr0DzAXaQ
[youtube] 7iMr0DzAXaQ: Downloading webpage
[youtube] 7iMr0DzAXaQ: Downloading video info webpage
[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 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:
$ 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.
$ 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:
$ 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
$ 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:
$ 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:
$ 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:
$ 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):
$ 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:
$ nano 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:
$ youtube-dl -a liste.txt
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:
$ 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:
$ 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
Ressources
Aide
$ man youtube-dl
$ youtube-dl --help