[Icecast] Updating MetaData at the Relay

Ian Andrew Bell hello at ianbell.com
Sat Feb 12 10:28:57 PST 2005

On 11-Feb-05, at 9:20 PM, oddsock wrote:

> At 10:21 PM 2/11/2005, you wrote:
>> Now that 2.2.0 is out, we can update metadata on-the-fly.  At
>> pulverradio.com we are working on an injector that takes the song info
>> from our broadcast automation software and dumps it in (thanks guys 
>> for
>> the help).  I realize that we can inject the song info like so:
>> http://server.ip:port/admin/metadata?mount=/ 
>> mountpoint&mode=updinfo&song=ACDC+Back+In+Black

> no...at the moment, only "song" is supported.  All other stream info 
> details (URL, Genre, etc) is not currently update-able via the admin 
> interface.  The must be supplied by the source client on connect.

Okay, so this actually injects it into the stream as shoutcast 
metadata, not just into the server's admin interface?  Someone just 
emailed me to say that this simply updates currently-playing data on 
the admin pages.

> keep in mind that the shoutcast-metadata protocol is only used for MP3 
> streams.

For reasons discussed previously I, and a number of professional 
broadcasters, am married to straight MP3 and have to wait for Vorbis.  
Full support for this would serve me better than lots of support for 
Vorbis tagging.  Karl is a god for coding this up.

> back to your question about shoutcast-metadata, the metadata protocol 
> only supports two fields StreamTitle and StreamUrl.  Virtually ALL 
> players (with the exception of winamp) ignore StreamUrl.  Winamp will 
> use this information in the event that you actually open the winamp 
> mini-browser while listening to a stream, it will open to the default 
> page of the StreamUrl (or at least, that was the way it used to work). 
>  So, for shoutcast-metadata, you really only have StreamTitle (which 
> is usually just the song title).   This is actually, why the 
> admin/metadata call only takes "song", and it was created back when we 
> only supported updates for mp3 streams.  Now, one could aruge that you 
> should also be able to update the genre and maybe the url, but since 
> these fields are used mainly for YP listing, they tend not to be 
> fields that people want to update.

For the static YP variables (genre, url) I'd at least like to be able 
to modify these at runtime in the Icecast config file.  Try finding my 
servers on the xiph.org yellow pages. :)

> Although, I'm sure someone could find a good reason, I couldn't at the 
> time, and therefore didn't make these fields update-able.  It's also 
> important to understand that since these fields are used by the YP, 
> you need to figure out what fields the YP will support updating.  From 
> http://www.icecast.org/spec.php you can see that there is a limited 
> number of update-able fields (song title, listeners, max_listeners, 
> various listening times, and server type - of which only the 
> dir.xiph.org supports a few (song and server type).

...and I presume that when we update the song title using the method I 
specified above it causes Icecast to spark a GET to the xiph Yellow 
Pages to update song data, as well... correct?

>> The reason this is relevant is our dumb encoders just spew out MP3
>> streams with no metadata at all.  It would be nice to be able to add
>> cursory stuff so that we get listed properly on the XIPH yellow pages,
>> etc.  Also, since we're using flaky DNS-based load balancing on our
>> streaming network it'd be nice for all of my servers to masquerade as
>> "radio.pulverradio.com" even though their actual hostname might be
>> something completely different.
> well, your encoders can't be *that* dumb as they probably support some 
> level of HTTP authentication (unless they are connecting in 
> shoutcast-compat mode), so all you need to do is add a few request 
> headers when connecting the encoder, and you'll be properly listed.  
> And masquerading the listen url is not support, but easy enough to do 
> with a simple hard-code modification.

I'd need an EPROM burner to modify my encoders, unfortunately.


All we're trying to do is get the maximum amount of data populated for 
both YP listings and for clients like WinAmp and iTunes.


More information about the Icecast mailing list