By Anthony Rose July 15, 2014

Official Beamly Editor


Get the Beamly OnDemand Chrome browser extension in the Chrome Web Store

But what about when you’re watching the show catch-up the next day – right now that’s an empty experience. Sure, thanks to iPlayer you can now watch when and where you want, but you’re watching alone. Wouldn’t it be great if you could get the social experience even when you’re watching on demand?

That’s something I’ve been wanting  to do for ages, but it’s never quite made it to the top of our to-do list at Beamly.

On the other hand, this could be the perfect project for a hackathon…

We’re occasional sponsors of hackathons – it’s a great way to engage with the developer community and make our Developer Platform and APIs available to power all those project we thought of but never got round to, or those crazy / wonderful ideas we would never have thought of.

And so at the London Hackathon DevLab LIVE  in London back in May we wanted to pitch the concept of a browser bookmarklet that, when installed by the user, would inject our TV Rooms, Replay Tweets and other synched show experiences into TV catchup web sites, bring social TV experiences to you even when watching on demand.

So I was delighted when software developer Guy Nesher and product manager Dan Wong came up with exactly that idea at the hackathon. But they came up with something way better than I had dreamed of, a wonderful Chrome extension that, once installed, seamlessly adds an extra widget to the iPlayer, ITV Player and 4OD sites for shows where we have Beamly synched experiences available.

A while back I wrote a post Hackathons: Proof That Ideas Are Cheap and Implementation Is Expensive – and this hackathon reaffirmed that it’s amazing how close to what looks like a working proposition you can get to in one day, and just how much remains to be done to turn it into a working, tested, releasable product.

I have to say that working with Guy has been brilliant – over the past weeks we’ve had Skype calls regularly at midnight to figure out the MVP, shape the proposition to work within the confines of 3rd party sites, get the wording and UX on brand for Beamly, and – most importantly – to solve the ID matching issues.

For those interested in the technical details, program ID matching is one of the annoyingly unsolved problems of the media world. Here’s the issue:

The BBC use RedBee as their TV schedule / program metadata provider, and RedBee or the BBC assign their choice of ID number to each show. For example, the episode of EastEnders that aired on July 14 has an Episode ID of b04b2br1

On the other hand, at Beamly we get our TV schedule listings from Press Association, amongst other providers, and they assign a different ID to each show. We then create a Beamly ID for the show – in the case of that EastEnders episode the Beamly ID is 1426862

At least with BBC iPlayer you get nice consistent IDs for each show, with ITV Player all you have to work on is a URL like this where you need to work backwards to match the program name and episode information, where available, to a date/time when the show aired on TV, and then cross-correlate that back to the same date/time/channel in Beamly, which allows you to get back to the Beamly ID, after which it’s plain sailing, you can call the Beamly APIs to get chat, tweets, votes and polls, cast and crew, etc., for that show.

So the problem that Guy and I faced on our midnight calls was how to reliably map those 3rd-party broadcaster catchup IDs back to Beamly ID. We initially used Beamly’s search function to lookup the show in Beamly and get back all the episodes. But our search system wasn’t built for that, and the lookups weren’t reliable enough to go ahead and release a product that depended on reliably resolving to the correct episode.

Coincidentally, and fortuitously, the delightful team at London-based on-demand discovery specialists TankTop TV just happened to ping us to tell us about their APIs and metadata matching services. Bingo. And so in an amazingly fast 3 days TankTop built a service that ingests the entire Beamly TV schedule, matches the shows and their Beamly IDs to the IDs of iPlayer, ITV Player and 4OD shows that they’ve already catalogued, and provides us a TV Catchup to Beamly ID resolution service.

Even better, TankTop agreed to make this Id matching service publicly available and free for non-commercial use – see – which means that if anyone out there wants to build their own projects around broadcaster catchup content and Beamly show enhancements, well, that hard ID matching work is all taken care of for you.

With the ID matching sorted, we could get back to the overall consumer proposition. Which, being a hackathon project, should more accurately read “Delivering the most fun and disruption for something made by two developers in their spare time”.

The initial release proposition that we settled on was to display the tweets that were made during the first live airing of the TV show, synched to the same moment of the show when you’re watching catchup up to 7 days later. What that means is that if you were watching a quiz show and someone tweets the answer right after the question was aired on TV, then when you watch the show on iPlayer two days later, we should display the tweet at the exact same moment in the show. That feature – we call it Replay Tweets – is a feature that’s been available in Beamly for some time now, we use it principally for US and Australia west coast second screen TV viewing, where only Beamly lets you watch TV on the US and AU west coast without Twitter spoilers, you get the original east coast airing and the associated tweet stream from 3 hours earlier beautifully replayed in synch. So that’s what we planned to do for catch-up shows.

One problem we knew we’d run into was knowing the position into the video that you’re watching on demand. Back when I ran BBC iPlayer we added a feature where the Flash player would output the video time code to the surrounding web page so you could share a link to a moment in the show. Our plan was to use that so that, at least for iPlayer the tweet stream could be perfectly synchronised to the moment in the show you’re watching. But unfortunately with the recent iPlayer site redesign the BBC seem to have removed this feature – some more investigation is needed – and so for now we simply start the tweet stream playing when you load the web page, on the assumption that you’ll hit the video Play button a few moments later.

The next issue we ran into was that on TV, the advertised start time of the show is usually not when the show starts, but when the ads and promos for other shows start. At that means the first minute or two of tweets are not about the show, they’re usually tweets from people complaining about why the broadcaster doesn’t start the show at the advertised time. Actually those tweets are often some of the most provocative and the most fun – which aligns somewhat with our goals – and so we kindof solved that one by starting the clock, so to speak, two minutes into the show, and displaying the first 2 minutes worth of tweets in one hit when the show starts.

Finally, we added a timeline scrubber so you can drag to the tweets made at any moment in the show – which is great as it lets you scrub to the interesting parts of the show, or simply have some fun when the show gets a bit boring.


Get the Beamly OnDemand Chrome browser extension in the Chrome Web Store

Oh, and we’ve open-sourced the whole project:

We’d love your feedback, ideas and extensions: or tweet me @anthonyrose


Beamly OnDemand is not associated with or endorsed by BBC iPlayer, ITV Player or 4OD