Regarder des extraits du Daily Show de John Stewart sous Linux
Dim 06 février 2005
Depuis quelques mois déjà, grâce à différents rebonds dans ma
blogosphère, je suis un ardent spectateurs des meilleurs moments du
Daily
Show,
émission satirique, qui ressemblerait à peu près au Vrai Journal de
Zéro, sauf que ce serait tout le temps drôle.
Le problème, c'est que depuis la fin de l'année dernière, les extraits
disponibles ne sont qu'au format WMV (yuck), donc, encapsulés dans la
page dans un format qu'aucun plug-in que je connaisse ne sache lire sous
Ubuntu. Ouais, ça me ferait bien chier que Microsoft ait pondu un
plug-in Windows Media Player pour Linux...
Me voilà donc avec une page agrémentée d'un carré blanc supposé contenir
une vidéo tordante, que je ne peux voir ailleurs que sous Windows.
Et pire : depuis peu, quand je lance la page sous Firefox (sous
Windows), j'ai un crash monumental du navigateur, qui disparaît dans le
trou noir de la mémoire. Obligé (et je pèse mes mots) d'utiliser IE
sous Windows pour voir ces vidéos.
Hor-reur.
Mairdalor.
Je me mets à potasser un peu la doc de mplayer
et mencoder
. Je vois
que mencoder est tout à fait capable d'encoder un flux audio ou vidéo
dans un format lisible sur n'importe quelle plateforme. Alors, ben
dis-donc... Comme mplayer est capable de lire les vidéos WMV et les flux
audio, il doit vraisemblablement être capable de lire (et donc mencoder
d'encoder) les vidéos du Daily Show.
Retrouver le flux vidéo
Tout d'abord, il faut aller à la page d'accueil du Daily
Show.
On clique sur la dernière "headline" (en l'occurrence, le compte-rendu
du Discours sur l'Etat de l'Union de Deubeuliou). S'ouvre un pop-up
contenant moult graphismes et un gros carré blanc, marque patente du
manque cruel de plug-in capable de lire la vidéo streamée.
Clic-droit -> "View Page Source".
Utilisation de la fonction (magique ?) de recherche dans le texte,
puisque je tape les lettres "w", "m" et "v" et que je le retrouve
exactement là où il faut. J'ai sous les yeux l'adresse du flux vidéo de
type ASX
qui doit alimenter le gros carré blanc :
http://www.comedycentral.com/mp/videoswitcher.jhtml?show=ds&reposid=/multimedia/tds/headlines/10019.html&clip=dailyshow/headlines/10019_headline.wmv&mswmext=.asx
C'est un peu alambiqué, mais en fait, c'est l'url d'une page dynamique
dont la seule fonction est de renvoyer un flux multimédia sous la forme
d'un formalise XMLisant.
Note : il est inutile d'employer wget
pour récupérer ce fichier XML,
le résultat ne contient pas ce qui m'intéresse par la suite. Me demande
pas pourquoi.
Donc, on doit copier-coller cette URL dans la barre d'adresse d'un
nouvel onglet, par exemple, et, étant d'un type inconnu (XML, mais sans
sa déclaration, voilà comment Microsoft maltraite les standards), on
peut l'enregistrer sur le disque dur.
Ce fichier texte sous format XMLoïde contient deux entrées (entry)
dont la référence est une adresse commençant par mms://...
La première a comme nom de fichier : mastercard_career.wmv. Je vois
très bien ce que c'est, c'est la pub pour Mastercard qu'on voit avant le
best-of du Daily Show.
La seconde est donc naturellement le fichier qu'on veut capturer.
Capturer le flux
Le "protocole" mms est inconnu de Mozilla et de wget. Par contre,
mplayer a l'air de bien comprendre ce dont il s'agit.
$ mplayer mms://a386.v99506.c9950.g.vm.akamaistream.net/7/386/9950/v001/comedystor.download.akamai.com/9951/dailyshow/headlines/10019_headline.wmv
Cette commande commence la lecture du flux vidéo, haute qualité. Youhou
!... Enfin, pour quelques secondes. L'inconvénient de mplayer, c'est
qu'il remplit un tout petit cache par défaut (1024 Ko) avant de lancer
la lecture. Et que ce cache fond comme neige au soleil, et la vidéo se
met à saccader très rapidement (du moins, sur la connexion ADSL 128kB de
chez mon paternel). A moins d'augmenter considérablement la taille du
cache (argument -cache-min de mplayer), la vidéo est vouée au
tremblement parkinsonien à très brève échéance. Dommage.
Doit y avoir moyen de mieux faire...
mencoder
permet d'encoder les flux audio et/ou vidéos que mplayer sait
lire. Donc :
$ mencoder "monadresseàlacon" -aoc pcm -aov raw
Cette commande va encoder à la volée la vidéo du Daily Show, sans
compression ni pour le son, ni pourla vidéo. Ca prendra beaucoup de
place sur le disque dur, je sais, mais tu peux réencoder "à tête
reposée" la vidéo sans problème après ça. J'ai déjà vu des écrans
freezer pour bien moins que
ça.
Tout ça part dans un fichier appelé "test.avi". C'est le nom par défaut.
Rassure-toi, on peut le changer, en utilisant la fonction -o pour donner
un nom au fichier de sortie (output).
L'encodage dure "un certain temps", en fonction de la vitesse de ta
connexion et celle de ton processeur. Assure-toi d'avoir autre chose à
faire, du genre "faire une donation à un projet open-source" ou
"trouver un moyen de faire en sorte que le ballon ne glisse pas des
mains des joueurs de rugby Français" ou encore "me faire plaisir". Si
tu es une accorte jeune fille, je suis sûr que tu trouveras comment
faire.
Le résultat une donc un fichier AVI d'environ 1,3Go. Evidemment, se
prendre la tête vingt minutes simplement pour visionner une vidéo
d'environ cinq minutes, ça peut paraître légèrement stupide. Mais au
moins, je ne suis plus obligé d'utiliser IE et Windows pour la voir,
cette putain de vidéo.
Je suis libre. J'ai le choix.
Quand j'aurai assez progressé en Python, je fabriquerai un outil me permettant de faire tout ça sans me prendre la tête.