Saturday, January 10, 2009

Sirius on the iPhone

Getting Sirius on my iPhone was a difficult task for me. I was using Orb with uSirius for a while but I found that orb is too heavy for my home server. Also Orb takes too long to start from the iPhone... I have to click through 5 prompts before I can hear Stern. Then if I got disconnected, which happens all too often, I had 5 more prompts to click through.

So here's my solution using all free software without transcoding and without jailbreaking my iPhone.

This is for the technologically advanced user. If you don't have a web server or never heard of asp then stop here.

Requirements:

A home web server running asp
uSirius RC 8

uSirius Mirror: http://www.mediafire.com/?kn0cotmyt52

A sirius subscription
fStream (free on appStore)

A little background info:
When a media player hits a uSirius url (e.g. http://192.168.1.101:19080/streams/stream?bandwidth=low&num=100&r=1229898108), uSirius redirects the player to the correct feed from the sirius servers (e.g. http://g.lm.akamaistream.net/D/?auth=reallylongurl&MSWMExt=.asf)

How this redirection occurs is the source of the problem. Most media players don't like to be redirected. Especially all iPhone media players I tried. So my asp script simplifies the redirect by transforming it into a m3u playlist. Here's how to do it

Open up notepad and paste this code:


<%
response.ContentType="audio/x-mpegurl"
Set stream = CreateObject("MSXML2.ServerXMLHTTP.3.0")
stream.open "GET", "http://192.168.1.101:19080/streams/stream?bandwidth=low&num=" & request.querystring("C") & "&r=1234567890", false
stream.send ""
If stream.Status = 200 AND stream.readyState = 4 Then
s = stream.ResponseText
s = Mid(s, instr(s, "=")+1)
s = Mid(s, 1, instr(s, "Ref")-3)
s = "mms" & Mid(s, 5)
end If
response.write(s)
%>

Save it as sirius.asp and put it in the your web root directory.

You would have to get the ASX playlist location from uSirius and plug it into my script, substituting your internal ip address and the "r=1234567890" part.


Lastly, in fStream you could add a stream to Howard 100 by calling this script like this: http://myexternalipaddress/sirius.asp?C=100 because Stern is Sirius channel 100.



I have found this setup to be highly effective for me and it puts little strain on my server. I know this isn't the most complete tutorial in the world but I just figured I'd share my findings with you.

If you have a better solution please share in the comments.

7 comments:

ratt2581 said...

why not use a truly random number assigned to the variable r instead of a generic 1234567890.

I'm assuming thats what the r is for cache busting purposes.

anyway I haven't tried this out yet - going to give it a try. thanks for the tip

geoffa said...

what is the code. i see nothing.

geoffa said...

if you wish not to publish the code, can you send it to me?
geoffa@geoffa.com

Nicholas said...

Could you please post Usirius Rc8 since it has been removed from the web

Treas0n said...

This is now defunct because Sirius changed some cookie handling. I have an update for it. If you want it posted let me know in the comments.

icantthinkofaname said...

Please post it! I hate not being able to use usirius anymore (and I imagine many other people feel the same)

Viagra Online said...

I think technology was wrong with the release of this iphone because I've heard that a lot of people got issues with that, the worst is this gadget is very expensive.