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\nResponse
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 |
|---|---|
| Required.
|
| Optional.
|
| Optional but recommended. Length of the current event in seconds. |
| Optional but recommended. Title of the current event. It can be empty. |
| Optional but recommended. The artist of the current event. Ignored if |
| Optional but recommended. The album of the current event. Ignored if |
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 |
|
Artist - Title |
|
Artist - Album - Title |
|
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 is1. Use this for ad-insertion events, where the category code is4.
Fields must be separated with space-tilde-space ( ~ ).
The value must be terminated with a caret (^).
Triton recognizes these category codes in TildeATS:
0: Song4: Ad11: PlaylistEventOther 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