The TV Application Layer (TAL) is an open source library for building applications for Connected TV devices.
TAL was developed internally within the BBC as a way of vastly simplifying TV application development whilst increasing the reach of BBC TV applications such as iPlayer. Today all of the BBC’s HTML-based TV applications are built using TAL.
There are a number of reasons we’ve decided to share TAL as an open source project:
There are hundreds of different devices in the marketplace and they all use slightly different technologies to achieve the same result. The purpose of TAL is to allow you to write an application once, and be confident that it can be deployed to all HTML-based TV devices.
iPlayer, BBC News, and BBC Sport are three high profile TV applications built on TAL. Click on the images for larger versions:
TAL is hosted on Github. This is the actual version of TAL we use within the BBC, not some limited, cut-down portion of the library. This is an actively developed project looked after by a team in Salford. We welcome any contributors. We’ve adopted the popular Fork and Pull Model – please fork our repo and send us a pull request when you are ready to contribute back.
Take a look here for more details on how to contribute.
All our documentation is hosted by GitHub on these pages. The main sections are as follows:
We also have a sample application that you can use as a guide to help you build your own applications.
Our experience of writing TV Applications has shown us that while most Connected TV devices contain a web browser built upon something fairly familiar like WebKit or Opera, there are still some pretty big variations in the way that devices do the following:
TAL works to abstract these things. The bulk of your development can be done on a desktop browser that is built on the same origins as the TV browsers. It does not mean there would not be things that work differently once you run your application on TV devices, but it does mean that you can focus on building the features you want in your app rather than worrying about TVs too much.
Our own experience has been that even when we build our TV applications on TAL, applications perform differently across devices. Some of the differences are due to the device specification, others due to the variances in the browser.
Running your application on a TV can be challenging and differs from manufacturer to manufacturer. The best way to test your applications on the big screen is to contact manufacturers directly and arrange to get access via a widget in their TV App store or through developer menus.