Question

I'm creating an application in Objective-C and I need to get the metadata from a SHOUTcast stream. I tried this:

NSURL *URL = [NSURL URLWithString:@"http://202.4.100.2:8000/"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
    [request addValue:@"1" forHTTPHeaderField:@"icy-metadata"];
    [request addValue:@"Winamp 5/3" forHTTPHeaderField:@"User-Agent"];
    [request addValue:@"audio/mpeg" forHTTPHeaderField:@"Content-Type"];
    [NSURLConnection connectionWithRequest:request delegate:self];

I would have to get the headers from this request in order to get the information, right? Unfortunately it keeps returning these headers:

Date = "17 Apr 2010 21:57:14 -0200";

"Max-Age" = 0;

What I'm doing wrong?

Was it helpful?

Solution

I found an answer to this question. Simply append a 7.html at the end of the URL and parse the file.

I.E. http://38.96.148.138:7534/7.html

OTHER TIPS

It seems that shoutcast does not follow HTTP exchange standards and its response headers and body are not separated by two newlines. NSURLConnection/NSURLResponse are unable to parse out the headers; however, connection:didReceiveResponse: is still fired, just with an empty NSURLResponse. This becomes clear if we take a look at data coming in connection:didReceiveData:. The first chunk received will contain metadata headers.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top