Very well, you'll need the following:
- rtmpdump (it should include rtmpsuck)
- A page with a flash based object with the stream that you want to get the rtmp link
But before we start, do you know what is rtmp?
Getting a rtmp link is fairly easy but you should be alerted that some times you may face some erros while trying to play a rtmp link, it generally means or your rtmp link is incomplete or wrong or then it is offline at the moment of test.
Let's start then our hunt for rtmp links, I'll use a Ubuntu 11.04 machine to do it, but it was confirmed to be working in Fedora 15.
1. Open the console of your distribution and type the following command as root:
On Ubuntu: sudo iptables -t nat -A OUTPUT -p tcp --dport 1935 -m owner \! --uid-owner root -j REDIRECT
On Fedora (if you're not a sudoer): su -c 'iptables -t nat -A OUTPUT -p tcp --dport 1935 -m owner \! --uid-owner root -j REDIRECT'
RTMP proxy server Streaming on rtmp://0.0.0.0:1935
3. Now it is time to visit a page with a stream using Flash (confirm rtmpsuck is running), once you are there wait a little to the video start reproduce, once it starts, go back to the console, you'll now have some new lines, the last ones will be talking about the audio and video, go up a little so you can read the lines (<something> means what is written in your console, these fields change according to the streams):
app: <something> flashVer: <something> swfUrl: <something> tcUrl: <something> pageUrl: <something> Playpath: <something>
Let's explain briefly what is each field of the above (there other fields that may show you talking about the video and audio, but we don't need them for this):
flashVer: This is the field that identifies the version of the Flash Player to run the RTMP - Probably you will not need to use it, since a default one is used - "LNX 10,0,32,18";
swfUrl: This specifies the link where the Flash Player used to stream the RTMP link is hosted - Needed everytime;
tcUrl: This specifies the link for the RTMP stream itself - Needed everytime;
pageUrl: This specifies the link for the page where the stream can be watched (it should be a .htm or something like that page) - Sometimes needed;
Playpath: This specifies the name of the file of the stream that is located in the tcUrl link (sometimes you will face this field as a complex name without a file format, that's normal) - Needed everytime;
5. Now we will write the final RTMP link that you need to stream it using Showtime, let's use the following form (it is the form that I used for me), the fields that are between < > is one of the above fiels value:
<tcUrl>/<Playpath> swfUrl=<swfUrl> pageUrl=<pageUrl> swfVfy=true live=true tcUrl=<tcUrl>
app: live flashVer: LNX 10,0,32,18 swfUrl: http://example.com/player/player.swf tcUrl: rtmp://example.com/live pageUrl: http://otherexample.com/index.htm Playpath: file.flv
rtmp://example.com/live/file.flv swfUrl=http://example.com/player/player.swf pageUrl=http://otherexample.com/index.htm swfVfy=true live=true tcUrl=rtmp://example.com/live
Now we have the RTMP link! You may use it directly in a plugin of Showtime using it as a url for a video or put it in a remote xml file and inside a plugin of Showtime get access to that file and read the url and do the same thing as the statement before.
I hope you enjoyed my tutorial, it will be updated when problems or new solutions are found. Thanks for reading this. Now that you know how to get the RTMP links, you have the power to stream TV channels, use it in your responsability, the author of the tutorial does not take any responsability for the use that the user may give to it.