we write about the things we build and the things we consume
Oliver Hall

l is for locations

Amongst the many types of resource hidden away in the bowels of Atlas lie locations. They’re on almost every piece of content, and are some of the most useful information in Atlas. So what are they, and why are they so important?

location, location, location

Content is the beating heart of Atlas. It’s your TV, your films, radio, and much more besides. The content itself carries its basic descriptive information, such as titles and descriptions and so forth. However, we have to then model the two separate ways in which content can be available: Broadcasts, and Locations. Fortunately, Broadcasts were already covered by the ever-capable Fred, which leaves Locations. These encapsulate all the information about a piece of content being available somewhere, be that as a program watchable through iPlayer, or a buy link on Amazon, or any other similar method of obtaining the content.

(re)modelling

One of the trickiest aspects of representing locations is choosing an appropriate model. The sheer quantity of data necessitates some complexity. To start with, you’ve got basic information, such as duration, and details of the quality (bit rate, how many audio channels there are). Included in this is information about whether the content is audio described, signed, and what language it’s in. Then, you move on to information about where it’s available, when (is it permanently available, or within a window), and how much it will cost to access. Some content is only available in certain countries, on certain platforms, whilst others are less restricted. Finally, you may well need some links, whether links to a site where the content is available, or deep links to allow direct access to the content in question.

All of this complexity lead us towards the model we have currently in Atlas, which perhaps veers towards the over-complex in order to model all of the details of locational information. Directly attached to content, we have Versions, which hold that basic information like duration, restrictions, and the like. Each Version can have a set of Broadcasts and a set of Encodings. The latter represents a single (you guessed it) encoding of some video content, for example, with information such as bit rate, aspect ratio and frame rates. Encodings can then have Locations, each of which represent a single availability for the piece of content, e.g. this episode of EastEnders is available on iPlayer from tomorrow through to the 6th January. Locations then have a Policy, which holds the information about availabilities, platforms, and which countries the content is available in.

This model certainly encapsulates almost all of the intricacies of location data, but having four tiers of information can lead to frustration when manipulating the data. As a user of the API, much of this complexity will be hidden from you, since we flatten some of these structures (what we refer to as the ‘simple’ model, versus the ‘complex’ model used internally in Atlas—more on that in another post), and we’ve come to realise that the complexity isn’t entirely necessary. As a result, in the upcoming Deer release of Atlas, we will be simplifying this model considerably, to improve usability both for developers working on Atlas itself, and those working on systems integrating with Atlas.

with great power comes great responsibility

This location information is incredibly useful if you’re developing a service around TV, and wish to allow your users access to on demand content. The trick, as with all such things, is to make sure you offer access in the right way. This is where deep-linking comes in. As Tom mentioned recently in his discussion of the new BT TV Everywhere platform, that location data is only useful when used correctly. That means offering the correct deep links to content depending on platform—this ensures that users get the best experience regardless of where they’re watching. If they watch on a computer, then the link might open up in a branded player, whereas if they watch on iPad, the site can grab an appropriate location from the Atlas data and provide a deep link through to, say, the iPlayer app, allowing a smooth viewing experience.

Next up in the A-Z series we’ll be on to the excitement of the letter m, standing for Model. I’ll be talking about the Atlas model, and how it’s evolved over the years.

blog comments powered by Disqus
sign up to #metabeers
slideshow