Vootv est une chaîne de télé local lancé fin de l'année dernière.

Elle est accessible sur la TNT et sur un site Internet. Problème, je n'ai pas la TNT (ben oui ...) et le site internet est complètement en flash et ... ne marche pas du tout avec swfdec.

Bien.

J'ai toujours un navigateur avec le plugin flash propriétaire disponible au cas ou.

Je peux enfin accéder aux grilles de programme (http://www.vootv.fr/grille.php) et aux vidéos flash.

Evidement, je ne suis pas satisfait du résultat (consommation processeur excessive, utilisation d'un plugin flash propriétaire, ...).

J'analyse donc un peu tout cela ...

D'abord il s'agit vraisemblablement d'un protocole rtmp(|t|s) qui est utilisé.

Reflèxe de base ... lancer un "ngrep rtmp". J'obtiens rapidement :

T 192.168.0.12:46006 -> 91.121.132.131:80 [AP]
  F(V.8.Q`..8..)%4...4.....bN....bsp...K.M}..0.....F..f/..m=.!...r.....o.D.0..........R.X.......X........connect.?........
  ..app...vod/vootv..flashVer...LNX 10,0,42,34..swfUrl..,http://www.vootv.fr/visionneuse/visio_v5.swf..tcUrl... rtmpt://91
  .121.132.131/vod/vootv..fpad....capabilities.@.........audioCodecs.@.........videoCodecs.@o........videoFunction.?......
  ....pageUrl..,http://www.vootv.fr/video.php?key=rY338EG7dQ..objectEncoding.@..........  

Super ! Voilà pas mal d'informations :

  1. c'est le protocole rtmpt qui est utilisé (déjà ce n'est pas le rtmps ... bonne nouvelle) ;
  2. le tcUrl est : rtmpt://91.121.132.131/vod/vootv.

Je sors donc mon "flvstreamer_x86" favoris ... Mais il me dit :

flvstreamer_x86 -r "rtmpt://91.121.132.131/vod/vootv/vootv/"
[...]
"ERROR: Connect, failed to connect socket. Error: 111"

Etrange, je ne vois jamais ce genre de message. Avec wireshark, je m'aperçois rapidement que tous le trafic est sur le port 80.

Essayons ...

flvstreamer_x86 -r "rtmpt://91.121.132.131/vod/vootv/vootv/" -c 80
[...]
Starting download at 0.000 kB

Bingo !

Il ne reste plus qu'à trouver le "Playpath".

Un petit "ngrep play" me donne :

T 192.168.0.12:42351 -> 91.121.132.131:80 [AP]
  POST /send/SrAmTv0dVQKGY3jp/7 HTTP/1.1..Host: 91.121.132.131..Accept: */*..User-Agent: Shockwave Flash.Connection: Keep-
  Alive.Cache-Control: no-cache..Content-Type: application/x-fcs..Content-Length: 73..........=.........play.............v
  ootv/associez_voo_003............@.....     

Donc le playpath est .. "vootv/associez_voo_003".

J'ai donc tout ! Et ca fonctionne :

flvstreamer_x86 -x -r "rtmpt://91.121.132.131/vod/vootv/vootv/associez_voo_003" -c 80 > vootv.flv

Reste une problématique ... comme récupérer le playpath des émissions ?

Pour l'instant ... je n'en sais rien.

Mise à jour : J'ai développé un script pour pouvoir regarder les vidéos : http://www.gnunux.info/dotclear2/index.php?post/2010/02/07/Premiere-version-de-nootvpy