Skip to main content

Streams

Streams in backstage are stored under what we call edition objects. These are separate objects that reference the asset (so the asset needs to be saved before creating the edition). Right now each asset can have 2 editions: a full edition (the full video) and a trailer edition (an optional trailer), both of which can contain references to stream URL’s.

Editions

The edition objects contain the following properties:

propertytypeusage
idstringThis field is auto generated when an edition is created
asset_idstringReferences the asset the edition belongs to
labelstringName of the edition, is not used anywhere at the moment
editionTypestringType of the edition, can be either: full or trailer
streamsarrayContains stream reference objects
subtitlesarrayAn array containing a list of externally available subtitles

Streams

The stream reference objects contain the stream types available to an edition. These are returned to the client apps so they can select their preferred (drm) format before playout (for example iOS/tvOS would prefer hls/fairplay).

propertytypeusage
urlstringURL to the actual manifest.
typestringThe manifest type, can be: hls, dash, smoothstreaming, mp4, mp3
drmstringThe type of DRM used for the stream, can be: unencrypted, fairplay, widevine, playready
dataobjectData that can optionally be used for DRM requirements, should be not be used unless truly required as it can create quite rigid integration situations

Once a stream is requested by the client apps through the edition object the system has the capability to perform some decoration (like tokenization) on it based on the OVP that’s configured.

Subtitles

The subtitle objects can be used to give the player access to subtitle tracks outside of the manifest

propertytypeusage
labelstringThe name of the subtitle
languagestringAn ISO 639-1 code denoting the language of the subtitle
forcedbooleanWhether to force a subtitle, when set to true the player will auto-select it and not allow the user to switch. Only one subtitle object can be set to forced in the set
sourcesarrayAn array of subtitle sources, multiple types can be returned for the player to choose from (so same subtitle in multiple formats).
sources.*.typestringThe subtitle file type, can be: ttml, webvtt, srt
sources.*.urlstringThe URL to the actual subtitle file