Atlas ingests data from 15+ sources, indexes them, matches equivalent items, then provides simple RESTful APIs for Search, Content descriptions and channel Schedules. Data can also be provided in a range of common feed formats.
The Atlas API model has two key concepts: Containers and Items.
Videos are often part of a set, for example "all episodes of Eastenders". Containers represent a collection of items within the Atlas data model.
Where possible we return matching Items within their containers. Some items do not have containers such as films, specials and user generated clips.
Below is an example of a container, in this case Merlin (a popular BBC 1 programme):
content: [
{ episode 1 json },
{ episode 2 json }
],
title: "Merlin",
description: "Fantasy drama based...",
same_as: [
"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewTVShow?id=323369381&uo=4",
"http://www.hulu.com/merlin",
],
media_type: "video",
aliases: [
"http://en.wikipedia.org/wiki/Merlin_(BBC)",
],
uri: "http://www.bbc.co.uk/programmes/b00mjlxv",
curie: "bbc:b00mjlxv"
Items represent individual pieces of content, including all the standard pieces of metadata that you’d expect. Here’s an annotated overview of the JSON returned by a request for an episode of Merlin:
Use these attributes to identify the content, the URI is our best guess at the canonical identifier of the content, this is the only value that should be persisted as all others are liable to change.
uri: "http://www.bbc.co.uk/programmes/b00wlncb",
aliases: [
"http://bbc.co.uk/i/wlncb/"
"http://www.bbc.co.uk/iplayer/episode/b00wlncb"
],
curie: "bbc:b00wlncb"
These attributes describe the item.
description: "Queen Morgana begins a reign of terrible evil over the innocent...",
title: "The Coming of Arthur - Part 2",
publisher: {
key: "bbc.co.uk",
name: "BBC",
country: "GB"
},
image: "http://www.bbc.co.uk/iplayer/images/episode/b00wlncb_640_360.jpg",
thumbnail: "http://www.bbc.co.uk/iplayer/images/episode/b00wlncb_150_84.jpg",
genres:[
"http://ref.atlas.metabroadcast.com/genres/atlas/drama",
"http://www.bbc.co.uk/programmes/genres/drama/scifiandfantasy"
]
This Item is also an Episode, which means it is part of a Brand. These attributes outlines this Episode’s position within its Brand. If the Item is not an Episode these attributes will not be present.
episode_number: 13,
series_number: 3,
brand_summary: {
title: "Merlin"
description: "Fantasy drama based on the legend of King Arthur and Merlin"
uri: "http://www.bbc.co.uk/programmes/b00mjlxv"
curie: "bbc:b00mjlxv"
}
Each Item contains the various different ways you can get your metaphorical hands on the media. These are called Locations and provide all the information about how to access the content, who can access it, where it is, and so on. This is an example Location (the full schema is quite large, but you get the idea):
{
data_container_format: "application/x-shockwave-flash",
video_coding: "video/H264",
availability_start: "05-Dec-2010 02:39:02",
availability_end: "11-Dec-2010 20:24:00",
available_countries: [
"GB"
],
revenue_contract: "free_to_view",
transport_type: "link",
uri: "http://www.bbc.co.uk/iplayer/episode/b00wlncb",
available: false,
duration: 2700,
}
This is an attempt to fully document all the functions, objects and attributes of the Atlas API.
| Name | Description | Usage |
|---|---|---|
limit (required) |
The number of items to return (max 50) | Integer |
publisher |
The publisher of the content | String from a list of available publishers |
q |
The title of a Brand, Item (if a special) or a person | String |
| Name | Description | Usage |
|---|---|---|
channel |
The channel of the content | String from a list of available channels |
from |
The beginning of a schedule period | Timestamp (seconds since 1/1/1970) or as a short hand now.minus.24h (based on ISO8601 Durations) |
to |
The end of a schedule period | Timestamp (seconds since 1/1/1970) or as a short hand now.minus.24h (based on ISO8601 Durations) |
| Name | Description | Usage |
|---|---|---|
uri |
The URI of a specific piece of content | The URI of a piece of content |
Atlas works with data from the following sources:
| Source | Access | Status | Type |
|---|---|---|---|
| Hulu | Public | Free on-demand shows | |
| iTunes | Public | Pay on-demand shows | |
| TV Blob | Public | EPG |
| Source | Access | Status | Type |
|---|---|---|---|
| BBC | Public | Free on-demand shows, EPG, Clips | |
| Channel 4 | Restricted | Free on-demand shows, EPG, Clips | |
| Five | Restricted | Free on-demand shows | |
| ITV | Public | Free on-demand shows | |
| MSN Video | Public | free on-demand shows | |
| Press Association | Restricted | EPG |
| Source | Access | Status | Type |
|---|---|---|---|
| archive.org | Public | Clips | |
| blip.tv | Public | Clips | |
| Daily Motion | Public | Clips | |
| Podcasts | Public | Clips | |
| TED.com | Public | Clips | |
| Vimeo | Public | Clips | |
| YouTube | Public | Clips |
Please contact MetaBroadcast if you are interested in using restricted sources.
In addition to the RESTful API, Atlas also provides data in a variety of feed formats
| Format | Base Type | Status | Description |
|---|---|---|---|
| BBC Interlinking | MRSS | Data to feed broadcast data into BBC iPlayer | |
| Google Video Sitemaps | MRSS | Data to feed Google Video Search | |
| UK Radioplayer | DAB-EPG | Data to feed UK Radio Player Search | |
| Xbox LIVE | Lakeview | Data to feed Xbox LIVE TV Search |
Contact MetaBroadcast for help producing data in these formats
Atlas is an open-source project (it's all licensed under Apache 2.0) and we'd love for you to get involved. Below are all the resources that will help you join in. Participation comes in many forms: