[Icecast-dev] How do you escape characters within the metadata block

John Selbie jselbie at hotmail.com
Sat Jul 5 23:43:32 PDT 2014


When "Icy-MetaData: 1" is in the HTTP request to the server, that indicates that the client wants to receive meta data inlined with the mp3 data stream.  The metadata interval is reported by the server via the "icy-metaint" header in the response stream.
Such data looks like the following within the mp3 stream
    StreamTitle='Ozzy Osbourne - Crazy Train';StreamUrl='http://myserver.org';
Essentially a series of name/value pairs formatted with single-tick quotes around each value and delimited with Equals and Semicolon chars.
Here is the question.  If the song title itself contains a quote char in it:
    StreamTitle='Destiny's Child - Emotion';
How is the tick mark within that stream title expected to be escaped such that the StreamTitle isn't parsed as just "Destiny" ?
Is it a URL Encoding  (StreamTitle='Destiny%27s Child - Emotion';) ?
A C style Encoding (StreamTitle='Destiny\'s Child - Emotion';) ?
Or something else?
I didn't see any escape code in the icecast server sources.  But I did see URL encodings for metadata in the libshout broadcast client sources.  So I suspect that's the answer. But I wasn't sure if the server did any re-encoding on the strings.
Can someone confirm?
jrs






 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/icecast-dev/attachments/20140705/464a88bb/attachment.htm 


More information about the Icecast-dev mailing list