====== RTMPDUMP ======
[[http://rtmpdump.mplayerhq.hu/|rtmpdump]] est un outil qui permet de récupérer le contenu d'un flux rtmp. Rien d'illégal est soit, on donne un flux en streaming, on a juste envie de l'écouter de la façon dont on veut. Seulement l'utilisation n'est pas toujours facile. Aide mémo:
===== Paramètres =====
[[http://man.cx/rtmpdump|Man page]]
--rtmp -r url
URL of the server and media content.
--app -a app
Name of application to connect to on the RTMP server. Overrides the app in the RTMP URL. Sometimes the rtmpdump URL parser cannot determine the app name automatically, so it must be given explicitly using this option.
--tcUrl -t url
URL of the target stream. Defaults to rtmp[e]://host[:port]/app/playpath.
--pageUrl -p url
URL of the web page in which the media was embedded. By default no value will be sent.
--swfUrl -s url
URL of the SWF player for the media. By default no value will be sent.
--flv -o output
Specify the output file name. If the name is − or is omitted, the stream is written to stdout.
===== Exemple The Hobbit =====
Prenons comme exemple la musique du film The Hobbit qui peut être écoutée [[http://www.decca.com/hosting/hobbit/|ici]]. Seulement c'est en une seule piste (1h45) dans un sale player flash où on sait même pas avancer.
En décompilant ([[http://flasm.sourceforge.net/|flasm]] est ton ami) le [[http://www.decca.com/hosting/hobbit/Hobbit.swf|fichier swf]], on découvre ceci ([[http://paste.mart-e.be/raw/murecexifo|output complet]])
'rtmp://fl.interoute.com/streamrt',
'mp3:{6ffab433-1c7d-4a4a-a9cc-472ebc88c47e}/{c9b64919-4aa0-4237-a882-e9fd15b8712f}/TheHobbit.mp3',
ou en écoutant avec [[https://www.wireshark.org/|Wireshark]], on voit ceci passer
connect.?..........app...streamrt..flashVer...LNX 11,2,202,251..swfUrl...http://www.decca.com/hosting/hobbit/Hobbit.swf..tcUr.l.. rtmp://fl.interoute.com/streamrt..fpad....capabilities.@m........audioCodecs.@.........videoCodecs.@o.......
videoFunction.?..........pageUrl..$http://www.decca.com/hosting/hobbit/....
[...]
.C..........createStream.@......................._result.@.........?.............s........play............_mp3:{6ffab433-1c7d-4a4a-a9cc-472ebc88c47e}/{c9b64919-4aa0-4237-a882-e9fd15b8712f}/TheHobbit.mp3
Ce qui est beau avec Wireshark, c'est qu'on a nos paramètres quasi déjà tout fait. On identifie donc facilement les paramètres et arrive à la commande suivante :
$ rtmpdump --app streamrt --swfUrl http://www.decca.com/hosting/hobbit/Hobbit.swf --tcpUrl rtmp://fl.interoute.com/streamrt --pageUrl http://www.decca.com/hosting/hobbit/ --playpath "mp3:{6ffab433-1c7d-4a4a-a9cc-472ebc88c47e}/{c9b64919-4aa0-4237-a882-e9fd15b8712f}/TheHobbit.mp3" -o TheHobbit.mp3
qui produit un beau mp3. Bon bien sûr n'allez pas partager se fichier .mp3 sur des réseaux P2P, là vous deviendriez illégal. À bon entendeur...