This is Inside RadioTime, a website that gives Broadcasters, Developers, OEMs and Advertisers looking for the 411 on the RadioTime guide.

StationFeed

Overview

The StationFeed XML schema defines a common format that allows stations to keep their information up to date in the RadioTime database.  It is ideal for submitting data for a large batch of stations or for stations that have frequent (daily or weekly) updates.

Basics

The StationFeed XSD can be found at the bottom of this page.

The XSD defines the schema for the StationFeed and can be used to validate your XML before submitting it.  More documentation and some examples are also included below.

Once you’ve created the StationFeed XML detailing your stations send the URL of the document support@radiotime.com. We’ll process and apply your feed and can also add it to a periodic schedule to automatically pick up future changes.

Basic Station Fields

Element Required Purpose
StationId Yes Owner assigned unique identifier for the station. It should not change over the lifetime of the station
Name Yes Name of the station
Slogan No Slogan or short description
Description No Full description
CallSign No Call letters (primarily for terrestrial broadcast stations)
Band Yes Identifies type of station (AM/FM/Stream/DAB/VHF/UHF). Use stream for internet only.
Frequency Yes (except for DAB or Stream) Broadcast frequency of the station
WebUrl No Website for the station
LastModifiedDate No Last time station info was updated
Location Yes Country is required (ISO 3166-2). City is required for terrestrial stations but is optional for internet only stations (may be used if the station is primarily focused on local content).
Genres No Supply your own genre names and we will try and map them to the appropriate RadioTime genre. Or use the RadioTime genre names

Auxiliary Ids

Auxiliary ids are optional but can help us match your data to existing RadioTime stations.

Type Description Purpose
FCC FCC Facility ID If we already have a station associated with the FCC Facility we can match it to your data
RadioTime RadioTime Station Id If the station already exists in RadioTime you can provide the RadioTime station id to help us match it

Streams

Element Required Purpose
MediaType Yes Identifies audio codec used by the stream (MP3,WM,AAC,OGG,Real,etc)
BitRate Yes Bitrate of the stream
StreamUrl Yes Url of the stream
Restrictions No Specify restrictions that apply to the stream

Stream Restrictions

Type Description
Location Stream is only available to users in the same country as the station
DeviceOnly Stream is not available on RadioTime.com but is available to media devices. Used in conjunction with the WebPlayer element of the station

WebPlayer

Element Required Purpose
PlayerUrl Yes URL of web player
Height Yes Window height in pixels of the web player
Width Yes Window width in pixels of the web player

Logos

Generally only one logo needs to be provided and we will automatically resize it to the standard RadioTime logo dimensions. If you would rather submit your own sized logos you can include links to each.

Element Required Purpose
LogoUrl Yes URL to the logo
LastModifiedDate No Not required but necessary to notify us that a logo has changed and needs to be updated

Contact Info

Element Required Purpose
ContactType Yes Identifies type type of contact. “General” is what we provide to users to contact the station.
Email No
PhoneNumber No
MailingAddress No
Twitter No Twitter id
Facebook No URL to facebook page

Examples

  • E1 – Internet streaming radio station (no AM/FM broadcast)
<Stations>
    <Station>
        <StationId>ABC123</StationId>
        <Name>AB Radio</Name>
        <Slogan>Best Of everything</Slogan>
        <Description>Playing the best music of all time.</Description>
        <Language>en</Language>
        <Band>Stream</Band>
        <TimeZone>America/Chicago</TimeZone>
        <WebUrl>http://www.ab2513.net/</WebUrl>
        <Location>
            <Country>us</Country>
        </Location>
        <Genres>
            <Genre>60s</Genre>
            <Genre>70s</Genre>
            <Genre>Oldies</Genre>
        </Genres>
        <Logos>
            <Logo>
                <LogoUrl>http://www.ab2513.net/logo/logo.png</LogoUrl>
                <LastModifiedDate>2009-05-30T09:30:10Z</LastModifiedDate>
            </Logo>
        </Logos>
        <Streams>
            <Stream>
                <MediaType>MP3</MediaType>
                <BitRate>32</BitRate>
                <StreamUrl>http://www.ab2513.net/low.pls</StreamUrl>
            </Stream>
            <Stream>
                <MediaType>MP3</MediaType>
                <BitRate>64</BitRate>
                <StreamUrl>http://www.ab2513.net/med.pls</StreamUrl>
            </Stream>
        </Streams>
        <Contacts>
            <Contact type="General">
                <Name>Request Line</Name>
                <Phone>555-555-1234</Phone>
                <Email>Joe@ab2513.net</Email>
                <Twitter>abradio</Twitter>
                <Facebook>http://facebook.com/abradio</Facebook>
            </Contact>
        </Contacts>
    </Station>
</Stations>
  • E2 – A FCC tracked FM station:
<Stations>
    <Station>
        <StationId>ABC123</StationId>
        <Name>AB Radio</Name>
        <Slogan>Best Of everything</Slogan>
        <Description>Playing the best music of all time.</Description>
        <Language>en</Language>
        <CallSign>ABCD-FM</CallSign>
        <Band>FM</Band>
        <Frequency>107.1</Frequency>
        <TimeZone>America/Chicago</TimeZone>
        <WebUrl>http://www.ab2513.net/</WebUrl>
        <AuxiliaryIds>
                <AuxiliaryId type="FCC">123456</AuxiliaryId>
                <AuxiliaryId type="RadioTime">10001</AuxiliaryId>
        </AuxiliaryIds>
        <Location>
        <City>Dallas</City>
        <State>TX</State>
        <Country>us</Country>
        </Location>
        <Genres>
            <Genre>60s</Genre>
            <Genre>70s</Genre>
            <Genre>Oldies</Genre>
        </Genres>
        <Logos>
            <Logo>
                <LogoUrl>http://www.ab2513.net/logo/logo.png</LogoUrl>
                <LastModifiedDate>2009-05-30T09:30:10Z</LastModifiedDate>
            </Logo>
        </Logos>
        <Streams>
            <Stream>
                <MediaType>MP3</MediaType>
                <BitRate>32</BitRate>
                <StreamUrl>http://www.ab2513.net/low.pls</StreamUrl>
            </Stream>
            <Stream>
                <MediaType>MP3</MediaType>
                <BitRate>64</BitRate>
                <StreamUrl>http://www.ab2513.net/med.pls</StreamUrl>
            </Stream>
        </Streams>
        <Contacts>
            <Contact type="General">
                <Name>Request Line</Name>
                <Phone>555-555-1234</Phone>
                <Email>Joe@ab2513.net</Email>
                <Twitter>abradio</Twitter>
                <Facebook>http://facebook.com/abradio</Facebook>
                <MailingAddress>
                        <AddressLine1>AB Radio</AddressLine1>
                        <AddressLine2>123 Fake St.</AddressLine2>
                        <PostalCode>75231</PostalCode>
                        <Location>
                                <City>Dallas</City>
                                <State>TX</State>
                                <Country>us</Country>
                        </Location>
                </MailingAddress>
            </Contact>
        </Contacts>
    </Station>
</Stations>
  • E3 – Station with a custom player for web users. Streams are also restricted to users in the US.
<Stations>
    <Station>
        <StationId>ABC123</StationId>
        <Name>AB Radio</Name>
        <Band>Stream</Band>
        <Location>
            <Country>us</Country>
        </Location>
        <Streams>
            <Stream>
                <MediaType>MP3</MediaType>
                <BitRate>32</BitRate>
                <StreamUrl>http://www.ab2513.net/low.pls</StreamUrl>
                <Restrictions>
                        <Restriction type="DeviceOnly" />
                        <Restriction type="Location" />
                </Restrictions>
            </Stream>
            <Stream>
                <MediaType>MP3</MediaType>
                <BitRate>64</BitRate>
                <StreamUrl>http://www.ab2513.net/med.pls</StreamUrl>
                <Restrictions>
                        <Restriction type="DeviceOnly" />
                        <Restriction type="Location" />
                </Restrictions>
            </Stream>
        </Streams>
        <WebPlayer>
                <PlayerUrl>http://www.ab1513.net/player.html</PlayerUrl>
                <Height>640</Height>
                <Width>480</Width>
        </WebPlayer>
    </Station>
</Stations>

XSD

<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) by David McIntosh (RadioTime) -->
<xs:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:xs="http://www.w3.org/2001/XMLSchema" id="Stations">
    <xs:element name="Location">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="City" type="xs:string" minOccurs="0" />
                <xs:element name="State" type="xs:string" minOccurs="0" />
                <xs:element name="Country" type="xs:string">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">ISO 3166-2 (2 char country code)</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Stations">
        <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Station">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="StationId" type="xs:string">
                                <xs:annotation>
                                    <xs:documentation>Your unique station identifier</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Name" type="xs:string" />
                            <xs:element name="Slogan" type="xs:string" minOccurs="0" />
                            <xs:element name="Description" type="xs:string" minOccurs="0" />
                            <xs:element name="Language" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>ISO 639-1 2 char language code.  Defaults is english if not specified.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="CallSign" type="xs:string" minOccurs="0" />
                            <xs:element name="Band" type="Band">
                                <xs:annotation>
                                    <xs:documentation>Method of station broadcast.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Frequency" type="xs:decimal" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Optional for streaming stations.  Required for broadcast.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="TimeZone" type="xs:string" minOccurs="0" />
                            <xs:element name="WebUrl" type="xs:string" minOccurs="0" />
                            <xs:element name="LastModifiedDate" type="xs:dateTime" minOccurs="0" />
                            <xs:element name="AuxiliaryIds" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Extra identifying information to help map your station to other data sources or to an existing radiotime station.</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="AuxiliaryId" nillable="false" minOccurs="0" maxOccurs="unbounded">
                                            <xs:complexType>
                                                <xs:simpleContent>
                                                    <xs:extension base="xs:string">
                                                        <xs:attribute name="type" type="AuxilliaryIdType" use="required" />
                                                    </xs:extension>
                                                </xs:simpleContent>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element ref="Location">
                                <xs:annotation>
                                    <xs:documentation>Station source location or target market.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Genres" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Genres you associate with your station.</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Genre" nillable="false" minOccurs="0" maxOccurs="unbounded">
                                            <xs:annotation>
                                                <xs:documentation>Name of genre</xs:documentation>
                                            </xs:annotation>
                                            <xs:complexType>
                                                <xs:simpleContent>
                                                    <xs:extension base="xs:string">
                                                        <xs:attribute name="key" type="xs:string">
                                                            <xs:annotation>
                                                                <xs:documentation>Your internal genre identifier (optional for mapping reference if genre names will not be consistent)</xs:documentation>
                                                            </xs:annotation>
                                                        </xs:attribute>
                                                    </xs:extension>
                                                </xs:simpleContent>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Logos" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Logos assosicated with the station.  Logos will be converted to standard radiotime.com sizes: 145x145 , 145x70, 70x50</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Logo" minOccurs="0" maxOccurs="unbounded">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="LogoUrl" type="xs:string" />
                                                    <xs:element name="ImageType" type="xs:string" minOccurs="0">
                                                        <xs:annotation>
                                                            <xs:documentation>png,gif,jpg,etc</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:element>
                                                    <xs:element name="Height" type="xs:int" minOccurs="0"/>
                                                    <xs:element name="Width" type="xs:int" minOccurs="0" />
                                                    <xs:element name="LastModifiedDate" type="xs:dateTime" minOccurs="0">
                                                        <xs:annotation>
                                                            <xs:documentation>Optionally provide so we know when to update a station's existing logo.</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:element>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Streams" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Stream" minOccurs="0" maxOccurs="unbounded">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="MediaType" type="MediaType" />
                                                    <xs:element name="BitRate" type="xs:int" />
                                                    <xs:element name="StreamUrl" type="xs:string" />
                                                    <xs:element name="Restrictions" minOccurs="0">
                                                        <xs:complexType>
                                                            <xs:sequence>
                                                                <xs:element name="Restriction" minOccurs="0" maxOccurs="unbounded">
                                                                    <xs:complexType>
                                                                        <xs:attribute name="type" type="xs:string" />
                                                                    </xs:complexType>
                                                                </xs:element>
                                                            </xs:sequence>
                                                        </xs:complexType>
                                                    </xs:element>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Contacts" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>List of contacts.  Contact of type "General" is listed on the radiotime.com station page for users to contact the station.</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Contact" minOccurs="0" maxOccurs="unbounded">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="Name" type="xs:string" minOccurs="0" />
                                                    <xs:element name="Email" type="xs:string" minOccurs="0" />
                                                    <xs:element name="PhoneNumber" type="xs:string" minOccurs="0" />
                                                    <xs:element name="MailingAddress" minOccurs="0">
                                                        <xs:complexType>
                                                            <xs:sequence>
                                                                <xs:element name="AddressLine1" type="xs:string" minOccurs="0" />
                                                                <xs:element name="AddressLine2" type="xs:string" minOccurs="0" />
                                                                <xs:element name="AddressLine3" type="xs:string" minOccurs="0" />
                                                                <xs:element name="PostalCode" type="xs:string" minOccurs="0" />
                                                                <xs:element ref="Location" minOccurs="0" />
                                                            </xs:sequence>
                                                        </xs:complexType>
                                                    </xs:element>
                                                    <xs:element name="Twitter" type="xs:string" minOccurs="0">
                                                        <xs:annotation>
                                                            <xs:documentation>Twitter Id</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:element>
                                                    <xs:element name="Facebook" type="xs:string" minOccurs="0">
                                                        <xs:annotation>
                                                            <xs:documentation>Path to facebook page (omit domain and protocol)</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:element>
                                                </xs:sequence>
                                                <xs:attribute name="type" type="ContactType" use="required" />
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="WebPlayer" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Popup web player for web users.  Specify if you don't want to use the default RadioTime web player.  Height/Width control the size of the popup window</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="PlayerUrl" type="xs:string" />
                                        <xs:element name="Height" type="xs:int" />
                                        <xs:element name="Width" type="xs:int" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="Band">
        <xs:restriction base="xs:string">
            <xs:enumeration value="FM" />
            <xs:enumeration value="AM" />
            <xs:enumeration value="VHF" />
            <xs:enumeration value="UHF" />
            <xs:enumeration value="Stream">
                <xs:annotation>
                    <xs:documentation>For internet-only stations</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="MediaType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="MP3" />
            <xs:enumeration value="FLV" />
            <xs:enumeration value="WM" />
            <xs:enumeration value="WMPro" />
            <xs:enumeration value="WMVoice" />
            <xs:enumeration value="WMVideo" />
            <xs:enumeration value="Real" />
            <xs:enumeration value="AAC" />
            <xs:enumeration value="OGG" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="AuxilliaryIdType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="FCC">
                <xs:annotation>
                    <xs:documentation>FCC Facility Id for broadcast stations tracked by the FCC.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RadioTime">
                <xs:annotation>
                    <xs:documentation>RadioTime station id for initial mapping of your station to an existing station in the RadioTime db.  Specifying the first time will reduce delays in mapping your data to the correct RadioTime stations.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ContactType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Administrative" />
            <xs:enumeration value="Technical" />
            <xs:enumeration value="General">
                <xs:annotation>
                    <xs:documentation>Displayed to users wishing to contact the station.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Sales" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="StreamRestriction">
        <xs:restriction base="xs:string">
            <xs:enumeration value="DeviceOnly">
                <xs:annotation>
                    <xs:documentation>Stream is only available to device partners and not on the radiotime.com website.  Use in conjunction with a WebPlayer to give radiotime.com users a listening option.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Location">
                <xs:annotation>
                    <xs:documentation>Stream is restricted to users in the same country as the station.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AuthRequired">
                <xs:annotation>
                    <xs:documentation>User needs an authorized account to access the stream.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>