SHOUTcast XML Metadata Specification

From Winamp Developer Wiki
Revision as of 10:53, 6 January 2011 by DrO (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


The aim of this file is to show the different aspects of metadata which can be obtained as part of the SHOUTcast 2.0 system. This aims to be a complete list of what is provided in the xml file which the server will provide and is based on the metadata obtained from the media being played (directly or guessed). As a result, not all fields will be filled in though this depends on the setup.

Specification Details

The following is an example xml file output showing the different aspects of metadata which can be returned along with specific notes about certain fields i.e. those which can appear multiple times or those from the older mappings.

<?xml version="1.0" encoding="UTF-8" ?>
 <TALB>The Blue Album</TALB>
 <TCON v1="24">Subgenre</TCON>
 <TCON v1="RX"></TCON>
 <TCON>Death Metal</TCON>
 <TIT2>Back In the U.S.S.R.</TIT2>
 <TPE1>The Beatles</TPE1>
 <COMM language="eng" id="whatever">
   This is a comment
 <COMM language="eng" id="more">
   This is another comment
 <UFID id="">00000003f32f17 </UFID>
 <TCOM>Paul McCartney</TCOM>
 <TCOM>John Lennon</TCOM>
 <TCOP>2008 Neil Radisch</TCOP>
 <TENC>Sir Compressalot</TENC>
 <TEXT>Oscar Hammerstein</TEXT>
 <TEXT>Lorenz Hart</TEXT>
 <TIT1>Concept Album</TIT1>
 <TIT3>Those Ukraine Girls</TIT3>
 <TMED>(VID/PAL) four channel</TMED>
 <TOAL>The White Album</TOAL>
 <TOLY>Jean Paul Satre</TOLY>
 <TOLY>Ayn Rand</TOLY>
 <TOPE>Bruce Springstein</TOPE>
 <TOPE>E Street Band</TOPE>
 <TPE2>Featuring Yoko Ono</TPE2>
 <TPE3>Zubin Mehta</TPE3>
 <TPE4>Sonic cleanup corp</TPE4>
 <TPOS total="4">2</TPOS>
 <TPUB>Capitol Records</TPUB>
 <TRCK total="24">6</TRCK>
 <TRSN>Neils Radio Station</TRSN>
 <TRSO>Neil Radisch</TRSO>
 <TSSE>Profile 16</TSSE>
 <TXXX id="contents of neils garden">
   Roses, grapes, raspberries, blackberries
 <TXXX id="contents of peters garden">
   beans, kale, raspberries, blackberries
 <WXXX id="backup singers">
 <WXXX id="engineers">
 <IPLS role="drummer">Ringo Starr</IPLS>
 <IPLS role="janitor">John Smith</IPLS>
 <ETCO format="0">
   <event type="1" time="234" />
     <event type="3" time="4567" />
 <USLT language="eng" id="verse 1">
   yeah yeah yeah oh baby yeah yeah yeah
 <USLT language="eng" id="verse 2">
   oh oh oh baby baby baby
 <APIC mime="image/jpg"  type="3" id="entire band">000003243023532</APIC>
 <APIC mime="image/jpg"  type="6" id="paul">000003243023532</APIC>	
 <GEOB mime="application/octet" filename="" id="whatever">02305310</GEOB>
 <GEOB mime="virus/binary" filename="" id="die kitty">02305310</GEOB>
 <POSS format="1">343253</POSS>
 <USER language="eng">please steal me</USER>
 <PRIV id="huh">2342512370</PRIV>
 <PRIV id="huh2">34343434</PRIV>

General Comments

Anyone using the xml file should not fail if tags appear in it which have not been listed in this document. In situations where this does happen then these extra tags should just be ignored. Tags not considered in this version are:

   MLLT - MPEG audio lookup tables for seeking
   SYTC - Synchronized tempo codes (table of tempo changes in music and how)
   SYLT - Synchronized lyrics
   RVAD - Relative volume adjustment
   EQUA - Equalization
   RVRB - Reverb
   RBUF - Recommended buffer size
   AENC - Audio encryption
   LINK - Linked ID3v2 data
   OWNE - Date of purchase
   COMR - Commercial purchase offers
   ENCR - Encryption method registration
   GRID - Group identification registration

GEOB - General Binary Glob


   mime - mime type
   filename - associated filename
   id = text identifier
   Data is base64 encoded

APIC - Picture Data


   mime - mime type of picture
   type - code describing type of image (album from, album back, artist portrait etc.
                                         see ID3v2 tag description for list)
   id - text identifier
   Data is base64 encoded

ETCO - Event Code Field

The ETCO tag has a format property where the supported values are:

   0 - absolute time in MPEG frames
   1 - absolute time in milliseconds

The ETCO tag can have one or more event sub-tags. The type property for the event tag is the type of event we're interested in (see ID3v2 docs for list of codes). The time property is the time the event occurs in units indicated by the format property of the outer ETCO tag.

TCON - Genre Field

TCON has a complicated internal format which consists of a series of optional genre codes stored in parenthesis which are followed by subgenre clarification strings (though everything is optional) e.g.

   (24)Death Metal
   Die Kitty Die
   (24)Death Metal(12)Cuban

There are also two special 'codes' where 'RX' means remix and 'CR' means cover.

(24)(MX)DeathMetal (CR)Whatever

Due to genre being something we care about it is parsed as indicated in the example xml.

TMED - Media Type Field

The TMED field has a somewhat complicated internal format in that it can be just a string or it can be a media reference from a predefined list with a refinement e.g.

 From my album collection
 (TT/45)From my old 45 collection

This field is not currently as important to be parsed out as with the genre (TCON) field but is provided for a more complete set of information.

Non-MP3 Field Mapping

This section covers the mapping of metadata for files other than MP3 as is supported by the the SHOUTcast 2.0 tools.


If an ID3v2 tag is found then handling will follow the standard MP3 handling. If there is no tag then metadata guessing will be used as appropriately.


If there are any Vorbis comment are found in the FLAC file then the following mappings will be used to get an equivalent complement of metadata to match what is read from an ID3v2 tag:

 Vorbis Comment -> ID3v2 Entry
   TITLE               TIT2
   VERSION             TPE4
   ALBUM               TALB
   TRACK               TRCK
   ARTIST              TPE1
   PERFORMER           TPE2
   COPYRIGHT           TCOP
   LICENSE             TOWN
   GENRE               TCON
   DATE                TDRC
   ISRC                TSRC
   COMMENT             COMM
   COMPOSER            TCOM
   PUBLISHER           TPUB
   DISC                TPOS
   DISK                TPOS
   BAND                TPE2
   LYRICS              USLT
   CONDUCTOR           TPE3
   BPM                 TBPM
   RATING              POPM

Fields which are not in this list are then mapped to the custom text (TXXX) field with the key being the "description". Any picture metadata in the file will be mapped to the APIC field.


OGG files are handled in a similar manner to FLAC files though there are some differences with the them. As there is no picture metadata in OGG files the COVERARTMIME and COVERART fields will be mapped to the APIC field due to a number of programmes which generate and adding artwork to OGG files in this way.