Home Microcontent Design, Part 3: Mightyv, a BBC TV listings app

Microcontent Design, Part 3: Mightyv, a BBC TV listings app

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
Backstage blog
:

“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
programming…

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
schedule.”

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,
where:

Let’s look at the main XML files, as they relate to Mightyv.

ProgramInformationTable

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:

1                 
      <ProgramInformation
programId=’crid://bbc.co.uk/1736500958′>

2                 
        <BasicDescription>

3                 
          <Title><![CDATA[Go
Digital]]></Title>

4                 
          <Synopsis
length=’short’><![CDATA[An update on how technology is changing our lives,
featuring reports from around the world.]]></Synopsis>

5                 
          <Genre
href=’urn:tva:metadata:cs:ContentCS:2002:3.1.6′>

6                 
            <Name><![CDATA[Sciences]]></Name>

7                 
          </Genre>

8                 
          <Genre
href=’urn:tva:metadata:cs:ContentCS:2002:3.1.6.8′>

9                 
            <Name><![CDATA[Technology]]></Name>

10           
          </Genre>

11           
          <Genre
href=’urn:tva:metadata:cs:IntentionCS:2002:1.3′>

12           
            <Name><![CDATA[EDUCATION]]></Name>

13           
          </Genre>

14           
          <Genre
href=’urn:tva:metadata:cs:ContentCS:2002:3.1.1.5′>

15           
            <Name><![CDATA[Periodical/General]]></Name>

16           
          </Genre>

17           
          <Genre
href=’urn:tva:metadata:cs:FormatCS:2002:2.1′>

18           
            <Name><![CDATA[STRUCTURED]]></Name>

19           
          </Genre>

20           
          <Genre
href=’urn:tva:metadata:cs:IntentionCS:2002:1.2′>

21           
            <Name><![CDATA[INFORMATION]]></Name>

22           
          </Genre>

23           
          <RelatedMaterial>

24           
            <HowRelated
href=’urn:tva:metadata:cs:HowRelatedCS:2002:10′>

25           
              <Name>For
more information</Name>

26           
            </HowRelated>

27           
            <MediaLocator>

28           
              <mpeg7:MediaUri>http://news.bbc.co.uk/1/hi/technology/1478157.stm
</mpeg7:MediaUri>

29           
            </MediaLocator>

30           
          </RelatedMaterial>

31           
        </BasicDescription>

32           
        <AVAttributes>

33           
          <AudioAttributes>

34           
            <NumOfChannels>1</NumOfChannels>

35           
          </AudioAttributes>

36           
        </AVAttributes>

37           
        <MemberOf xsi:type=’MemberOfType’
crid=’crid://bbc.co.uk/__SERGoDigital’/>

38           
      </ProgramInformation>

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:

ProgramLocationTable

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.

39           
        <ScheduleEvent>

40           
          <Program
crid=’crid://bbc.co.uk/1736500958’/>

41           
          <ProgramURL>dvb://233a.4000.6780;e6e1

@2006-02-21T20:05:00Z/PT00H25M</ProgramURL>

42           
          <InstanceMetadataId>imi:bbc.co.uk/1736500961</InstanceMetadataId>

43           
          <PublishedStartTime>2006-02-21T20:05:00Z</PublishedStartTime>

44           
          <PublishedDuration>PT00H25M00S</PublishedDuration>

45           
        </ScheduleEvent>

Line 40 references the unique program id: ‘crid://bbc.co.uk/1736500958’. Then on line
43 is the information we’re after:

<PublishedStartTime>2006-02-21T20:05:00Z</PublishedStartTime>

Deciphered, the above piece of code means: the Go Digital program will screen on 21
February 2006 at 22:05.

ContentReferencingTable

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
collections.

In our Go Digital example above, here is an extract from the ContentReferencingTable,
20060221BBCWrld_cr:

46           
  <Result CRID=’crid://bbc.co.uk/1736500958′ status=’resolved’
complete=’true’ acquire=’any’>

47           
    <LocationsResult>

48           
      <Locator
instanceMetadataId=’imi:bbc.co.uk/1736500986′>dvb://233a.4000.6780;e6fa

@2006-02-21T10:05:00Z/PT00H25M</Locator>

49           
      <Locator
instanceMetadataId=’imi:bbc.co.uk/1736500958′>dvb://233a.4000.6780;e6de

@2006-02-21T15:05:00Z/PT00H25M</Locator>

50           
      <Locator
instanceMetadataId=’imi:bbc.co.uk/1736500961′>dvb://233a.4000.6780;e6e1

@2006-02-21T20:05:00Z/PT00H25M</Locator>

51           
      <Locator
instanceMetadataId=’imi:bbc.co.uk/1736501008′>dvb://233a.4000.6780;e710

@2006-02-22T02:05:00Z/PT00H25M</Locator>

52           
      <Locator
instanceMetadataId=’imi:bbc.co.uk/1736507203′>dvb://233a.4000.6780;ff43

@2006-02-28T10:05:00Z/PT00H25M</Locator>

53           
      <Locator
instanceMetadataId=’imi:bbc.co.uk/1736507230′>dvb://233a.4000.6780;ff5e

@2006-02-28T15:05:00Z/PT00H25M</Locator>

54           
      <Locator
instanceMetadataId=’imi:bbc.co.uk/1736507221′>dvb://233a.4000.6780;ff55

@2006-02-28T20:05:00Z/PT00H25M</Locator>

55           
      <Locator
instanceMetadataId=’imi:bbc.co.uk/1736507346′>dvb://233a.4000.6780;ffd2

@2006-03-01T02:05:00Z/PT00H25M</Locator>

56           
    </LocationsResult>

57           
  </Result>

Line 50 has details of the episode broadcast on 21 February 2006 at 22:05:

<Locator
instanceMetadataId=’imi:bbc.co.uk/1736500961′>dvb://233a.4000.6780;e6e1

@2006-02-21T20:05:00Z/PT00H25M</Locator>

GroupInformationTable

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
groups_gr:

58           
      <GroupInformation
groupId=’crid://bbc.co.uk/__SERGoDigital’>

59           
        <GroupType
xsi:type=’ProgramGroupTypeType’ value=’series’/>

60           
        <BasicDescription>

61           
          <Title><![CDATA[Go
Digital]]></Title>

62           
          <Synopsis><![CDATA[A
series group for Go Digital]]></Synopsis>

63           
        </BasicDescription>

64           
      </GroupInformation>

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.

Mightyv display

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.

Mightyv functionality

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.

About ReadWrite’s Editorial Process

The ReadWrite Editorial policy involves closely monitoring the tech industry for major developments, new product launches, AI breakthroughs, video game releases and other newsworthy events. Editors assign relevant stories to staff writers or freelance contributors with expertise in each particular topic area. Before publication, articles go through a rigorous round of editing for accuracy, clarity, and to ensure adherence to ReadWrite's style guidelines.

Get the biggest tech headlines of the day delivered to your inbox

    By signing up, you agree to our Terms and Privacy Policy. Unsubscribe anytime.

    Tech News

    Explore the latest in tech with our Tech News. We cut through the noise for concise, relevant updates, keeping you informed about the rapidly evolving tech landscape with curated content that separates signal from noise.

    In-Depth Tech Stories

    Explore tech impact in In-Depth Stories. Narrative data journalism offers comprehensive analyses, revealing stories behind data. Understand industry trends for a deeper perspective on tech's intricate relationships with society.

    Expert Reviews

    Empower decisions with Expert Reviews, merging industry expertise and insightful analysis. Delve into tech intricacies, get the best deals, and stay ahead with our trustworthy guide to navigating the ever-changing tech market.