plainprogrammer
plainprogrammer

Reputation: 594

Custom Metadata with Icecast

I need to add additional metadata to an Icecast stream (beyond Artist and Song Title). I've tried a number of ideas but none seems to yield anything. The situation is made more complicated in that the metadata also passes through Wowza, which is re-streaming the Icecast stream. Is there a canonical list of metadata fields supported by Icecast, and does anyone have experience passing custom metadata as part of an Icecast stream and on to Wowza?

Upvotes: 7

Views: 6450

Answers (2)

TooTallNate
TooTallNate

Reputation: 1475

My node-icy module is capable in reading in an arbitrary Icecast stream and intercepting and/or adding "metadata" events to an output stream. You are essentially "proxying" the stream. A good (though slightly complicated) example might be here: proxy.js

Do note though that the "metadata" format is a semicolon-delimited String of key-value pairs, but Icecast clients only react to the StreamTitle value, so just stuff all the information you want into there:

StreamTitle='Pink Floyd - Welcome to the Machine';

I've done things like send a metadata event every second to keep a track position counter (though that may have been a little network-heavy):

StreamTitle='Pink Floyd - Welcome to the Machine (0:12/4:02)';

Good luck!

Upvotes: 6

joatd
joatd

Reputation: 119

Though it's a bit complicated, the Savonet/Liquidsoap scripting language has facilities to modify/set stream metadata. There's a couple examples in the Liquidsoap wiki at https://wiki.sourcefabric.org/display/LS/UserScripts

Upvotes: 2

Related Questions