🏠 Home
Lyokolux's blog

[3/5] Youtube-DL, un outil efficace


C’est régulier, environ 3-4 fois par semaine; je télécharge des vidéos Youtube. Soit pour la vidéo ou bien le son, car c’est bien souvent un podcast. L’outil est en ligne de commande et est d’une grande puissance. Il n’est pas, contrairement à ce que ce nom indique, limité à la plateforme Youtube. Passons le en revue.

Comment l’installer ?

Sous Debian/Ubuntu :

sudo apt-get install youtube-dl

Simple. Pour Windows, Mac ou autres ditributions, c’est directement sur le site web.

Comment l’utiliser (en bash/ligne de commande) ?

En simple et rapide : youtube-dl url-de-la-vidéo. Basique. Mais tout est personnalisable ! On peut aller bien plus loin.

Choisir ses formats

L’option youtube-dl -F permet de voir tout les formats disponible pour une url donnée. Après avoir trouvé le(s) bon(s) format(s) audio et vidéo, on télécharge comme ceci :

youtube-dl -f id_du_format_video+id_du_format_audio

Pour ne télécharger que l’audio, on retire l’identifiant vidéo et on ajoute l’option -x.
Exemple avec une vidéo

$ youtube-dl -F https://www.youtube.com/watch?v=DLzxrzFCyOs

qui renvoie

[youtube] DLzxrzFCyOs: Downloading webpage
[youtube] DLzxrzFCyOs: Downloading video info webpage
[youtube] DLzxrzFCyOs: Downloading js player vflVKnssA
[info] Available formats for DLzxrzFCyOs:
format code  extension  resolution note
249          webm       audio only DASH audio   50k , opus @ 50k, 1.21MiB
250          webm       audio only DASH audio   67k , opus @ 70k, 1.61MiB
140          m4a        audio only DASH audio  128k , m4a_dash container, mp4a.40.2@128k, 3.22MiB
251          webm       audio only DASH audio  133k , opus @160k, 3.23MiB
171          webm       audio only DASH audio  147k , vorbis@128k, 3.48MiB
278          webm       192x144    144p   74k , webm container, vp9, 30fps, video only, 1.73MiB
160          mp4        192x144    144p   84k , avc1.4d400c, 30fps, video only, 1.84MiB
242          webm       320x240    240p  171k , vp9, 30fps, video only, 3.90MiB
133          mp4        320x240    240p  184k , avc1.4d400d, 30fps, video only, 3.37MiB
243          webm       480x360    360p  308k , vp9, 30fps, video only, 7.00MiB
134          mp4        480x360    360p  465k , avc1.4d401e, 30fps, video only, 8.17MiB
244          webm       640x480    480p  564k , vp9, 30fps, video only, 11.94MiB
135          mp4        640x480    480p  888k , avc1.4d401e, 30fps, video only, 15.12MiB
247          webm       960x720    720p 1128k , vp9, 30fps, video only, 23.19MiB
136          mp4        960x720    720p 1541k , avc1.4d401f, 30fps, video only, 27.92MiB
248          webm       1440x1080  1080p 1977k , vp9, 30fps, video only, 40.53MiB
137          mp4        1440x1080  1080p 2576k , avc1.640028, 30fps, video only, 48.18MiB
271          webm       1920x1440  1440p 4368k , vp9, 30fps, video only, 83.94MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 2.03MiB
36           3gp        320x240    small , mp4v.20.3, mp4a.40.2, 5.56MiB
18           mp4        480x360    medium , avc1.42001E, mp4a.40.2@ 96k, 14.65MiB (best)

Seul la musique m’intéresse ;)
youtube-dl -f 140 -x https://www.youtube.com/watch?v=DLzxrzFCyOs

Finalement, ma soeur veut avoir la vidéo pour la regarder avant de s’endormir.
youtube-dl -f 271+140 https://www.youtube.com/watch?v=DLzxrzFCyOs Et en haute qualité en plus !

Des sous-titres !

C’est quand même cool de regarder des vidéos dans d’autres langues, avec les sous-ttres que l’on souhaite. --list-subs indique les sous-titres possibles. On chosit celui ou ceux que l’on veut avec leur identifiant (en, fr, de…). Hop, ajout de l’option --sub-lang id_du_sous_titre à la commande, avec le format si souhaité (selon disponibilité) --sub-formats nom_du_format.
On a du choix : soit c’est incrusté dans la vidéo avec --embed-subs, soit un fichier sous-titre est crée --write-subs dans le même répertoire que la vidéo téléchargé. Fonctionnalité assez sympa pour le format matroshka (.mkv), qui permet d’avoir les sous-titres dans le fichier vidéo.

Télécharger des playlists

Une vidéo n’est pas assez suffisante ? Les playlists le seront. Par défaut, une vidéo de playlist (contenant dans l’url un paramètre &list=id_random), téléchargera la playlist.
On peut forcer le téléchargement de toutes les vidéos avec l’option --yes-playlist ou au contraire, l’empêcher avec no-playlist.
La sélection de vidéo se fait avec leur index dans la playlist avec --playlist-start number et --playlist-end number. Ou bien sélectionner les vidéos avec --playlist-items number1, number2....

Les trucs cools

Et plus encore

Il y a encore beaucoup d’options possibles. Mais à ce point, RTFM avec le manuel en ligne de commande ou l’aide en ligne.