In Part 1 of this series
I introduced the concept of Microcontent Design, followed by a case study of BBC’s
developer network backstage.bbc.co.uk in Part 2. Now let’s
look at what’s being built by external parties, using the BBC Backstage
ecosystem. Specifically this post is an in-depth and developer-focused look into a
application called Mightyv, a TV listings app. My
aim is to discover what makes a third party mashup of BBC content, like Mightyv,
possible. Both from a BBC design and external developer points-of-view, but perhaps most
importantly how this type of mashup application benefits users.
BBC TV Listings competition
Backstage held a TV
Listings competition in July 2005. The idea was for contestants to rethink how to
present BBC TV and Radio listings, using the TV-Anytime data format for 7 day
listing data and other relevant RSS feeds. As described on the
“The way people watch television – and choose what they are going to watch – is
changing. More channels, new delivery platforms, new ways to consume television
For the first backstage.bbc.co.uk competition, we are offering you the opportunity to
innovate and build prototypes that demonstrate new ways of exploring the BBC TV
In October 2005 the winners were
announced. An application called mightyv,
developed by Leon Brocard and Leo Lapworth, was the ultimate winner. Mightyv is a
personalized tv scheduling service, which also enables users to track their
friends schedules. It features extensive search, which can be subscribed to with RSS
feeds. It also has many options for viewing tv and radio listings, customizing channel
lists, tags, ratings, recommendations. The BBC calls this “findability”.
Mightyv isn’t restricted to BBC data – it also uses data from an independent website
called bleb.org, for non-BBC channel data. The
developers note that the bleb.org data isn’t
“as rich in meta data (genre/group/series) as the BBC so you will see a marked difference
in the search results because of this.” So obviously the more meta data you can provide
in your RSS feeds and APIs, the better it is for developers and users!
Mightyv: step by step
What makes much of mightyv possible is the metadata rich ‘7 Day Listing Data’ RSS
feed. It’s a daily snapshot of BBC TV and radio 7-day listing information and is in the
TV-Anytime data format (specifications developed by the TV-Anytime Forum, an industry body).
As it states on the main page,
the data is originally sourced from the BBC’s scheduling system but undergoes some
manipulations in order to provide TV-Anytime features. The BBC eventually provides it to
developers in XML format.
The following naming structure is used for the XML files: YYYYMMDDCCCC_TT.xml,
Let’s look at the main XML files, as they relate to Mightyv.
The program I’m going to use for my example is a BBC World Service radio program
called ‘Go Digital’. It sounds like something readers of Read/WriteWeb would be interested in! For this
example, I’m going to use the episode of Go Digital that was broadcast on 21 February
2006 at 20:05.
We find out more about Go Digital in an XML file labeled 20060221BBCWrld_pi. The ‘pi’
stands for ‘ProgramInformationTable’ and it contains the metadata of the program – title, synopsis, whether it’s subtitled, etc:
length=’short’><![CDATA[An update on how technology is changing our lives,
featuring reports from around the world.]]></Synopsis>
The key piece of data that we’re interested in for now is the unique program ID on
line 1: ‘crid://bbc.co.uk/1736500958’ (note: the BBC design policy is to give each piece
of content a unique identifier). Here’s how it’s described in the BBC help documentation:
“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.”
Returning to the ProgramInformationTable. The program title and synopsis are listed on
lines 3-4. Genre data is listed on lines 5-22, followed by other metadata including the
webpage for the ‘Go Digital’ program – listed on line 28 under the ‘MediaURI’ tag as http://news.bbc.co.uk/1/hi/technology/1478157.stm.
That webpage has links to the radio show in MP3 format and other relevant information. Screenshot:
But we’re still looking for one vital piece of data – the time and date of the
program. Nowhere in the ‘ProgramInformationTable’ XML file is that data to be found. It
is in fact in another XML file, named 20060221BBCWrld_pl, which is the
ProgramLocationTable. This file describes where and when the content can be found, which
of course is the data that drives tv listings.
Line 40 references the unique program id: ‘crid://bbc.co.uk/1736500958’. Then on line
43 is the information we’re after:
Deciphered, the above piece of code means: the Go Digital program will screen on 21
February 2006 at 22:05.
The ContentReferencingTable is a little more complicated. It provides the precise
location(s) where an item of content can be found, which in general means it lists
instances of a program. It can also be used to group programs, for example into series or
In our Go Digital example above, here is an extract from the ContentReferencingTable,
<Result CRID=’crid://bbc.co.uk/1736500958′ status=’resolved’
Line 50 has details of the episode broadcast on 21 February 2006 at 22:05:
The final table in our example contains descriptions of groups. Like programs, groups
are also identified by a CRID (Content Reference IDentifier). Indeed the structure and
content of the GroupInformationTable is very similar to the ProgramInformationTable, in
that it provides the metadata for the groups. Here’s an example from a file called
series group for Go Digital]]></Synopsis>
This extract describes a group containing the Go Digital radio program.
There are other XML files provided by the BBC, but our purpose here is just to gain an
understanding of the main content components of the Mightyv mashup.
The end result for the user is that ‘Go Digital’ displays on the mightyv tv listings
webpage, scheduled for 22:05 on 21 February 2006. Below is a screenshot, showing also the
Go Digital Synopsis metadata (from ProgramInformationTable) in a pop-up:
(nb: the numbers down the side represent hours, not date)
Caveats and Issues
It’s important to note that the Mightyv application is in one sense only as good as
the data it gets, which is mainly from the BBC. Backstage is careful to note some caveats
and issues with the TV-Anytime data they provide. For example they state:
“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.”
Once again this is an illustration of who holds the balance of power in
a mashup – it’s the data owner.
So the TV-Anytime data from the BBC allows Mightyv to provide a fairly
straight-forward tv listings service, without having to do too much tinkering under the
hood. Of course, the main value in a mashup is in developing something unique and
compelling on top of the basic data. So let’s take a look and see why the BBC chose
Mightyv as the winner of its backstage developer competition.
If the user clicks on the blue underlined ‘Go Digital’ link on the tv listings page,
they are sent to another mightyv page which has further options (if logged in):
Options include rating the program, tagging it, adding it to your schedule. So there
are some neat ‘web 2.0’ features there. Admittedly it has a ways to go to be truly
compelling to users, but you can see the potential in Mightyv. Especially when you
consider that personalizing your TV-watching schedule is becoming increasingly important,
as television integrates with the Web.