Today, in "Being a nerd" Ouvrir dans une nouvelle fenêtre

Comment enregistrer une vidéo récalcitrante ?




Bla bla introductique

De tous temps les hommes (humour).

        De nos jours, merveille de la technologie, toutes les chaînes TV dignes de ce nom proposent des vidéos à télécharger : émissions complètes, BA, etc.
Or, or qui n'a jamais été fort dépité, réalisant qu'un reportage de la plus haute inimportance vient de leur échapper ? Comment se fait-il que nul n'ait enregistré l'interview l'entrevue de mon mythique prof de trucs physiques abstrus, alors que je passais au moins 1/5" en arrière plan ?
Heureusement pour nous, petits veinards que nous sommes, un gentil ingénieur informaticien l'aura fait pour vous. Et effectivement, c'est sur le site de la chaîne, mais, mais, kek'c'est qu'ce logiciel bidon qui refuse de me laisser récupérer mon indispensable souvenir ?
Hé oui, pour ça, il faudrait verser une dîme à QuickPomme ou faire une offrande sacrificielle à RealPlaie, à moins que...

 Note: Bon, je reconnais que ce n'est pas un article d'un niveau technique transcendant, mais bon, faut bien débuter.


Principe

On récupère le lien sur leur serveur en surveillant les requêtes du navigateur, et on pompe.


Inconvénients

        C'est plus compliqué que d'utiliser une version pirate de QuickPomme, mais c'est plus drôle. Cependant, réflexion faite, je me demande si ce n'est pas le seul moyen pour RealPlaie.
        Par ailleurs, il n'y a pas si longtemps (bon, ok, 2 ans en info c'est une éternité), j'utilisais une méthode beaucoup plus compliquée, et le temps de lire ces lignes, quelqu'un en aura sûrement pondu une plus simple.


Ingrédients





Présentations

  1. Proxomitron

    A l'origine, il s'agit d'un proxy local servant à filtrer les pages web, afin de moduler l'action des scripts java, d'enlever les pubs et autres bricoles d'utilité douteuse.
    En fait, on va juste s'en servir pour visualiser les requêtes du navigateur. Bien que ce ne soit pas fait pour, c'est le logiciel le plus simple que je connaisse pour cet usage.

  2. Net Transport

    Excellent shareware, actuellement sans limitations. On va s'en servir pour récupérer les vidéos de chez RealPlaie qui ne sont accessibles en général que par le RTSP (Real Time Streaming Protocol) qui n'est encore que peu supporté par les téléchargeurs (heu enfin je crois, ça fait longtemps que je n'ai pas farfouillé).

1ere étape, réglage préliminaire du navigateur

Après cette étape, le navigateur ne se connectera plus directement à internet, mais sur le Proxomitron par qui transitera le trafic. (Forcément le navigateur ne pourra se connecter qu'une fois le Proxomitron lancé)

  1. Sur IE : Outils > Options Internet > onglet Connexions > Paramètres réseau

    coche proxy, 127.0.0.1, 8080

    127.0.0.1 : c'est l'adresse de notre bécane ; on aurait aussi pu marquer localhost.
    8080 : c'est le port que Proxomitron va utiliser par défaut.

  2. Sur Mozilla : bah, tout ses utilisateurs doivent connaître ses menus par coeur... enfin, Edition > Préférences > Avancées > Proxies > Http puis idem.


2e étape : repérage de la cible

Bon voilà, tout est réglé, pas dur hein ?
On va prendre 2 exemples concrets.

  1. N°1 http://www.france5.fr, avec un beau lien "vidéos", chouette. "Révolution du cathéterisme interventionnel " Humm, ça m'a l'air fascinant ça, allez, dans la boite !  Bon, je clique haut débit pcq je le vaut bien, et ohh comme c'est joli, une fenêtre Real qui charge dans une popup.
    On a une cible, vite, je ferme la popup. Au cas où, je vide le cache du navigateur (il se peut que le fichier amorce de Real soit mis en cache, ce qui fait qu'il ne sera plus demandé ensuite et on ne va plus rien comprendre, d'où, c'est pas plus mal de le vider, sauf si on a la flemme.) (Dans IE, c'est Outils > Options Internet > sur le même onglet : "Supprimer les fichiers [internet temporaires ndlr]" )

main windows Bon, me demandez pas pourquoi j'ai une version en allemand, c'est comme ça. Maintenant qu'on a vu sur quelle page se trouve la vidéo, on va la faire recharger en regardant les requêtes.

Vous remarquerez que j'ai décoché les cases à gauche, c'est normal, on ne va pas s'amuser à filtrer la page, ce n'est pas le but du jeu.

On clique sur Logfenster (Log Window), il apparaît une fenêtre vierge.

Retour sur le site, on rouvre la fenêtre. Dès qu'on remarque que la vidéo charge, même si le reste de la page n'est pas encore là, on pourra déjà fermer la fenêtre, ça nous fera moins de log à parcourir.

En gros, on obtient ça (les flèches blanches, c'est là où j'ai inséré un retour pour la mise en page):



New Message Log Window....

+++GET 766+++
GET /magazinesante/video.cfm?file=/images/emissions/
W00443/4/005319_795_0_150-220kb.ram HTTP/1.1 [*1]

Host: www.francecinq.fr
User-Agent: Space Bison/0.02 [fu] (Macintosh67; X; SK)
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,[...]
Accept-Language: fr,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Referer: http://www.francecinq.fr/magazinesante/W00443/4/118178.cfm
Cookie: CFTOKEN=83516066; CFCLIENT_SERIE223=; CFID=425104; CFGLOBALS=urltoken%3DCFID%23%3D425104%26CFTOKEN%23%3D[...]
Connection: keep-alive

+++RESP 766+++
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
X-Powered-By: ASP.NET
Content-Type: text/html; charset=iso-8859-1
Vary: Accept-Encoding
Content-Encoding: gzip
Cache-Control: max-age=10632
Date: Sun, 23 Jan 2005 10:42:56 GMT
Content-Length: 3673
Connection: keep-alive

+++CLOSE 766+++

+++GET 776+++
GET /images/emissions/W00443/4/005319_795_0_150-220kb.ram HTTP/1.1 [*2]

Host: www.francecinq.fr
User-Agent: Space Bison/0.02 [fu] (Macintosh67; X; SK)
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,[...]
Accept-Language: fr,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Referer: http://www.francecinq.fr/magazinesante/video.cfm?file=/images/emissions/

W00443/4/005319_795_0_150-220kb.ram
Cookie: CFTOKEN=83516066; CFCLIENT_SERIE223=; CFID=425104; CFGLOBALS=urltoken%3DCFID%23%3D425104%26CFTOKEN%23%3[...]
Connection: keep-alive
+++CLOSE 774+++
Pour votre culture G
(là où je raconte ma vie)

Il s'agit essentiellement ici des en-têtes HTTP qui est le protocole utilisé par le navigateur pour dialoguer avec les serveurs web. C'est assez trivial.

En vert, la requête HTTP (ce qu'on envoie à leur serveur)
En jaune la réponse HTTP.

GET est la commande de ce 1er block : c'est transparent: "Donne moi le fichier à telle adresse".

Le reste correspond à des informations connexes. Par exemple User-Agent: c'est bien sûr la signature de votre navigateur et de votre OS (ok ok, j'ai pas décoché toutes les cases).
Le referer, c'est la page d'où vous venez ; à noter qu'autrefois, certains sites basaient leur sécurité là-dessus, ce qui est assez stupide vu la facilité avec laquelle on peut le modifier (proxomitron servait aussi à ça).
En jaune, on remarque la mention gzip, ce qui signifie que ces données nous parviennent compressées, (ce qui n'est pas plus mal vu l'incroyable redondance du protocole. D'ailleurs, wanadoo a sorti il y a quelques mois une option coûteuse et inutile pour vous faire payer ce service gratuit.)

Ce qui nous intéresse

On cherche une vidéo au format Real, donc portant l'extension .ram (on peut en rencontrer d'autres : .rm, etc)

Cette fois ci, le log contient deux occurrences :

[*1]   celle-ci correspond à l'organisation interne du serveur, on passe.

[*2]   nous y voilà.



On ouvre le bloc-notes, on copie-colle les deux lignes intéressantes et ça nous donne : www.francecinq.fr/images/emissions/W00443/4/005319_795_0_150-220kb.ram, on rajoute http:// pour faire mieux

-> http://www.francecinq.fr/images/emissions/W00443/4/005319_795_0_150-220kb.ram (copier)

Et voilà, on a l'url de notre fichier.

Il se trouve que sur le site d'Apple, on trouve des bandes annonces très bien et en anglais que je ne collectionne pas, mais ça fera un bon exemple.
Toutes les vidéos de ce format portent l'extension .mov.
Bon, de même, vous arrivez sur la page qui charge la vidéo ; deux cas de figure :

- La vidéo se charge tout de suite et c'est très bien, l'url est probablement en clair dans le code source de la page. Donc, soit vous la trouvez dedans (clic droit source de la page, rechercher ".mov") soit vous utilisez proxomitron.

- Il faut cliquer sur une image affichée dans le cadre du plugin de QuickPomme pour lancer le chargement de la vidéo. Dans ce cas, n'ouvrez la fenêtre de log de proxomitron qu'avant le-dit clic. Vous obtenez quelque-chose comme ça :

New Message Log Window....

+++GET 40+++
GET /movies/fox_searchlight/melinda_and_melinda/melinda_and_melinda-ref.mov HTTP/1.1
Host: images.pomme.com
User-Agent:
Space Bison/0.02 [fu] (Macintosh67; X; SK)
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: fr,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Cookie: s_cc=true; [...]
Connection: keep-alive

+++RESP 40+++
HTTP/1.1 200 OK
Server: Apache/1.3.27 (Darwin) PHP/4.3.1
Last-Modified: Tue, 21 Dec 2004 23:43:26 GMT
ETag: "30a-41c8b51e"
Accept-Ranges: bytes
Content-Length: 778
Content-Type: video/quicktime
X-Pad: avoid browser bug
Date: Sun, 23 Jan 2005 13:59:23 GMT
Connection: keep-alive
+++CLOSE 40+++

+++GET 41+++
GET /movies/fox_searchlight/melinda_and_melinda/melinda_and_melinda_m480.mov HTTP/1.1
Host: images.pomme.com
Range: bytes=0-
Accept: */*
User-Agent: QuickTime (qtver=6.5;os=
Macintosh67)
Connection: keep-alive

+++CLOSE 41+++

Il est évident que le 1er fichier en .mov n'est qu'un lien vers le 2nd qui lui sera le bon. L'url est donc : http://images.pomme.com/movies/fox_searchlight/melinda_and_melinda/melinda_and_melinda_m480.mov (copier)



3e étape : Thus ends a glorious story

(Bon, vu que c'est du pareil au même pour QuickPomme, je vais juste parler du cas de RealPlaie qui est plus intéressant)

Lancez Net Transport, > nouveau. L'url est déjà inscrite puisqu'on vient de la copier, > OK.

Là, on remarque que notre fichier est arrivé quasi instantanément. À moins d'avoir une connection satellite, c'est quand même un peu louche. Dessous, un autre téléchargement commence. En fait, le fichier qu'on a pioché sur le serveur de france5 ne contenait qu'un simple lien pointant vers le vrai fichier (il suffit de l'ouvrir avec un éditeur texte pour s'en rendre compte).

Et c'est là qu'on remercie Net Transport qui s'en est rendu compte et nous ramène le vrai fichier situé sur rtsp://a1695.v5577d.c5577.g.vr.akamaistream.net/... etc, etc.

Et voilà, mangez, c'est chaud.

Remarques :

- N'oubliez pas que votre navigateur est déréglé.
- Vous pouvez lire dans le log de Net Transporter :
  2005-01-23 13:32:27.867 User-Agent: RealMedia Player (HelixDNAClient)/10.0.0.0 (win32)
 
Vous vous souvenez quand je vous racontais ma vie ? Net Transporter se fait passer pour RealPlaie aux yeux du serveur helix, petite tricherie élémentaire.



Appendice : pourquoi ça n'a pas marché ? (cas de RealPlaie seulement)

    Une des raisons sur laquelle on bute facilement, est que vous n'êtes peut-être pas connecté directement à internet, mais peut-être par le wifi, une passerelle réseau ou je ne sais quoi.
Si c'est le cas, vous obtiendrez une erreur du genre impossible de se connecter, serveur injoignable (je ne sais plus lequel précisément).

--> Solution : appelez votre admin réseau (ou changez de casquette si c'est vous). Votre mission est de router le port 554 en TCP et UDP sur votre PC, et tout rentrera dans l'ordre.
Comment ? hé bé, je ne sais pas quel matériel vous utilisez, lisez votre doc.

A titre indicatif, les heureux possesseurs du matériel Inventoo de chez Wanadel cliqueront sur leur petite icône dans le systray: "Configurer votre point d'accès" > Configuration > Avancée > Routeur.
Sinon, ne manquez pas le site http://lugdunum2k.free.fr/ qui traite un exemple similaire (idem mais avec le port 4662 en fait) sur la quasi totalité des machines du commerce.

 


A noter que les noms des logiciels divers cités ici sont probablement des marques déposées qui n'ont rien à voir avec ce site et que j'ai subtilement altéré 2~3 noms.