Ladies and gentlemen I give you BBC Programmes

Somewhat strangely, you might think, the BBC doesn’t publish persistent webpages for most its programmes. Or rather it didn’t, because today we’ve launched comprehensive programme support (in beta). So now if you go to you will now find an episode page for all our programmes – whether on radio or TV.

Book at Bedtime

Unlike the existing What’s On service, which publishes a page for every broadcast, with, we are publishing a page for every episode (with broadcast information), programme or series. In other words, rather than a the specific broadcast instance we are publishing a page for the cultural entity. A page for every episode rather than every individual broadcast is cool. Its cool because no matter how many times the programme is broadcast there remains just one page to represent that programme. This helps people find the programme because it helps maximize Google Juice – because all references link to the same URL. It also means that we can add more information to the same page over time and create context around that episode.

If instead of creating a page for each episode we created a page for every broadcast not only would we dilute the Google Juice we would also dilute the information about that programme. Users would be swamped with dozens of versions of broadly the same page, each with slightly different bits of information or different links. This makes it harder to find what you want and when you do find it the page is less valuable because it contains less information.

Publishing a page for every episode is all well and good, but its not the whole story, its also important to be able to create context around programme pages. What does this mean? Well, for starters we are categorizing programmes by genre and format and letting users browse by these categories, we are also grouping episodes into series, and programme. And over time we will add more information and additional links to supporting webpages.

We also want to help other people create context around our programmes so we have implemented a few features to support this too (although we aren’t including all these in this initial release). First up relevant pages are microformatted with hCalendar which makes it easier for the data on the webpages to be processed with software. And in the near future we’ll be publishing the data in different formats – RSS, Atom and HTML for starters, and iCal and JSON after that. And finally the URLs for all this will also be persistent – the resource will always be available and the URL to that resource will remain the same.

Providing persistent URLs is clearly a good thing – it means people can link to a page and know it will remain available and search engines work better – but building a system to deliver persistent URLs has some important implications. What have we chosen to do? Well here are some URLs:

And some future URLs:


The most obvious thing to note is that we haven’t included the programme title, broadcast date, Programme Brand (e.g. Heroes) nor channel (e.g. Radio 1 or BBC2) in the URL for our primary objects because all these things can change and its never a good idea to reflect your organisational structure in your URLs. For example, programmes are repeated on different channels – especially in the era of multi channel TV and P2PTV and programmes can start off on one channel before being ‘promoted’ to another (e.g. Little Britain).

So instead the individual objects (episodes, programmes and series) are identified using an eight digit, alpha numeric key. And this doesn’t ever need to change – not when we change the underlying technology, nor when we add more information, rebroadcast the programme, or decide to reorganise. However, the URLs for the aggregation pages (e.g. …/programmes/genre/music) are human readable and hackable, they support wombling.

UPDATE (2007.12.17)

Some more information on new features: tags and radio player, and iPlayer embedded video.

17 responses to “Ladies and gentlemen I give you BBC Programmes”

  1. Blimey. And on time, too?

    Congratulations to you and the team. I must holiday more often…

  2. Nice. Although how does this work alongside the existing ‘Programme Information Pages’ work that was done for the Radio 3 site?

    I found a duplicate, for instance:

    Same programme, but two URLs, and only one page has extended playlist info, plus a title…

    Still, removing the programme / channel ‘brand’ is definitely a good move, and was one of my criticisms of the the initial PIP project:

    Can you post some more information about how the data is managed and kept up to date internally? Can you cope with last minute schedule changes? How do you tell if two programmes are the same or not?

    Well done though – great work!


  3. […] Tom Scott has blogged about this rather more comprehensively than I ever will, but the “/programmes/” site, mostly the brain-child of my department, BBC Audio & Music Interactive, has gone live (in beta) at While the data’s not quite ready, it’s quite a nice start (and hellishly complicated behind the scenes). There’s been a ton of clever fixes to make this work, not least hosting this in a different place to the rest of the BBC’s website (not that you’d spot that), and I’m quite proud that my team delivered this on time. […]

  4. Ooh, I like it. It seems to have a bit of a nicer interface than the Programme Catalogue beta too; but it does mean that for some programmes there are now three information pages, with different unique identifiers.

    Taking Frankie’s Night Waves example, the episode of the 15th October can be found at:

    This is, I’m sure, something which will iron itself out in time!

  5. To give you some more feedback (there doesn’t seem to be a feedback mechanism on the site itself), the way that BBC One is split into lots of regional channels has some weird effects. Whilst it’s obviously useful and important where there are regional variations, when all the regions are broadcasting the same thing, you just get a long list of duplicates.

    eg :

    “All broadcasts:

    1. Newsround: 19/10/2007 BBC One Cambridgeshire: 17:25-17:35, Friday, 19 October 2007
    2. Newsround: 19/10/2007 BBC One Channel Islands: 17:25-17:35, Friday, 19 October 2007

    17. Newsround: 19/10/2007 BBC One West Midlands: 17:25-17:35, Friday, 19 October 2007
    18. Newsround: 19/10/2007 BBC One Yorkshire: 17:25-17:35, Friday, 19 October 2007”

    In terms of views, I’m definitely missing a ‘schedule’ view. A search function would be good too.

  6. A few points on some of the above (from another on the inside)…

    Frankie/Martin, yes we do have 3-4 other pages for some episodes which are a result of the previous, not wholly joined up, efforts to get the various bits of programme data out there. This is clearly not ideal but, with lessons learned, over time, we hope /programmes will be the logical place for this to be ironed out.

    Frankie, the regional broadcasts for BBC One have been a little tricky for us mostly because the simple relationships we’d expect in the data between these regions isn’t always there. this messiness manifests itself no more prominently than on one of my favourite url’s:

    oh, and, incidentally, the more permanent:

    …loads of data source issues there, beyond the teams immediate control, but all to be sorted and tidied up over time.

    Frankie, regarding the schedule views, in a way, the ‘films’ links above are pan-bbc schedules… but if it’s the channel/station schedules you’re after then, as Tom points out, watch this space, URL’s are on the way…

  7. Lovely stuff. It’s great to see solid, dependable addresses for programmes.

    As Frankie Roberto says above, there are some oddities when the same content goes out via several different routes. I’m sure the way things are displayed will improve with time, but the search results for a particular programme are quite odd. The links are brilliant, all pointing to the same place, but with many entries in the search results.

    e.g. mostly has two entries (linking to the same place) for each programme, one for FM and one for LW. It looks right on the 22nd October, where there’s one entry.

    All the best sorting out these quirks, I’m sure this will be a valuable resource for many of us for years to come.

  8. Yeah the data, as Phil points out on his blog, is a bit ropey in places – but this is something that should improve. As for the duplicate URLs that Martin and Frankie point out – this is a problem and certainly for Radio 3 we’ll be fixing that soonish.

    Despite the problems with the data I’m really proud to have helped bring this project to fruition (and yes James – on time); although all the really hard work was done by others. I think what’s great is that we’ve now got the data and the technology in place to allow us to build, what I hope will be, some really useful, engaging interactive products.

    Frankie – the data is entered as TV-Anytime and stored in a database known as PIPs (which is also used by iPlayer). We have a Ruby on Rails application to allow the data to be managed. On the front end we have our own Perl MVC framework that allows us to dynamically publish the pages.

  9. […] BBC Programme Pages October 22nd, 2007 An automatically generated web page for every BBC programme. Early days, but rather wonderful. Tom Scott explains the details. […]

  10. Ooh it’s so good to see this live! Quite mesmerising to click around, and fab for programme discovery. Well done.

  11. @Hilary and Dan, Thanks – its good to have it live – glad you like it.

  12. […] blog about ‘Perl on Rails‘ the MVC framework we’ve written to dynamically publish /programmes and /music (next years project). This isn’t quite as insane as it might appear. Remember that […]

  13. Time to plug my version – – which doesn’t use anything as sexy as Perl/Rails, but gets the job done.

  14. @Paul – nice. How are you going about getting and publishing the data?

  15. […] iPlayer, Perl on Rails, Programmes, Radio, Tags Following the launch of the BBC’s Programmes website in October we’ve just launched a few new features – […]

  16. […] I discussed previously the idea behind BBC Programmes is to ensure that every programme brand, series and episode […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: