MetaRadio allows you to connect your Radio Automation system’s Now Playing data to all sorts of broadcast systems – such as RDS Encoder, Digital Radio, Websites, Streaming and lots more! We support around 100 systems out of the box, but sometimes you need to make a connection to a custom system.
This is an advanced topic and assumes you have an understanding of the custom formats your systems required, as well as IT topics such as TCP/UDP and filesystems.
We support the following Custom Inputs:
- File – XML
- File – JSON
- File – Text
- TCP – XML
- TCP – JSON
- TCP – Text
- HTTP – XML
- HTTP – JSON
- HTTP – Text
We support the following Custom Outputs:
- Text Files
- Text Files with FTP Upload
- TCP
- UDP
- HTTP (URL Parameters & POST Fields)
Do you need a Custom Format?
Before using a Custom Output, please consider if one of the in-built inputs or outputs are suitable. You can also contact Media Realm for advice on if we can create an Input/Output template for you, before you embark on creating your own custom formats.
Custom Inputs
MetaRadio has three generic input templates which are supported via Files, TCP, or HTTP. You can configure your automation system to generate a file, TCP packet or HTTP endpoint with one of these formats, and MetaRadio will accept it as an input.
You should always ensure your input data is provided in UTF-8. You should also be very careful to ensure your data doesn’t contain characters that break the formatting – for example, quotation marks within the JSON fields should be escaped.
Here is a brief explanation of the fields we accept:
- Type – this is an Asset Type field. It can be used for filtering within MetaRadio
- Start Timestamp – this is the time the current track started playing.
- It should preferably be in the format YYYY-MM-DD HH:MM:SS.
- You can also specify a different format in the MetaRadio Input settings.
- If a timestamp isn’t specified (e.g. this field is empty or cannot be parsed), the current datetime will be assumed by MetaRadio
- Duration – this is the duration in seconds for the current track. Once the track ends, default data will be sent to most outputs.
- Title
- Artist
- Album
- Playout ID – This is an internal ID or filename of the current track. if it is not specified or is blank, an ID will be generated based on the title & artist. We use this field to detect and ignore duplicate data.
- External ID – This is usually an ID from your scheduling system. MetaRadio does not need this field, but it can be passed through to other output systems.
XML Custom Input
This format is usually the easiest to use. The CDATA encapsulation means you generally don’t need to worry about escaping characters.
<?xml version="1.0"?>
<MetaRadioNow>
<Type><![CDATA[SONG]]></Type>
<StartTimestamp><![CDATA[YYYY-MM-DD HH:MM:SS]]></StartTimestamp>
<Duration>240</Duration>
<Title><![CDATA[Song Title]]></Title>
<Artist><![CDATA[Artist Name]]></Artist>
<Album><![CDATA[Album Name]]></Album>
<PlayoutId><![CDATA[Unique ID / Filename]]></PlayoutId>
<ExternalId><![CDATA[Scheduling system ID - optional]]></ExternalId>
</MetaRadioNow>
JSON Custom Input
{
"Type": "SONG",
"StartTimestamp": "YYYY-MM-DD HH:MM:SS",
"Duration": "240",
"Title": "Song Title",
"Artist": "Artist Name",
"Album": "Album Name",
"PlayoutId": "Unique ID / Filename",
"ExternalId": "Scheduling system ID - optional"
}
Text Custom Input
When you are sending this Text format via TCP, ensure you finish the message with two newlines (\n\n). This tells MetaRadio the full message has been sent, and will allow MetaRadio to begin processing the message.
TYPE=SONG
TITLE=Song Title
ARTIST=Artist Name
ALBUM=Album Name
STARTTIMESTAMP=YYYY-MM-DD HH:MM:SS
DURATION=240
PLAYOUTID=Unique ID / Filename
EXTERNALID=Scheduling system ID - optional
Custom Outputs
Outputs in MetaRadio are how you can send data to third party systems. Once data has been received on an Input, it will be forwarded to an Output.
TCP & File Custom Outputs
You can create custom Outputs using your own arbitrary formats. You can use Merge Fields in MetaRadio to merge the Input data into your own template.
These outputs all operate in a similar fashion:
- Custom TCP & UDP Packet
- Custom Text File
- Custom Text File + FTP
These two fields allow you to configure the payloads to send:
- Text Format – this text is sent when a track is currently playing
- Default/Fallback Text – this text is sent when no track is playing
You can have any quantity of messages, and multiple messages will be rotated.
This example shows two now-playing messages and one paused message:
You can click “View available merge fields” to see all merge fields available in your system. You can also read about all the merge fields available within MetaRadio.
The Message Interval (Seconds) field allows you to define how long any one message displays before the next one is displayed. Set this to 0 to never rotate messages (you will have to wait until the next track starts or stops).
The Message Scheduler can also override this data based on scheduling criteria.
FTP Upload
MetaRadio allows you to upload Custom Text Files to an FTP server. We only support plain old FTP – not SFTP, SSH or FTPS. If you’re sending data to a website, we prefer you use the HTTP Custom Output and send it to an API on your server.
HTTP Custom Output
The HTTP output in MetaRadio allows you to send data as HTTP URL Parameters or HTTP POST Fields. This allows you to interface with basic APIs, such as an API needed by your Website or Mobile App.
The names of these GET/POST fields are customisable to meet your needs. The following fields can be sent directly to a GET/POST field:
- Title
- Artist
- Album
- Duration (Seconds)
- Start Time
- Playout ID
- External ID / Item Code
- ISRC
There are also two Custom Format Fields available for use. These support Merge Fields, and will let you map custom data into custom formats.
You can configure HTTP Basic Authentication Username/Password.
HTTPS is supported. If you use a Self-Signed SSL Certificate, you can use the “Ignore SSL Errors?” option.
The HTTP Output doesn’t support Message Rotation, as it’s expected the third party API would handle any custom formatting and messaging.
Other Generic Output Formats
We also have some other generic formats in MetaRadio, although these are not customisable.
The JSON & JSON + FTP Outputs allow you to save and upload a structured JSON file.
The Track History Output allows you to save JSON files with every track played in a 24hour period to a file, and then optionally upload it to an FTP server. This is generally used for a Song History feature.