VideoMetadata
What's the VideoMetadata?​
The VideoMetadata is an object that describes the video to play.
All VideoMetadata fields​
Check the full list
| Category | Property | Type | Default | Description | Example |
|---|---|---|---|---|---|
| Advertising and Integrations | ad | string | "" | VAST or VMAP url | "http://vast.com/vmap.xml" |
| Core | assetState | AssetState | |||
| Playback | audioTracks | array of AudioTrack | "" | List of audio tracks for this media | |
| Experience | behaviour | Behaviour | |||
| Core | capabilities | Capabilities | |||
| Experience | customActions | array of CustomAction | "" | ||
| Experience | customDataPanels | array of CustomDataPanel | "" | ||
| Playback | defaultAudioTrackId | string | "" | The default id of the audio track that will be used if there is no user selection | |
| Core | eventId | string | "" | Identified the event associated to the video. This is used to fetch data associated to the video (overlays, data panels, etc..) | "videoId" |
| Core | expectedDuration | number | "0" | Expected duration of the video (milliseconds) | "0" |
| Experience | image | string | "" | A static thumbnail that can be used to represent the video | "http://thumbnail.com/image.png" |
| Advertising and Integrations | livelikeProgramId | string | "" | ID of the Livelike program for enabling Livelike feature | "aaeeff00" |
| deprecated | multicam (@deprecated) | Multicam | |||
| deprecated | overlayThumbnailUrl (@deprecated) | string | "" | Thumbnail shown when datapanels menu is open (tablet, hmtl5) | |
| Core | programDateTime | string | "" | Absolute time when the video was started (ISO 8601 date time) Used to synchronize video and additional data | "2020-02-14T15:01:50Z" |
| Experience | skipIntervals | array of SkipInterval | [] | List of time intervals during which to display the skip button | |
| Experience | socialSharing | SocialSharing | |||
| Playback | sources | array of VideoSource | "" | List of video sources for this media | |
| Playback | stereoMode | StereoMode | |||
| Core | title | string | "" | Title of the video | "title" |
| Core | subtitle | string | "" | Subtitle of the video | "subtitle" |
| Playback | trimIn | number | "0" | client side trimming-in (milliseconds) | "0" |
| Playback | trimOut | number | "0" | client side trimming-out (milliseconds) | "0" |
| Core | videoId | string | Unique id of the video | "videoId" | |
| Experience | videoLists | array of VideoList | "" | if empty, the video lists are not visible | |
| Experience | vttThumbnails.baseUrl | string | Base url of the vtt thumbnails file | "http:/domain.com/path" | |
| Experience | vttThumbnails.filename | string | Filename of the vtt thumbnails file | "file.vtt" | |
| Experience | vttThumbnails | ||||
| Playback | dvrType | DvrType |
VideoMetadata by Categories​
Core​
| Property | Type | Default | Description | Example |
|---|---|---|---|---|
| assetState | AssetState | |||
| expectedDuration | number | "0" | Expected duration of the video (milliseconds) | "0" |
| eventId | string | "" | Identified the event associated to the video. This is used to fetch data associated to the video (overlays, data panels, etc..) | "videoId" |
| programDateTime | string | "" | Absolute time when the video was started (ISO 8601 date time) Used to synchronize video and additional data | "2020-02-14T15:01:50Z" |
| title | string | "" | Title of the video | "title" |
| subtitle | string | "" | Subtitle of the video | "subtitle" |
| videoId | string | Unique id of the video | "videoId" |
Playback​
| Property | Type | Default | Description | Example |
|---|---|---|---|---|
| trimIn | number | "0" | client side trimming-in (milliseconds) | "0" |
| trimOut | number | "0" | client side trimming-out (milliseconds) | "0" |
| audioTracks | array of AudioTrack | "" | List of audio tracks for this media | |
| defaultAudioTrackId | string | "" | The default id of the audio track that will be used if there is no user selection | |
| dvrType | DvrType | |||
| sources | array of VideoSource | "" | List of video sources for this media |
Experience​
| Property | Type | Default | Description | Example |
|---|---|---|---|---|
| behaviour | Behaviour | "" | Defines default video playback behavior | — |
| customActions | array of CustomAction | "" | List of custom actions for the video player | — |
| customDataPanels | array of CustomDataPanel | "" | Defines additional data panels to be shown alongside the video | — |
| image | string | "" | A static thumbnail that can be used to represent the video | "http://thumbnail.com/image.png" |
| mediaLists | array of MediaList | "" | If empty, the media lists are not visible | — |
| related | — | Deprecated: previously used for related content | — | |
| socialSharing | SocialSharing | — | Enables social sharing features | — |
| stereoMode | StereoMode | — | Defines stereo mode configuration (e.g., mono, stereo) | — |
| upNext | — | Deprecated: previously used to configure up-next videos | — | |
| skipIntervals | array of SkipInterval | [] | List of time intervals during which to display the skip button | — |
| videoLists | array of VideoList | "" | If empty, the video lists are not visible | — |
| vttThumbnails.baseUrl | string | — | Base URL of the VTT thumbnails file | "http://domain.com/path" |
| vttThumbnails.filename | string | — | Filename of the VTT thumbnails file | "file.vtt" |
| vttThumbnails | object | — | Container object for VTT thumbnail config (baseUrl, filename) | — |
3rd Parties​
| Property | Type | Default | Description | Example |
|---|---|---|---|---|
| ad | string | "" | VAST or VMAP url | "http://vast.com/vmap.xml" |
| livelikeProgramId | string | "" | ID of the Livelike program for enabling Livelike feature | "aaeeff00" |
Types​
AssetState​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| assetstate | enum (of strings) | "live" "vod" | "vod" | Whether the video should be displayed as VOD or LIVE |
AudioTrack​
├── videoMetadata
│ └── audioTracks
│ └── audioTrack
| Property | Type | Description |
|---|---|---|
| id | string | Unique identifier of the track |
| label | string | Label of the audio track displayed in the audio tracks selection setting panel |
| selector | string | Result of the audio track found in the manifest, based on the selection method configured. |
Behaviour​
├── videoMetadata
│ └── behaviour
| Property | Type | Default | Description |
|---|---|---|---|
| endOfPlay | EndOfPlay | ||
| externalStreamingEnabled | boolean | "true" | |
| seekInterval | number | "10000" | milliseconds |
| spoilerMode | SpoilerMode | ||
| timelineMode | TimelineMode |
EndOfPlay​
├── videoMetadata
│ └── behaviour
│ └── endOfPlay
| Property | Type | Default | Description |
|---|---|---|---|
| countdownToAutoplay | number | "10000" | milliseconds |
| squeezeBackTime | number | "0" (disabled) | milliseconds |
| verticalVideoAutoplayOrLoop | string | "autoplay" | string: "autoplay" |
SpoilerMode​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| spoilermode | enum (of strings) | "notSpoiled" "highlights" "chapterNotSpoiled" "chapterAndDurationNotSpoiled" "chapterDurationAndSeekbarNotSpoiled" | "notSpoiled" | Define if events in certain features are spoiled or not |
TimelineMode​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| timelinemode | enum (of strings) | "enhanced" "alternate" | "enhanced" |
Capabilities​
| Property | Type | Default | Description | Example |
|---|---|---|---|---|
| alternateCommentary | boolean | "true" | HTML5 only - enable or disable the alternate visualisation of timeline | "true" |
| cc | boolean | "true" | enable or disable the closed captions | "true" |
| chapters | boolean | "true" | enable or disable the chapters functionality | "true" |
| commentary | boolean | "true" | enable or disable the commentary functionality | "true" |
| dataPanels | boolean | "true" | enable or disable data panels | "true" |
| boolean | "true" | "true" | ||
| boolean | "true" | "true" | ||
| relevantCommentary | boolean | "true" | enable or disable the relevant commentary functionality | "true" |
| score | boolean | "true" | enable or disable the score functionality | "true" |
| snapStats | boolean | "true" | enable or disable the snap stats functionality | "true" |
| timeline | boolean | "true" | "true" | |
| title | boolean | "true" | "true" | |
| userAudioSelection | boolean | "true" | "true" | |
| videoQuality | boolean | "true" | enable or disable the video quality selector | "true" |
| vr | boolean | "true" | "true" | |
| wallclock | boolean | "true" | if false wallclock time is hidden in live videos with limited DVR | "true" |
CustomAction​
├── videoMetadata
│ └── customActions
│ └── CustomAction
| Property | Type | Default | Description |
|---|---|---|---|
| actionId | string | "" | |
| icon | string | "" |
CustomDataPanel​
├── videoMetadata
│ └── customDataPanels
│ └── CustomDataPanel
| Property | Type | Default | Description |
|---|---|---|---|
| feedUrl | string | "" | Url of the feed. The item will be ignored if this parameter is an empty string |
| id | string | "" | |
| menu | string | "" | The Data Panel title that will be shown in the tab bar. The item will be ignored if this parameter is an empty string |
| pollingInterval | number | "0" | How often the feed url will be polled (milliseconds). "0" means that polling is disabled. If this value is less than 1000 (1s), then 1000 will be applied |
DvrType​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| dvrtype | enum (of strings) | "none" "full" "limited" | "full" | Type of DVR window for this video |
MediaList​
├── videoMetadata
│ └── mediaLists
│ └── MediaList
| Property | Type | Default | Description |
|---|---|---|---|
| defaultItemLayout | MediaListItemLayout | ||
| defaultItemType | MediaListItemType | ||
| defaulImageFormat | MediaListImageFormat | ||
| items | array of MediaListItem | ||
| listId | string | "" | The identifier used for this media list in the analytic events |
| rowTitle | string | "" | The title of the media list (if empty it will be replaced by the menuLabel value) |
| noItemsMessage | string | "" | The message to show if the list is empty |
| menuLabel | string | "" | The label shown in the sidebar menu |
| behaviour | string | "" | The behaviour of the media list |
| showInEndOfPlay | boolean | false | if "true" it will add the current list in the End Of Play experience |
MediaListItem​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| adBadge | boolean | false | Audio Description badge (Accessibility) | |
| caption | string | null | The subtext or description associated with the item. Can be null | |
| ccBadge | boolean | false | Closed Caption badge (Accessibility) | |
| explicitBadge | boolean | false | Explicit badge (Content) | |
| imageUrl | string | (fallback image) | Image URL used to background | |
| imageFormat | MediaListImageFormat | |||
| itemId | string | "" | The unique identifier of the item | |
| itemLayout | MediaListItemLayout | |||
| itemType | MediaListItemType | |||
| title | string | "" | The main text or heading associated with the item. | |
| itemUrl | string | "" | The URL to be used as a reference for the switch behaviour | |
| isLive | boolean | false | Indicates the status of the asset, it will apply the LIVE label on top | |
| highlightColor | string | "#ffff00" | The color used to highlight the currently selected video on tablets (dark theme theme) | |
| highlightColorLight | string | "#ffff00" | The color used to highlight the currently selected video on smartphones (light theme) | |
| number | "0" | Backward compatibility only, it will be deprecated | ||
| boolean | "false" | Backward compatibility only, it will be deprecated | ||
| boolean | "false" | Backward compatibility only, it will be deprecated | ||
| string | "" | Backward compatibility only, it will be deprecated |
MediaListItemLayout​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| medialistitemlayout | enum (of strings) | "vertical" "horizontal" | "" | Type of player visualization |
MediaListItemType​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| medialistitemtype | enum (of strings) | "audio" "music" "podcast" | "audio" | Identify if medialist item is one music, one podcast or an album contained more file, in this last case audio |
MediaListImageFormat​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| medialistimageformat | enum (of strings) | "square" | "square" | The format of the thumbnail (just 'tile' so far) |
Multicam (@deprecated)​
This implementation is deprecated and will be maintained only until version 5.11.0. After that, it will no longer be supported. Upgrade now to ensure continued compatibility.
| Property | Type | Default | Description |
|---|---|---|---|
| enable360Cameras | boolean | "true" | |
| enableVRFor360Cameras | boolean | "true" | |
| pitchViewEnabled | boolean | "true" | |
| videoListUrl | string | "" |
Recommendation (@deprecated)​
This implementation is deprecated and will be maintained only until version 5.11.0. After that, it will no longer be supported. Upgrade now to ensure continued compatibility.
| Property | Type | Default | Description |
|---|---|---|---|
| autoLoadTime | number | "10000" | milliseconds, 0 means disabled [html5 only] |
| feedUrl | string | "" | if empty, disable the feature |
| redirectOnClick | boolean | "false" | whether clicking an item redirects to a new player page [html5 only] |
| sortList | boolean | "true" | puts the current video as first, if present [html5 only] |
Related (@deprecated)​
This implementation is deprecated for the Web platform and will be maintained only until version 5.13.x. After that, it will no longer be supported. Upgrade now to ensure continued compatibility.
├── videoMetadata
│ └── related
| Property | Type | Default | Description |
|---|---|---|---|
| imageFormat | string | tile | The format of the thumbnail (just 'tile' so far) |
| items | array of relatedItem | The list of related items to show | |
| rowTitle | string | "diva_eop_related_title" | a dictionary tag, the title of the related row |
| caption | string | The caption of the next video put below the title | |
| imageUrl | string | The image url of the next video | |
| itemId | string | The id of the next video | |
| title | string | The title of the next video |
Related Item (@deprecated)​
├── videoMetadata
│ └── related
│ └── items
│ │ ├── item
| Property | Type | Default | Description |
|---|---|---|---|
| adBadge | boolean | false | Audio Description badge (Accessibility) (tv only) |
| caption | string | The caption of the related video item | |
| ccBadge | boolean | false | Closed Caption badge (Accessibility) (tv only) |
| imageUrl | string | (fallback image) | The image url of the related video item |
| itemId | string | The id of the related video item | |
| title | string | The title of the related video item |
Scrubbing​
├── videoMetadata
│ └── behaviour
│ └── seekSpeed1
seekSpeed2
seekSpeed3
| Property | Type | Description |
|---|---|---|
| seekSpeed1 | number | Level of lowest speed of scrubbing the seekbar |
| seekSpeed2 | number | Mid level of speed of scrubbing the seekbar |
| seekSpeed3 | number | Highest level of speed of scrubbing the seekbar |
SkipInterval​
├── videoMetadata
│ └── skipIntervals
│ └── SkipInterval
| Property | Type | Description |
|---|---|---|
| autoHide | number | Auto hide timeout if not interacted |
| end | number | End in milliseconds from the beginning of the video |
| label | string | Key to look for inside the dictionary for one specific interval |
| start | number | Start in milliseconds from the beginning of the video |
SocialSharing​
├── videoMetadata
│ └── socialSharing
| Property | Type | Default | Description |
|---|---|---|---|
| excludedNativeSharingApps | array of array | "" | |
| excludedSharingApps | array of array | "" | |
| message | string | "" |
StereoMode​
├── videoMetadata
│ └── stereoMode
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| stereomode | enum (of strings) | "none" "monoscopic" "updown" | "none" | Type of 360 video layout |
UpNext (@deprecated)​
This implementation is deprecated for the Web platform and will be maintained only until version 5.13.x. After that, it will no longer be supported. Upgrade now to ensure continued compatibility.
├── videoMetadata
│ └── upNext
| Property | Type | Default | Description |
|---|---|---|---|
| caption | string | The caption of the next video put below the title | |
| imageUrl | string | The image url of the next video | |
| itemId | string | The id of the next video | |
| title | string | The title of the next video |
VideoList (@deprecated)​
This implementation is deprecated for the Web platform and will be maintained only until version 5.13.x. After that, it will no longer be supported. Upgrade now to ensure continued compatibility.
├── videoMetadata
│ └── videoLists
│ └── VideoList
| Property | Type | Default | Description |
|---|---|---|---|
| behaviour | VideoListBehaviour | ||
| feedUrl | string | "" | the url of videoList, if empty the video list related is not valid |
| highlightColor | string | "#ffff00" | The color used to highlight the currently selected video on tablets (dark theme theme) |
| highlightColorLight | string | "#ffff00" | The color used to highlight the currently selected video on smartphones (light theme) |
| id | string | "" | The identifier used for this video list in the analytic events |
| isRecommended | boolean | false | First element with isRecommended equal true will be shown at top position in End of Play view |
| menu | string | "" | The name of the videolist shown to the user in the tab bar |
| message | string | "" | The text shown as a header within the video list (not the title of the tab) |
| messageNoVideo | string | "" | The message show when the video list is empty (it replaces message) |
| pollingInterval | number | "0" | How often to poll the videolist url for new data (milliseconds) "0" means that polling is disabled. If this value is less than 1000 (1s), then 1000 will be applied |
| redirectOnClick | boolean | "false" | (HTML5 only) Whether the browser will open the video in a new page |
VideoListBehaviour​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| videolistbehaviour | enum (of strings) | "switch" "multiview" "pipview" "multistreamSwitch" "multistreamMultiview" "multistreamPipview" "modal" | "switch" | How Diva will behave when opening one of the videos of the videolist |
VideoSource​
├── videoMetadata
│ └── sources
│ └── VideoSource
| Property | Type | Default | Description | Example |
|---|---|---|---|---|
| daiType | DaiType | |||
| drm | VideoSourceDrm | |||
| format | string | A string representing the video source format. Supported formats are 'hls', 'dash', 'mp4' | "hls" | |
| hdrType | HdrType | |||
| name | string | "same-as-format" | A string representing the video source name, defaults to the same value of format | "hls-for-chromecast" |
| offset | number | "0" | Program date time offset for this video source (milliseconds, can be negative) | "0" |
| uri | string | Uri of the media to be played (usually a DASH/HLS manifest) | "https://azuremedia.com/some/manifest.m3u8" |
DaiType​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| daiType | enum (of strings) | "none" "googleLive" "googleVod" | "none" | type of DAI to use (currently only googleLive is supported) |
HdrType​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| hdrType | enum (of strings) | "hdr10" "none" | Type of HDR (currently only HDR10 is supported) |
VideoSourceDrm​
| Property | Type | Default | Description |
|---|---|---|---|
| licenseUrl | string | "" | |
| token | string | "" | |
| type | VideoSourceDrmType |
VideoSourceDrmType​
| Property | Type | Values | Default | Description |
|---|---|---|---|---|
| videosourcedrmtype | enum (of strings) | "none" "fairplay" "widevine" "playready" "aes" | "none" | Drm types |
VideoMetadata sample​
{
"assetstate": "vod",
"expectedDuration": 0,
"eventId": "videoId",
"programDateTime": "2020-02-14T15:01:50Z",
"title": "title",
"subtitle": "subtitle",
"videoId": "videoId",
"behaviour": {
"endOfPlay": {
"countdownToAutoplay": 10000,
"squeezeBackTime": 10000
},
"externalStreamingEnabled": true,
"seekInterval": 10000,
"spoilermode": "notSpoiled",
"timelinemode": "enhanced",
"seekSpeed1": 10000,
"seekSpeed2": 20000,
"seekSpeed3": 30000
},
"capabilities": {
"alternateCommentary": true,
"cc": true,
"chapters": true,
"commentary": true,
"dataPanels": true,
"relevantCommentary": true,
"score": true,
"snapStats": true,
"timeline": true,
"title": true,
"userAudioSelection": true,
"videoQuality": true,
"vr": true,
"wallclock": true
},
"customActions": [
{
"actionId": "actionId",
"icon": "icon"
},
],
"customDataPanels": [
{
"feedUrl": "",
"id": "",
"menu": "",
"pollingInterval": 0
}
],
"image": "http://thumbnail.com/image.png",
"videoLists": [],
"vttThumbnails": {
"baseUrl": "http:/domain.com/path",
"filename": "file.vtt"
},
"skipIntervals": [
{
"autoHide": 0,
"end": 0,
"label": "label",
"start": 0
}
],
"socialSharing": {
"excludedNativeSharingApps": [],
"excludedSharingApps": [],
"message": ""
},
"stereoMode": {
"stereomode": "none"
},
"upNext": {
"caption": "",
"imageUrl": "",
"itemId": "",
"title": ""
},
"related": {
"imageFormat": "tile",
"items": [
{
"adBadge": false,
"caption": "",
"ccBadge": false,
"imageUrl": "",
"itemId": "",
"title": ""
}
],
"rowTitle": "diva_eop_related_title"
},
"ad": "http://vast.com/vmap.xml",
"livelikeProgramId": "aaeeff00",
"trimIn": 0,
"trimOut": 0,
"audioTracks": [],
"defaultAudioTrackId": "",
"dvrtype": "full",
"sources": [
{
"daiType": "none",
"drm": {
"licenseUrl": "",
"token": "",
"type": "none"
},
"format": "hls",
"name": "hls",
"uri": "https://azuremedia.com/some/manifest.m3u8",
"offset": 0,
"hdrType": "hdr10"
}
],
}
What's the VideoMetadataMap?​
The VideoMetadataMap is the runtime representation of the VideoMetadata.
Each platform has its VideoMetadataMap to read and overwrite the VideoMetadata fields: