Skip to main content

Metadata

Asset metadata contains all of the information about the movies, series, episodes, channels and broadcasts in your service.

Properties

This table outlines which properties are available on all types of media metadata.

PropertyTypeUsage
idstringThis field is auto generated when an asset is created.
external_idstringThis field can reference the ID of the same asset in an external system (usually an OVP). It’s usually used internally for deeper integration with said external system.
typestringThe type of the asset. Can be: movie,series,episode,channel,broadcast
labelstringThe name or title of the asset.
descriptionstringThe description of the asset.
short_descriptionstringA short form description of the asset.
imagesobjectAn object containing the various image formats.
images.stillarrayAn array containing a still image (16:9) in various sizes.
images.posterarrayAn array containing a poster image (2:3) in various sizes.
images.backgroundarrayAn array containing a background image (16:9) in various sizes.
genresarrayAn array containing genre reference objects
crewarrayAn array containing person reference objects
age_classification.typesarrayAn array containing the different classification types for this asset
geoblockobjectAn object containing geoblock values. Either the allow or deny property may be filled, but not both at the same time
geoblock.allowarrayAn array of ISO 3166-1 alpha-2 values that are allowed for this asset
geoblock.denyarrayAn array of ISO 3166-1 alpha-2 values that deny this asset
durationintThe duration of the asset in seconds
release_datestringThe date on which the asset had it’s release (for a movie it’s premiere date for example). Should follow YYYY-MM-DD format
ratingintField denoting how the asset is rated, should be between 0-100 (percentage).

Referenced objects

Asset/media metadata uses references in some instances and thus does not rely on just a flat list of data.

Images

When images are referenced in backstage they are usually provided as an array of multiple sizes (so the client apps can choose the most appropriate one for the device resolution). They are structured as follows:

{
"url": "https://cdn.example.com/image.jpg",
"size": {
"width": 1920,
"height": 1080
}
}

So an example of the still images property for an asset might look like this:

{
"images": {
"still": [
{
"url": "https://cdn.example.com/image_1080.jpg",
"size": {
"width": 1920,
"height": 1080
}
},
{
"url": "https://cdn.example.com/image_720.jpg",
"size": {
"width": 1280,
"height": 720
}
},
{
"url": "https://cdn.example.com/image_360.jpg",
"size": {
"width": 640,
"height": 360
}
},
{
"url": "https://cdn.example.com/image_180.jpg",
"size": {
"width": 320,
"height": 180
}
}
]
}
}

Genres

When genres are referenced by assets they are always referenced by ID. This means that, when building a system that pushes data against backstage, you’ll first need to be aware of the genres available in the system. So:

  • Grab list of all genres
  • See if it already contains the genre you want to attach
  • If not create a new genre and remember it’s ID
  • Attach the genre to the asset via the ID

Genre reference objects should be added as follows

{
"id": "..."
}

The id is the ID of the genre you want to reference. When the front-ends retrieve these objects through an asset they’re automatically populated with the genre metadata at runtime.

Crew / Persons

When persons are reference by assets (via the crew field) they are always reference by ID. Process wise this follows the same steps as genre reference objects.

Person reference objects should be entered as follows:

{
"id": "...",
"role": "..."
}

The id is the ID of the person you want to reference, the role is a field denoting the type of role the person had in this asset (for example actor or director). When the front-ends retrieve these objects through an asset they’re automatically populated with the person metadata at runtime.

Age classification

An asset can have multiple age classification systems assigned (for example NICAM for the Netherlands and MPAA for the United States). When the front-end is requesting assets the system will automatically pick the age classification system applicable to that user and return it to the app.

propertytypeusage
typestringThe key of the age classification system, the value is arbitrary but must be consistently used throughout the service.
ratingintThe minimum age requirement for this asset to be viewable to a user
indicatorIdsarrayAn array of indicator ID’s. Indicators are visual representations of the ratings (so for MPAA an icon for PG-13 and for NICAM an icon for scary content for example)

The indicator objects follow the same procedure as genres & persons and need to be created up-front via their own API