[Icecast] Metadata Swapping: How do they do it?

Ian Andrew Bell hello at ianbell.com
Thu May 5 20:52:11 UTC 2005


On 5-May-05, at 12:52 PM, Karl Heyes wrote:

>> My (potentially misguided) belief is that the client 
>> downloads/receives
>> the latter attribute once, on initially connecting to the relay.
>>
>> KH and I have been playing with a branch he built that lets you
>> configure all that stuff in the icecast.xml file however it's not
>> making it into the stream.
>
> AFAIK what you see in the player is made from a HTTP-type header sent 
> to
> the client at connection time and any metadata that may be sent
> midstream.  The stream override settings you mention don't affect the
> HTTP-style headers sent to the listener (whether they should and if so,
> how best to do that is another matter) but in-line metadata will be 
> sent
> provided the metadata has been asked for (metadata is an add-on for mp3
> streams)

Let's face it -- what's going to make us all successful as streamers is 
appearing nicely in client apps.  This is what I'm shooting for, as 
well.

Right now PulverRadio looks like ass in WinAmp and iTunes, whereas 
stations streaming via other means are great.  That's why I'm investing 
in dumping the SongData back into the stream (which works very well 
BTW!).

The name of my mountpoint that gets listed by iTunes (in its index) in 
the "Song Name" field, and presumably the Stream field when/if it's 
listed in their Kerbango directory, is the name of my mountpoint:  
"high.mp3" or "low.mp3".  This sucks.

This hardly has the appeal of, say:  "Virgin Radio UK" or "Indie Pop 
Rocks!".  You can force this data by putting it into the .PLS file like 
so:

[playlist]
File1=http://radio.pulverradio.com/high.mp3
Title1=PulverRadio - Raw Rock Radio - 128kbps
Length1=-1
NumberOfEntries=1
Version=2

...and this works pretty well.  To my knowledge the .M3U format has no 
such capability, though you might be able to use it like so:

#EXTM3U
#EXTINF:PulverRadio - Raw Rock Radio - 128K
http://radio.pulverradio.com/high.mp3

I also have tried creating a friendly, descriptive mountpoint name 
which could appear in the player like so:

/PulverRadio%20%2D%20Raw%20Rock%20Radio%20%2D%20128K

This would be expected to appear in iTunes / WinAmp as:

"PulverRadio - Raw Rock Radio - 128K"

...but this makes Icecast VERY unhappy.  Returns a 404.

So the questions are:

A)	What is the format of the metadata-on-connect that is expected by 
most clients?
B)	As is my usual question, how do we set this data where the 
broadcaster isn't using ices?
C)	If there is no such format, maybe this is the time to define a 
defacto standard and hope it sticks?


If C) is a valid interest then this would be an opportunity to send a 
whole plethora of stuff with the stream, including ID3 tags for both 
the stream itself and each song within it.  There's probably no reason 
not to be ambitious in this regard.

-Ian.




More information about the Icecast mailing list