I’m Pete Lasko and I am a technical product manager in the BBC’s Future Media TV and Mobile Platforms department. Last September Roux Joubert blogged about some of the challenges we face in building BBC Connected TV applications and the actions we took. Today I would like to tell you how the BBC is making it easier to build connected TV applications and how we are sharing this information on open source to benefit the rest of the industry.



Building for Connected TV is complicated The TV Application Layer originated from our ambition to run BBC iPlayer, News and Sport applications for Connected TVs on as many different devices as possible. There are hundreds of different devices in the marketplace and they all use slightly different technology to achieve the same result. Having figured out how to build an application on a specific device we want to use this knowledge to build additional applications for that device. Our answer to this challenge is the TV Application Layer (TAL). By abstracting the differences between devices and creating a number of TV-specific graphical building blocks (like carousels, data grids and lists), we provide a platform upon which we can build our applications.

About the TV Application Layer The purpose of the TV Application Layer is to allow you to write an application once and for this to then work on all HTML based Connected TV Devices. Comprising of a number of JavaScript libraries, The TV Application Layer operates across a wide range of different Connected TVs, IPTVs, games consoles, set top boxes and Blu-ray devices in the market. The common feature of these devices is that they all get used via your TV, still the best place for consuming video content. As each new application faced a similar set of device specific challenges, such as media playback, animation or networking, we set about making the TV Application Layer a standalone product that could support our entire Connected TV product needs both now and in the future.

Because the abstraction code is modularised into the specific areas that vary between devices, we effectively have a selection of options that we can configure for each device. This allows us to add new devices to our applications simply by recognising the device’s browser and applying a specific configuration appropriate to that device, without modifying the application’s code. Therefore we can deploy our applications on devices that might have different key features such as video playback, animation, persistent storage and remote control key codes, by creating a new configuration file. The TV Application Layer also provides some TV-specific graphical widgets for use in new application development. For example: the menu carousel used in iPlayer. We find that the TV Application Layer allows us to concentrate on building the features our audience want rather than addressing device specific differences that we have already solved before.

Making the TV Application Layer Open Source We are pleased to announce that the BBC is sharing the TV Application Layer with the wider industry.. The code and documentation are available via the open source repository GitHub. This is not just a copy of our code. This is the live, latest code that we use to build and continually develop our Connected TV applications.