TV-Anytime Data

This page describes the TV-Anytime data that is currently being made available on backstage.bbc.co.uk. This data is provided as an experimental service for an initial period of three months and no guarantee can be provided for the accuracy of this data. The data is originally sourced from the BBC's scheduling system but undergoes some manipulations in order to provide TV-Anytime features. The availability, content, organisation and features of the data may change at any time.

Please note that this data is provided strictly for non-commercial purposes. Please see the backstage.bbc.co.uk terms of use for more details.

TV-Anytime

TV-Anytime refers to the specifications developed by the TV-Anytime Forum. These are open standards for the rich description of Radio, Television and other types of media. The metadata specification includes a comprehensive genre scheme, methods of linking and grouping programmes, listing credits and lots of other data fields.

More information about TV-Anytime can be found at http://www.tv-anytime.org. A detailed description of the content and structure of these files can be found by downloading the TV-Anytime specifications from ETSI (specification TS102822). The specifications are free to download although registration is required. The files below are compliant with version 1.2.1 of the Metadata specification - ETSI TS 102 822-3-1 V1.2.1 (2004-09).

Some other sources of information

Availability

A compressed tar file is being made available that contains information on today and the next 7 days for all BBC Radio & Television services. The compressed tar file expands into a directory named for the date of creation (YYYYMMDD) and a set of individual XML files. The data can be downloaded from http://backstage.bbc.co.uk/feeds/tvradio/.

Initially a set of files will be created once a day. In the future, more frequent updates may be made to reflect changes that occur in the schedules during the day.

What do the files contain?

Each file contains a particular TV-Anytime table that describes the various aspects of the content.

Each programme is allocated a CRID (Content Reference IDentifier), that represents unique programme content (repeated material would generally have the same CRID). All the tables are linked together using the CRIDs. At the moment the CRIDs are not guaranteed to be unique for all time.

A ProgramInformationTable contains the metadata of the programme being described. Examples would be title, synopsis, or whether it's subtitled.

A ProgramLocationTable provides the promotional information to describe where and when the content can be found. The obvious use for these files is in the creation of a traditional channel/time Electronic Programme Guide (EPG).

A ContentReferencingTable provides the precise location(s) where an item of content can be found. In the general case a CRID resolves to one or more CRIDs or Locators. In theory other locators such as streams or file locations could be provided in this table, but this isn't covered in the current data sets.

The ContentReferencingTable can also be used to describe the acquistion of the members of a TV-Anytime group. TV-Anytime allows programmes to be placed into multiple arbitrary groups (series, collections, etc) - these groups can contain CRIDs pointing to programmes or they can also contain other groups.

A GroupInformationTable contains descriptions of groups, that also are identified by a CRID. This is very similar to the ProgramInformationTable and provides the metadata for the groups. The structure of these two tables is very similar.

The TV-Anytime specifications allow for several other tables, but these are not generated at this time for the experimental data sets.

The Files

This is a description of the files provided and the file naming convention:

ServiceInformation.xml The TV-Anytime Service Information for the services currently provided: Channels, their description and identifiers.
groups_cr.xml The Group Content Referencing Table for the TV-Anytime group structure provided.
groups_gr.xml The Group Information Table (metadata) for the TV-Anytime group structure provided. The group structure is intended to show some of the features of TV-Anytime and is not comprehensive.

All other files are provided on a day/channel/type basis and are described using the following naming structure: YYYYMMDDCCCC_TT.xml, where:

YYYY - Year
MM - Month
DD - Day
CCCC - Channel (variable length)
TT - Table Type

The Table Type can be determined using the following extensions:

pi - ProgramInformationTable
pl - ProgramLocationTable
cr - ContentReferencingTable

The channels are described using the following extensions:

Extension Channel
BBCOne BBC One (London)
BBCTwo BBC Two
BBCNewsTF BBC News 24
BBCThree BBC Three
BBCFour BBC Four
BBCCBBC CBBC
BBCCBeebies CBeebies
BBCParl BBC Parliament
BBCWrld BBC World Service
BBCROne BBC Radio 1
OneXtra BBC Radio 1 Extra
BBCR2 BBC Radio 2
BBCRThree BBC Radio 3
BBCRFour BBC Radio 4 (FM Service)
BBCRFiveL BBC Radio 5 Live
BBCRFiveX BBC Five Live Sports Extra
BBCSixMu BBC 6 Music
BBCSeven BBC7

Caveats

This data is generated for experimental purposes only. There are some known issues with repeated programmes occasionally not being allocated the same CRIDs - these issues are being looked at and improved. Accuracy is striven for, but not currently guaranteed! Any feedback on any aspects of this data would be most appreciated.

Outstanding issues and problems

TV-Anytime Java API

A Java library for reading and creating a subset of the TV-Anytime specifications is described on BBC Opensource here and available from Sourceforge here. The zip file contains a useful paper detailing the API which gives a good idea of what's in TV-Anytime, also available from here.



Last Modified: 2nd September 2005

Contact: backstage (at) bbc.co.uk