Icecast Metadata

Prev Next

You can deliver metadata to the Triton Digital MediaRelay (MR) using an out-of-band method:

  • A conventional Icecast V2 TCP connection to the MR server delivers the audio stream data.

  • Another HTTP transaction delivers the metadata for song and ad markers. Metadata is sent to the MR server using the HTTP GET method.

Ad Injection for Icecast

Because metadata is transported on a separate HTTP connection from the Icecast v2 connection, this can create alignment issues with ad insertion for mid-rolls. Therefore, Triton recommends only using pre-roll ad insertion when using Icecast.

Note that a few seconds of misalignment for song metadata does not significantly degrade the listener's experience, so it's acceptable to use icecast to pass song metadata.

Icecast Metadata Timing

While metadata can be sent at any time from your broadcasting tool, it is best to make this as accurate as possible given the live out-of-band nature of the metadata method.

Once the content and the metadata arrive at the Triton origin server, that timing/synchronization will be carried forward through the system in lock-step and will not have any further time drift.

Shoutcast/Icecast playback by listeners can re-introduce time drift. This is easily solved by using HLS- or FLV-based client players instead.

Send Metadata

Metadata can be sent to the MR server at any time while broadcasting with a simple HTTP request.

  • It can be used to send Artist and Title information to connected listeners for the current playing track.

  • With custom work, you can use this to send liner notes or other non-track relayed messages to connected listeners.

GET Method

The following GET code block is an example HTTP URL that you must create to send to the Triton Digital MediaRelay to insert stream events for songs and mid-roll ad breaks. The song or url parameters are needed to support metadata updates.

GET /admin/metadata?mount=/MOUNTNAME&mode=updinfo&song=Song+-+Title&url=UrlEncodedSubParameters HTTP/1.0\r\n
Authorization: Basic c291cmNlOmhhY2ttZQ==\r\n
\r\n

Response

Response Code

Description

200

Success.

400

Invalid Request or Invalid Mount Name.

401

Invalid Password.

404

Unknown Mount or Temporarily Disabled.

500

Server Unavailable.

URL Parameter

The url parameter can be used to provide additional information about the current event, be it a song or track start or a mid-roll ad break.

If the url parameter is used, then the song parameter should not be provided. If your broadcasting tool cannot pass a url parameter, see Song Parameter.

URL Sub-Parameters

The url parameter can contain a URL-encoded sub-parameter list. Sub-parameters are identical in format to standard URL parameters, but URL-encoded as a single value for the url parameter.

For example:

title=Vogue&artist=Madonna&duration=300&songtype=S

needs to be delivered as:

url=title%3DVogue%26artist%3DMadonna%26duration%3D300%26songtype%3DS

URL Sub-parameter

Description

songtype

Required.

  • S: Indicates a song or block of content start. Also ends a block of ads.

  • A: Indicates the start of an ad break. This triggers a mid-roll ad break.

style

Optional.

  • block: Triggers a mid-roll block of one or more ads. Any other metadata will be ignored until a songtype of S or style of default is received.

  • default: Indicates the end of a block of ads.

duration

Optional but recommended.

Length of the current event in seconds.

title

Optional but recommended.

Title of the current event. It can be empty.

artist

Optional but recommended.

The artist of the current event.

Ignored if songtype is A.

album

Optional but recommended.

The album of the current event.

Ignored if songtype is A.

Song Parameter

The song parameter is a free-form text field not officially described. Triton Digital supports it as an alternative for broadcast tools that cannot send the url parameter.

The value of the song parameter uses the artist-title string (ATS) format. It separates metadata with a space-hyphen-space ( - ).

ATS format

URL encoding

Title

song=Title

Artist - Title

song=Artist%20-%20Title

Artist - Album - Title

song=Artist%20-%20Album%20-%20Title

Note that the ATS format does not allow a broadcast tool to specify duration or ad breaks. Triton also supports an extended format for this: TildeATS.

TildeATS Metadata Format

For Icecast broadcast tools that are not capable of populating the url parameter with metadata, Triton supports TildeATS (Tilde artist-title string), which is an extended format for the song parameter that includes the option for indicating ad breaks.

The value for a song parameter in TildeATS format contains these fields in this order:

  • Artist

  • Title

  • Duration in seconds. If the duration is not known, then a 0 must be provided.

  • Category code

  • Optional: Ad insertion count, I ~ n, where n is the number of ads to insert. The default for n is 1. Use this for ad-insertion events, where the category code is 4.

Fields must be separated with space-tilde-space ( ~ ).

The value must be terminated with a caret (^).

Triton recognizes these category codes in TildeATS:

  • 0: Song

  • 4: Ad

  • 11: PlaylistEvent

  • Other categories are accepted and processed as an End Break event.

You can prefix a song parameter’s value with two hashes (##) to indicate that Triton should ignore a metadata event, yet still be processed as an End Break. This allows you to terminate a break event so that it does not appear in a SoundExchange report.

Examples:

##Ignored - Event

##Ignored ~ Event ~ 300 ~ 0 ^

Metadata Examples

Song Metadata With URL Parameter

Metadata:

  • Artist: Madonna

  • Title: Vogue

  • Duration: 3m 20s

duration=200&songtype=S&artist=Madonna&title=vogue

Encoded parameter:

url=duration%3D200%26songtype%3DS%26artist%3DMadonna%26title%3Dvogue

Start of an Ad Break With URL Parameter

Metadata:

  • Title: Ad break

  • Duration: 30s

title=Targeted Ad Break=&duration=30&songtype=A

Encoded parameter:

url=duration%3D200%26songtype%3DS%26artist%3DMadonna%26title%3Dvogue

End of an Ad Break With URL Parameter

Triton Digital MR requires you to send the end an ad break if you are using ads in a news or live show where there are no title updates in the broadcast.

No metadata is needed.

songtype=S

Encoded parameter:

url=songtype%3DS

Song Metadata  in ATS Format

Metadata:

  • Artist: Billie Eilish

  • Title: Bad Guy

Billie Eilish - Bad Guy

Encoded parameter:

song=Billie%20Eilish%C2%A0-%C2%A0Bad%20Guy

Song Metadata in TildeATS Format

Metadata:

  • Artist: Billie Eilish

  • Title: Bad Guy

  • Duration: 4m 6s

Billie Eilish ~ Bad Guy ~ 246 ~ 0 ^

Encoded parameter:

song=Billie%20Eilish%20~%20Bad%20Guy%20~%20246%20~%200%20%5E

Ad Replacement in TildeATS Format

Break ~ Break ~ 60 ~ 4 ^

Encoded parameter:

song=Break%20~%20Break%20~%2030%20~%204%20%5E

Ad Insertion With a Default 1 Ad Insert in TildeATS Format

Break ~ Break ~ 30 ~ 4 ~ I ^

Encoded parameter:

song=Break%20~%20Break%20~%2030%20~%204%20~%20I%20%5E

Ad Insertion With a Specific Count in TildeATS Format

Break ~ Break ~ 30 ~ 4 ~ I ~ 3 ^

Encoded parameter:

song=Break%20~%20Break%20~%2030%20~%204%20~%20I%20~%203%20%5E

Program Start, Also Known as a PlaylistEvent in TildeATS Format

Program Title ~ unused ~ 3600 ~ 11 ^

Encoded parameter:

song=Program%20Title%20~%20unused%20~%203600%20~%2011%20%5E

© 2026 Triton Digital®. All rights reserved.