Weblog of Abdullah Rubiyath :: Alif

Exploring the Web: An apple a day

Akamai CDN: Getting RTMP URL From XML File

Tweet
Wed, 06/03/2009 - 23:25 -- alif

Where I work, my company uses Akamai as the CDN for all properties. Initially our company used non-RTMP downloadable URL from Akamai, but, later after some struggling (in May 2008 or so) I was able to figure out how to extract RTMP from Akamai's XML File.

Akamai Provides two URLs for each File:

1. Downloadable FLV URL Returns the actual FLV File. The URL Format of this file is:
http://[your_company_name].edgeboss.net/download/[your_company_name]/[path_to_file]/
2. Streaming URL Returns an XML File. The URL Format of this file is:
http://[your_company_name].edgeboss.net/flash/[your_company_name]/[path_to_file]/

#1 is self-explanatory, when you visit that URL, you get the RAW FLV File. so, I will talk on #2.

#2. Streaming URL: When you try visiting the streaming URL. It returns an XML File like below:

cp49576.edgefcs.netcp49576.edgefcs.netondemand
    flash/streamfile/.uid.ManyRzefr9384ec84.anti
   false2

To get the RTMP URL, all you need to do is concat the node value of serverName+appName and streamName. That's it. So, basically:

rtmp://[serverName]/[appName]/[streamName]

So, for the above case, the rtmp URL would be:

rtmp://cp49576.edgefcs.net/ondemand/flash/streamfile/.uid.ManyRzefr9384ec84.anti

I usually use PHP DomDocument and DomXPath to get the RTMP URL. The code would be simple and straight-forward like below:

$dom   = new DomDocument($akamaiURL);
$xpath = new DomXPath($dom);

$rtmpURL = 'rtmp://'.$xpath->query('/FLVPlayerConfig/serverName')->item(0)->nodeValue .'/'. $xpath->query('/FLVPlayerConfig/appName')->item(0)->nodeValue . '/' . $xpath->query('/FLVPlayerConfig/streamName')->item(0)->nodeValue;

In popular FLash player like JWPlayer, to play the RTMP URL (for JWPlayer 4.0), the URL would be like this:

player.addVariable('flashvars', 'file=rtmp://cp49576.edgefcs.net/ondemand/flash/streamfile/.uid.ManyRzefr9384ec84.anti');

For JWPlayer 4.5, the 'streamer', 'file' and 'type' needs to be passed separately, so, its slightly different, and would be like this:

player.addVariable("file","flash/streamfile/.uid.ManyRzefr9384ec84.anti");
player.addVariable('streamer', 'rtmp://cp49576.edgefcs.net/ondemand' );
player.addVariable('type', 'rtmp');

I hope it helps.

Please Note that: In this article, I didn't cover the Akamai URL that requires Authentication Token, which is a separate issue.

Comments

How i can get XML file or

Submitted by Sancho (not verified) on

How i can get XML file or RTMP URL ? Help PLS

Это сообщение появилось, потому что в вашем обозревателе отключена поддержка JavaScript. Наш сайт широко использует технологию JavaScript поэтому, чтобы правильно просматривать наши страницы, мы просим Вас включить в обозревателе поддержку Javascript. Как это можно сделать в вашей версии обозревателя, Вы можете узнать

Thanks - Good work

Submitted by Damien (not verified) on

Good work. This is just what I needed.

Damien, Brazil.

Thanks - Reposted on stream-recorder.com

Submitted by Stream (not verified) on

Excellent!. Its now posted on stream-recorder.com

http://stream-recorder.com/forum/akamai-cdn-getting-rtmp-url-xml-file-t4...

Thanks,

Thank you so much. I spent

Submitted by Ajay (not verified) on

Thank you so much. I spent hours searching for this and finally found this..

You can go those sits to know

Submitted by air jordan 12 (not verified) on

You can go those
sits to know more relate things.
prada store

Качественный ремонт киев

Submitted by LUKAROMANOV27 (not verified) on

Качественный ремонт киев только тут

Add new comment