Youtube-dl, un outil très pratique qui porte mal son nom
Vous le savez, j’adore regarder les vidéos qui parsèment les internets dans mon salon, mais je n’ai pas le débit pour les regarder « en streaming » (le mot à la mode, pour dire qu’on la regarde directement au fur et à mesure, sans « télécharger »–une énorme connerie d’un point de vue technique, mais passons). J’avais un système pas trop mal rodé sous Windows, et je m’étais trouvé le remplaçant rêvé après ma migration sous Linux. Le nouvel entrant, youtube-dl, s’avère en fait bien plus intéressant qu’il n’y parait, car il ne se limite pas au site de Google, mais à une grosse flopée de sites, et de fonctionnalités liées aux sites (playlists et compagnie). Au point de rendre jDownloader, cliquodrome java super lourd, pratiquement inutile. Ce qui n’est pas pour me déplaire.
Pourquoi s’appelle-t-il youtube-dl s’il supporte plein d’autres sites alors ? Parce que comme souvent dans le monde du logiciel libre, les projets démarrent petit, avec un seul objectif en tête, et une fois que ça marche, soit on se dit qu’on peut aller plus loin, soit quelqu’un veut/peut aller plus loin et vous propose de le faire ou le fait lui-même. C’est typiquement ce qui est arrivé à youtube-dl, il suffit de lire l’historique de commits sur Github pour voir le chemin parcouru et l’activité du projet. Avec 153 contributeurs, autant dire que ça ne risque pas de disparaître de sitôt.
Bref, si on se réfère à la liste imposante de sites supportés, on en voit certains qui ne vous diront certainement rien. D’autres pourraient être plus intéressants, comme ceux d’Arte, de Dailymotion, de Vimeo, TF1, Canal+ (dont le lecteur vidéo flash est une horreur, un peu comme celui de Dailymotion), Vevo (pour les clips de musique, normalement verrouillés comme pas possible). Je vais donc en essayer quelques-uns, histoire de voir à quel point jDownloader devient inutile.
RAPPEL : Je vais me répéter, mais il n’est pas question ici de faire l’apologie du « piratage », simplement de palier aux problèmes de conception des plate-formes vidéos et de leurs lecteurs flash, et à la faiblesse d’une grande partie des connexions ADSL françaises; et aussi profiter des vidéos sur un support qui n’est pas utilisable en l’état, en l’occurrence, la télé du salon (car tout le monde ne fait pas la connerie de brancher sa « smart TV » non « sécurisable » sur le réseau, merci pour le futur du réseau).
Dailymotion
Il m’est très rare de trouver quelque chose d’intéressant sur Dailymotion, mais la plateforme est souvent utilisée par différents sites de presses français pour leur diffusion vidéo, qui eux peuvent parfois tomber sur ou produire des contenus intéressants (tels le HuffPost). Quand votre connexion a décrété que vous ne regarderez pas cette vidéo, la faute à un sale défaut de conception (un buffer qui ne garde que 5 secondes, quand vous en mettez 30 pour charger ces fameuses 5 secondes…), il ne vous reste plus qu’à récupérer le fichier vidéo complet, qui n’est évidemment pas simple à récupérer à la main. C’est ce que font jDownloader et youtube-dl pour vous.
Je prendrais comme exemple cette vidéo qui résume rapidement l’affaire Bygmalion (Par le HuffPost donc). Comme pour Youtube, je vous conseille de demander la liste des formats disponibles pour savoir quel code utiliser :
1 2 3 4 5 6 7 8 9 10 11 |
$ youtube-dl -F http://www.dailymotion.com/video/k750DSBVU31aeo7R7sN [dailymotion] k750DSBVU31aeo7R7sN: Downloading webpage [dailymotion] k750DSBVU31aeo7R7sN: Extracting information [dailymotion] k750DSBVU31aeo7R7sN: Downloading embed page [info] Available formats for k750DSBVU31aeo7R7sN: format code extension resolution note ld mp4 320x240 (worst) standard mp4 512x384 hq mp4 848x480 hd mp4 1280x720 hd180 mp4 1920x1080 (best) |
Si on veut récupérer la version full-HD (oui c’est inutile pour cette vidéo, mais passons), c’est donc le code hd180 qu’il faudra passer à youtube-dl :
1 2 3 4 5 6 |
$ youtube-dl -f hd180 http://www.dailymotion.com/video/k750DSBVU31aeo7R7sN [dailymotion] k750DSBVU31aeo7R7sN: Downloading webpage [dailymotion] k750DSBVU31aeo7R7sN: Extracting information [dailymotion] k750DSBVU31aeo7R7sN: Downloading embed page [download] Destination: L'affaire Bygmalion c'est quoi -k750DSBVU31aeo7R7sN.mp4 [download] 48.3% of 48.80MiB at 258.26KiB/s ETA 01:40 |
C’est aussi simple que pour Youtube, seuls les codes des flux sont différents.
Vimeo
Pour tester, j’ai utilisé la vidéo de Richard Dunn qui refait le clip de All by Myself de Céline Dion dans l’aéroport de Las Vegas. Là aussi, je vous conseille de vérifier la liste des formats qui vous donnera les codes disponibles à utiliser :
1 2 3 4 5 6 7 8 |
$ youtube-dl -F http://vimeo.com/97634383 [vimeo] 97634383: Downloading webpage [vimeo] 97634383: Extracting information [vimeo] 97634383: Downloading webpage [info] Available formats for 97634383: format code extension resolution note h264-mobile mp4 480x264 (worst) h264-sd mp4 640x350 (best) |
Testé, toujours avec la même commande (youtube-dl -f {code} {url}), ça fonctionne parfaitement.
Arte
J’étais beaucoup plus dubitatif concernant le site de la chaine franco-allemande. N’arrivant pas à visionner les vidéos sur le Hellfest, je me suis rabattu sur un tout autre domaine, non moins intéressant, qui ne fonctionnera certainement plus à la parution de l’article, puisqu’il s’agit d’un documentaire sur la Corée du Nord qui n’est disponible que pendant 7 jours (courant pour de la TV de rattrapage). Comme toujours, on scanne la liste de formats :
1 2 3 4 5 6 7 8 9 10 |
$ youtube-dl -F http://www.arte.tv/guide/fr/049820-000/entre-defile-militaire-et-parc-d-attraction [arte.tv:+7] 049820-000: Downloading webpage [arte.tv:+7] 049820-000: Downloading JSON metadata [info] Available formats for 049820-000_PLUS7-F: format code extension resolution note 200-300-VF-STF flv 320x200 VF (worst) 360-1500-VF-STF mp4 640x360 VF 406-800-VF-STF flv 720x406 VF 406-1500-VF-STF flv 720x406 VF 720-2200-VF-STF flv 1280x720 VF (best) |
On se rend compte que les codes sont vraiment pas beaux (la raison est qu’on peut facilement identifier un flux : VF pour version française, STF pour sous-titres français), et en plus, les meilleures qualités sont toutes en FLV, un format pas très apprécié en dehors du Flash. Ce n’est pas un énorme problème (j’expliquerais après pourquoi), en attendant, récupérons le fichier :
1 2 3 4 5 6 |
$ youtube-dl -f 720-2200-VF-STF http://www.arte.tv/guide/fr/049820-000/entre-defile-militaire-et-parc-d-attraction [arte.tv:+7] 049820-000: Downloading webpage [arte.tv:+7] 049820-000: Downloading JSON metadata [download] Destination: Entre défilé militaire et parc d'attraction-049820-000_PLUS7-F.flv [download] 1.5% of ~841.23MiB at 223.56KiB/s ETA 01:02:21 |
A noter que la taille du fichier et donc le temps de téléchargement estimé va grandement varier pendant toute la durée du rapatriement. La faute au mode de diffusion qui fait qu’on ne connaît pas la taille réelle du fichier, et donc il estime en fonction du débit actuel de la vidéo. Rien d’alarmant ceci dit. Pour avoir la vidéo dans un format utilisable, une fois n’est pas coutume j’utilise Tragtor 3ncode, un outil graphique pour ffmpeg découvert grâce à Noireaude de lavachelibre.org, et qui permet de convertir très simplement des vidéos d’un format vers un autre (la durée dépendra très, très fortement de la puissance de votre machine, je l’ai appris à mes dépens récemment).
UPDATE : Certaines vidéos proposent parfois, sous le même code, plusieurs formats. C’est notamment le cas avec ce concert d’Apocalyptica (merci Ricard). La solution est d’appeler une deuxième fois -f pour préciser d’utiliser mp4 plutôt que flv, ou m3u8 dans ce cas précis :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[seboss666@Seboss666L ~]$ youtube-dl -F http://concert.arte.tv/fr/wacken-apocalyptica [arte.tv:concert] wacken-apocalyptica: Downloading webpage [arte.tv:concert] wacken-apocalyptica: Downloading JSON metadata [info] Available formats for 30506: format code extension resolution note 216-300-VO mp4 384x216 Version Originale (worst) 406-800-VO mp4 720x406 Version Originale 406-1500-VO mp4 720x406 Version Originale 720-2200-VO m3u8 1280x720 Version Originale 720-2200-VO mp4 1280x720 Version Originale (best) [seboss666@Seboss666L ~]$ youtube-dl -f 720-2200-VO -f mp4 http://concert.arte.tv/fr/wacken-apocalyptica [arte.tv:concert] wacken-apocalyptica: Downloading webpage [arte.tv:concert] wacken-apocalyptica: Downloading JSON metadata [download] Destination: Wacken - Apocalyptica-30506.mp4 [download] 29.5% of 1.29GiB at 306.58KiB/s ETA 51:50 |
Vous pouvez bien évidemment appliquer cette méthode sur tous les sites supportés, si de tels flux sont présents.
Wat.TV
Le service qui appartient à TF1 est réputé médiocre, mais comme ils l’utilisent pour la TV de rattrapage et autres contenus « social TV », difficile de passer à côté, quand comme moi vous êtes fans de The Voice (et on rigole pas s’il vous plait).
Bref, probablement à l’occasion de la coupe du monde de baballe au pied qui se déroule actuellement, l’intégralité des épisodes d’Olive et Tom est disponible gratuitement sur la plateforme. Pour illustrer le fonctionnement, j’ai donc pris comme exemple le premier épisode :
1 2 3 4 5 6 7 8 9 10 11 |
$ youtube-dl -F http://www.wat.tv/video/olive-tom-ep-001-rencontre-6t3ar_6srql_.html [wat.tv] 6t3ar: Downloading webpage [wat.tv] 11434995: Downloading JSON metadata [info] Available formats for 11434995: format code extension resolution note 0 mp4 unknown [seboss666@Seboss666L ~/Téléchargements/MU]$ youtube-dl -f 0 http://www.wat.tv/video/olive-tom-ep-001-rencontre-6t3ar_6srql_.html [wat.tv] 6t3ar: Downloading webpage [wat.tv] 11434995: Downloading JSON metadata [download] Destination: OLIVE et TOM EP 001 - LA RENCONTRE-11434995.mp4 [download] 100% of 81.29MiB in 04:27 |
On remarque qu’un seul flux est disponible, mais que les informations qui l’accompagnent ne sont pas présentes, ou que youtube-dl ne sait pas les récupérer. J’ai donc tenté le coup, et l’épisode est arrivé entier !
Tempérons les ardeurs : malheureusement, ils utilisent un système supplémentaire pour les vidéos de replay, donc impossible de revoir les émissions sans passer par des canaux fermés, verrouillés, et si possible qui leur rapporte plus d’argent qu’ils n’en méritent. Exemple avec le replay de 50 minutes inside :
1 2 3 4 |
$ youtube-dl -f 0 http://www.wat.tv/video/replay-50-mn-inside-juin-2014-6u4rr_2ey19_.html [wat.tv] 6u4rr: Downloading webpage [wat.tv] 11483559: Downloading JSON metadata ERROR: unable to download video data: HTTP Error 403: No proxy for this secured delivery. |
Donc il semblerait que ça soit la loterie, à vous de tester à chaque fois.
Canal+
L’ennemi d’un internet neutre de manière générale, Canal+, n’a de toute façon pas eu d’autre choix que de proposer un contenu intéressant et des services pratiques sur le Web. Une position un brin schizophrénique, d’autant plus qu’ils sont les premiers à utiliser Internet pour Canalplay (oui, si vous pensiez que ça marchait par la parabole alors que vous avez une mauvaise connexion, remballez). Enfin bref, Canal+ donc, propose une foultitude de contenus vidéos. En tête pour ma part, les Guignols de l’info, mais pas que. voyons voir avec la semaine du 9 juin :
1 2 3 4 5 6 7 8 9 10 11 |
$ youtube-dl -F http://www.canalplus.fr/c-divertissement/pid1784-c-les-guignols.html?vid=1088113 [canalplus.fr] pid1784-c-les-guignols.html: Downloading webpage [canalplus.fr] 1088113: Downloading video XML [info] Available formats for 1088113: format code extension resolution note MOBILE flv unknown (worst) BAS_DEBIT flv unknown HAUT_DEBIT flv unknown HD flv unknown HLS mp4 unknown HDS flv unknown (best) |
Là encore on constate qu’à l’instar d’Arte, Canal+ affectionne les formats de fichiers fermés et très peu interopérables. Par contre, ils semblent soigner leur bande passante et les appareils de lecture, car plusieurs fichiers sont disponibles. Malgré l’absence d’infos sur la résolution ou le poids des vidéos, je fais confiance à youtube-dl et récupère le HDS, qui pour la grosse blague n’est autre que du 360p (je sais pas où ils voient de la HD, mais être aveugle pour des gens de télévision, c’est grave quand même) :
1 2 3 4 5 6 |
$ youtube-dl -f HDS http://www.canalplus.fr/c-divertissement/pid1784-c-les-guignols.html?vid=1088113 [canalplus.fr] pid1784-c-les-guignols.html: Downloading webpage [canalplus.fr] 1088113: Downloading video XML [download] Downloading f4m manifest [download] Destination: La semaine des Guignols - Semaine du 09_06-1088113.flv [download] 100% of 243.45MiB in 13:44 |
Ne surtout pas s’inquiéter de la variation du débit et du comportement sur le disque : il semblerait que les vidéos soient largement découpées, et youtube-dl aura besoin d’écrire beaucoup de fragments sur le disque dur avant de recoller le tout. Là encore, il ne saura faire qu’estimer le poids final de la vidéo en fonction du débit mesuré actuellement. Soyez donc patients. FLV oblige, pour mon salon j’ai du repasser par Tragtor. Mais j’aurais pu procéder autrement : le « HLS » en mp4 s’occupe de faire la conversion à la volée pour vous avec ffmpeg un gain de temps non négligeable vu la puissance de ma bête.
Au passage, oui, entre le début de l’écriture de l’article et la fin, j’ai en grande partie récupéré le débit auquel je sais pouvoir accéder sur ma ligne, ce qui fait plaisir.
Et pour les autres sites, c’est pas plus dur
Je n’ai montré ici que quelques exemples parmi les services les plus utilisés en France, mais la procédure est toujours la même : on récupère la liste des formats avec le switch -F, et on lance le téléchargement avec -f {code} . Libre à vous donc de tester pour les autres sites. Et si jamais vous détectez un problème, ne pas hésiter à remonter l’information aux développeurs : il arrive que les plate-formes modifient leur fonctionnement pour empêcher la copie sauvage de fichiers, ce qui peut rendre youtube-dl inopérant. Mais c’est rarement insurmontable. Dans la même veine, si vous êtes un peu ou beaucoup développeur et que vous savez comment corriger un problème, n’hésitez pas à envoyer vos patches. Github est une plateforme magnifique pour ça.
UPDATE : La Vache Libre nous a fait part de l’apparition d’une interface graphique pour youtube-dl, y compris pour les windowsiens, qui sont les plus feignants et adeptes des clicodromes. Ils seront comblés 😀
Salut, depuis ce post de blog as-tu des update ou des conseils pour les mêmes sites en 2017 ? youtube-dl ne reconnait plus rien sur arte, mais le reste ça semble encore marcher
Salut,
Youtube-dl reste solide pour pas mal de sites, mais l’aspect modulaire fait que le support de certains dépend de contributeurs motivés. Si personne de compétent et intéressé ne se penche sur la maintenance du module d’Arte, alors fatalement à un moment donné le module cesse de fonctionner (les diffuseurs passent leur temps à modifier leur système pour contrer ce genre d’outils). Il ne faut pas oublier de le mettre à jour, il ne se passe pas une semaine sans une nouvelle version, ça peut jouer beaucoup.
Comme il me convient je n’ai pas d’autres solutions à proposer malheureusement.
Salut, pourrait-tu développer la partie où tu indiques que le streaming est une énorme connerie technique ? Alors qu’énormément de sites utilisent cette méthode dans le monde entier sans parler du mastodonte YouTube ?