From RadioConnected
Jump to: navigation, search

Standard: http://microformats.org/wiki/haudio

There is currently no widely accepted standard within the radio industry to disseminate extended metadata for on-demand digital audio content specifically tracklists to describe individual songs on music radio or news items or feature elements within speech radio.

hAudio is a microformat used for embedding audio data and metadata within an XHTML or HTML document which meets these requirements. The resulting markup can then be embedded in an Atom or RSS feed.

It has the following benefits:

  • Open source and free to use
  • hAudio can quickly be incorporated into existing RSS/Atom feed documents and X/HTML documents by means of the standard and robust XML syntax and format
  • Non-disruptive: unless hAudio metadata parsing is enabled within an aggregation scenario, embedded hAudio metadata is silently ignored to allow parsing of standard metadata
  • XHTML marked up with hAudio can be displayed to end-users in a browser if hAudio parsing is not available or necessary
  • hAudio can be easily ingested by aggregation tools: we found that the following combination of open-source programming tools can be relatively easily configured to parse Atom XML data containing hAudio metadata
    • Python - interpreted, high-level programming language
    • FeedParser - universal feed parser for Python
    • BeautifulSoup - HTML/XML parser for Python

hAudio extended metadata might be exploited for example by enabling track purchasing through embedded links within a playlist, or by searching for specific entry points in the audio ie. a particular song or feature



A list of playable media files. Atom is used to represent the playlists however there are many other formats availabe. e.g. RSS, Podcast, M3U, SPDF etc.


A list of tracks within a playable media file. This is of particular relevance to radio stations audio is often distributed as a single file containing multiple tracks, speech and advertisements etc.

Tracklists are not always prioritised yet are essential to search and discovery. Our solution is to settle on a recognised microformat for tracklists.

The microformat hAudio has been selected for tracklists as it is both human and machine readable.

This means that a single radio episode can be represented as XHTML marked up with hAudio. It can be displayed directly to end-users via a browser using CSS formatting. hAudio can be parsed into a data structure if more control over the display is required.

XHTML is used rather than HTML to provide consistency for the machine-readable requirement.

Mapping totallyradio data to hAudio

We have used a simple HTML markup (which may be improved in the live feed) and the following hAudio elements:

The episode title
The episode summary
A track within the episode (i.e., part of the audio file)
The title of the track
The artist/performer of the track
The record label

Other fields we have considered are:

  • A time field to show the time the track begins. We don't have this data in totallyradio at present. Also there is as yet no standard in hAudio for this (see http://microformats.org/wiki/haudio-issues).
  • A "buy this track" link using the hAudio Purchase URI markup.

Example hAudio markup

    <content type="xhtml">
        <div xmlns="http://www.w3.org/1999/xhtml" class="haudio">
            <h3 class="fn">the daily show // 03 Sep 2012</h3>
            <p class="description">Two from underground dance label L.I.E.S on the daily show plus more new stuff from The Bug, Melody's Echo Chamber, Cat Power and Diva. Oddities, curios and classics from Prince Arthur & his Knights of the Round Table, Rev Gary Davis, The Gadgets and Harvey Mandel.</p>
            <li class="item">
            Title: <span class="fn">Journey 1</span><br/>
            Artist: <span class="contributor"><span class="vcard"><span class="fn org">unknown</span></span></span><br/>
            Label: <span class="publisher"><span class="vcard"><span class="fn org">L.I.E.S</span></span></span><br/>
            <li class="item">
            Title: <span class="fn">Crystallized</span><br/>
            Artist: <span class="contributor"><span class="vcard"><span class="fn org">Melody's Echo Chamber</span></span></span><br/>
            Label: <span class="publisher"><span class="vcard"><span class="fn org">Fat Possum</span></span></span><br/>
            <li class="item">
            Title: <span class="fn">Can't Take This No More</span><br/>
            Artist: <span class="contributor"><span class="vcard"><span class="fn org">The Bug ft Daddy Freddy</span></span></span><br/>
            Label: <span class="publisher"><span class="vcard"><span class="fn org">Acid Ragga</span></span></span><br/>