Settings
What's settings
?β
DIVA requires a 'settings' parameter during initialization.
This 'settings' parameter contains a series of configurations that will be applied to all video assets played by the player.
When using Deltatre Video Production and the DIVA BO Adapter, this 'settings' parameter will be included in a settings.json file along with other initialization parameters.
In the case of third-party integration, the 'settings' parameter is simply one of the initialization parameters.
DIVA BO settingsβ
(skip if not using DIVA BO)
settings
is the JSON file that sets cross-platform behaviors.
Thesettings
JSON file can be videoId-parametric (v.id) β this makes a single JSON file usable for sets of videos. E.g., within the videoData section, the videoDataPath value contains (v.id) to link the videoId-specific videoData file:
"videoDataPath": "https://example.com/fe/video/videodata/v2/{v.id}"
Unlike configuration
(see Video player instantiation input), settings
can change runtime.

Settings sectionsβ
Video playerβ
ββ settings
β
ββ general
β
property | type | default | description |
---|---|---|---|
culture | string | "{fe.cultureCode}" | The culture code of the player |
audioSelectionMethod | string | "title" | The method to find the audio track into the manifest |
backgroundDurationThreshold | number | null | Defines the time interval in milliseconds the app must be in the background before requiring a player restart upon reactivation. Suggested value to be equal to heartbeat session expiration time or 60000) |
closedCaptionSelectionMethod | string | "lang" | The method to find the closed caption track into the manifest |
backgroundImage | string | "" | Path of the image to load as background of the player when autoplay is false |
isCommentaryBadgeVisible | boolean | "true" | If true the badge positioned over the commentary button and contaning the unseen commentary items is visible |
isCommentaryFilteredByChapter | boolean | "false" | If true the user will see in the commentary area only the content present in the current chapter |
isMiddleTimelineEventsLineEnabled | boolean | "false" | If true put the icon without team information in the middle line when in match mode |
isMultiViewModeSwitchEnabled | boolean | "false" | If true user can switch from pipview to sidebyside multiview and viceversa |
isVideoThumbnailPreviewEnabled | boolean | "false" | If true the video thumbnail preview is enabled |
isEndOfPlayEnabled | boolean | "false" | If true the end of play feature is enabled |
jumpLargeGaps | boolean | "false" | If true it lets Diva to jump large gaps in Dash streams |
liveBackOff | number | "0" | Back off setting of the Diva player, sets the delay in milliseconds from the real live position |
pipMode | boolean | "false" | Whether to enable the Native PiP feature or not |
relevantCommentaryStartsVisible | boolean | "true" | Starting value for the active state |
resolveManifestUrl | boolean | "false" | If true, the video URL is passed to the path resolver |
smallGapLimit | number | "0.5" | The limit (in seconds) for a gap in the media to be considered "small" |
timeToDisableAutoplay | number | "5400000" | Time to disable the autoplay at the end of the milliseconds set with no interactions (autoplay at End of Play) |
trackVideoDataManifest | boolean | "true" | If true, videoSource in external API will be the videodata one |
videoAnalyticsEventFrequency | number | "120000" | Frequency of sending D3_VIDEO_PLAYBACK_INFO_EVENT event |
json sample
"settings": {
"general":{
"culture": "{fe.cultureCode}",
"audioSelectionMethod": "title",
"backgroundDurationThreshold": 6000,
"closedCaptionSelectionMethod": "lang",
"backgroundImage": "",
"isCommentaryBadgeVisible": true,
"isCommentaryFilteredByChapter": false,
"isMiddleTimelineEventsLineEnabled": false,
"isMultiViewModeSwitchEnabled": false,
"isVideoThumbnailPreviewEnabled": false,
"isEndOfPlayEnabled": false,
"jumpLargeGaps": false,
"liveBackOff": 1000,
"pipMode": true,
"relevantCommentaryStartsVisible": false,
"resolveManifestUrl": false,
"smallGapLimit": 5,
"timeToDisableAutoplay": 5400000,
"trackVideoDataManifest": false,
"videoAnalyticsEventFrequency": 30000
}
}
ββ colours
β
- Web
- Android
- AndroidTV
- iOS
- tvOS
default color: #CF030B
property | type | default | description |
---|---|---|---|
alertHighlightFg | string | #CF030B | (html5 only) |
base2 | string | #CF030B | ApplieschatButtonBackgroundColor controlbarProgressBarBg if not specified |
base3 | string | #CF030B | AppliesalertHighlightFg highlightsTopBarBg overlayHighlightFg overlayHighlightFgLight settingBtnBg |
chatButtonBackgroundColor | string | base2 | |
chromecastProgressBarBg | string | controlbarProgressBarBg | Background of the Timeline progress bar on Chromecast Receiver App |
controlbarProgressBarBg | string | base2 | Background of the Timeline progress bar |
highlightsTopBarBg | string | base3 | (html5 only) |
overlayHighlightFg | string | base3 | Highlighted elements in Diva overlays (tablet) |
overlayHighlightFgLight | string | base3 | Highlighted elements in Diva overlays (mobile) |
settingBtnBg | string | #CF030B | (html5 only) |
default color: #EEE60C
property | type | default | description |
---|---|---|---|
alertHighlightFg | string | #CF030B | (html5 only) |
base2 | string | #EEE60C | |
base3 | string | #EEE60C | |
chatButtonBackgroundColor | string | #EEE60C | |
chromecastProgressBarBg | string | #EEE60C | Background of the Timeline progress bar on Chromecast Receiver App |
controlbarProgressBarBg | string | #EEE60C | Background of the Timeline progress bar |
highlightsTopBarBg | string | #EEE60C | (html5 only) |
overlayBackgroundColor | string | #FFFFFF | Background color in Diva overlays area |
overlayTextColor | string | #000000 | Text color in Diva overlays area |
overlayHighlightBackgroundColor | string | #EEEEEE | Highlighted elements background in Diva overlays |
overlayHighlightBorderColor | string | #2CD45B | Highlighted elements border color in Diva overlays |
overlayHighlightFg | string | #EEE60C | Highlighted elements in Diva overlays (tablet) |
overlayHighlightFgLight | string | #EEE60C | Highlighted elements in Diva overlays (mobile) |
settingBtnBg | string | #EEE60C | (html5 only) |
default color: TO BE COMPLETED
property | type | default | description |
---|---|---|---|
alertHighlightFg | string | #CF030B | (html5 only) |
base2 | string | #EEE60C | |
base3 | string | #EEE60C | |
chatButtonBackgroundColor | string | #EEE60C | |
chromecastProgressBarBg | string | #EEE60C | Background of the Timeline progress bar on Chromecast Receiver App |
controlbarProgressBarBg | string | #EEE60C | Background of the Timeline progress bar |
highlightsTopBarBg | string | #EEE60C | (html5 only) |
overlayBackgroundColor | string | #FFFFFF | Background color in Diva overlays area |
overlayTextColor | string | #000000 | Text color in Diva overlays area |
overlayHighlightBackgroundColor | string | #EEEEEE | Highlighted elements backgorund in Diva overlays |
overlayHighlightFg | string | #EEE60C | Highlighted elements in Diva overlays (tablet) |
overlayHighlightFgLight | string | #EEE60C | Highlighted elements in Diva overlays (mobile) |
settingBtnBg | string | #EEE60C | (html5 only) |
default color: TO BE COMPLETED
property | type | default | description |
---|---|---|---|
alertHighlightFg | string | #CF030B | (html5 only) |
base2 | string | #EEE60C | |
base3 | string | #EEE60C | |
chatButtonBackgroundColor | string | #EEE60C | |
chromecastProgressBarBg | string | #EEE60C | Background of the Timeline progress bar on Chromecast Receiver App |
controlbarProgressBarBg | string | #EEE60C | Background of the Timeline progress bar |
highlightsTopBarBg | string | #EEE60C | (html5 only) |
overlayBackgroundColor | string | #FFFFFF | Background color in Diva overlays area |
overlayTextColor | string | #000000 | Text color in Diva overlays area |
overlayHighlightBackgroundColor | string | #EEEEEE | Highlighted elements backgorund in Diva overlays |
overlayHighlightFg | string | #EEE60C | Highlighted elements in Diva overlays (tablet) |
overlayHighlightFgLight | string | #EEE60C | Highlighted elements in Diva overlays (mobile) |
settingBtnBg | string | #EEE60C | (html5 only) |
default color: TO BE COMPLETED
property | type | default | description |
---|---|---|---|
alertHighlightFg | string | #CF030B | (html5 only) |
base2 | string | #EEE60C | |
base3 | string | #EEE60C | |
chatButtonBackgroundColor | string | #EEE60C | |
chromecastProgressBarBg | string | #EEE60C | Background of the Timeline progress bar on Chromecast Receiver App |
controlbarProgressBarBg | string | #EEE60C | Background of the Timeline progress bar |
highlightsTopBarBg | string | #EEE60C | (html5 only) |
overlayBackgroundColor | string | #FFFFFF | Background color in Diva overlays area |
overlayTextColor | string | #000000 | Text color in Diva overlays area |
overlayHighlightBackgroundColor | string | #EEEEEE | Highlighted elements backgorund in Diva overlays |
overlayHighlightFg | string | #EEE60C | Highlighted elements in Diva overlays (tablet) |
overlayHighlightFgLight | string | #EEE60C | Highlighted elements in Diva overlays (mobile) |
settingBtnBg | string | #EEE60C | (html5 only) |
json sample
"settings": {
"colours": {
"base2": "#EEE60C",
"base3": "#EEE60C",
"overlayHighlightFg": "#EEE60C",
"overlayHighlightFgLight": "#EEE60C",
"chatButtonBackgroundColor": "#EEE60C",
"controlbarProgressBarBg": "#EEE60C",
"chromecastProgressBarBg": "#EEE60C",
"alertHighlightFg": "#EEE60C",
"highlightsTopBarBg": "#EEE60C",
"settingBtnBg": "#EEE60C",
}
}
ββ videoCast
β
property | type | default | description |
---|---|---|---|
castBackground | string | "" | Url of the background image used in case of wrong or missing videoMetadata thumbnail image during the video cast. It passes through the path resolver. If missing, empty or wrong, no background image is used. |
chromecastAppID | string | "" | It is the identifier of the Receiver App. The functionality is disabled if empty or invalid. NOTE: The appID must be exactly in the capitalisation provided by the Google console (typically, in uppercase). |
isAirplayEnabled | boolean | "true" | Enable the Airplay feature on Diva iOS and related icon. From 4.7.1 version if this is set to false and the user try to cast using the notification center the playback will stop with diva_airplay_forbidden_error |
json sample
"settings": {
"videoCast":{
"castBackground": "https://example.com/fe/images/chromecastbg.png",
"chromecastAppID": "<app ID>",
"isAirplayEnabled": true
}
}
ββ shakaConfigOverrides
β
These parameters are tailored to improve playback performance and enhance the reliability of Streaming Performance Indicators (SPI) by managing buffering, network resources, and data efficiency.
Check the Shaka Player configuration for more details.
property | type | default | description |
---|---|---|---|
shakaConfigOverrides | object | Shaka Player configuration |
ββ applePlayerConfiguration
β
iOS only.
These parameters are tailored to improve playback performance and enhance the reliability of Streaming Performance Indicators (SPI) by managing buffering, network resources, and data efficiency.
Check the AVPlayer configuration for more details.
property | type | default | description |
---|---|---|---|
automaticallyWaitsToMinimizeStalling | boolean | nil | A Boolean value that indicates whether the player should automatically delay playback in order to minimize stalling. |
canUseNetworkResourcesForLiveStreamingWhilePaused | boolean | nil | A Boolean value that indicates whether the player item can use network resources to keep the playback state up to date while paused. |
preferredForwardBufferDurationAfterPlay | number | nil | The duration the player should buffer media from the network ahead of the playhead to guard against playback disruption. Applied right after playback is started. |
preferredForwardBufferDurationAtStart | number | nil | The duration the player should buffer media from the network ahead of the playhead to guard against playback disruption. Applied right after player initialization. |
preferredMaximumResolutionForExpensiveNetworks | object | nil | An upper limit on the resolution of video to download when connecting over expensive networks. Available starting iOS 15. |
preferredPeakBitRate | number | nil | The desired limit, in bits per second, of network bandwidth consumption for this item. |
preferredPeakBitRateForExpensiveNetworks | number | nil | A limit of network bandwidth consumption by the item when connecting over expensive networks. Available starting iOS 15. |
startsOnFirstEligibleVariant | boolean | nil | A Boolean value that indicates whether playback starts with the first eligible variant that appears in the streamβs main playlist. Available starting iOS 14. |
json sample
"settings": {
"ApplePlayerConfiguration": {
"preferredMaximumResolutionForExpensiveNetworks":{
"width":30,
"height":20
},
"preferredPeakBitRate":10000,
"canUseNetworkResourcesForLiveStreamingWhilePaused":true,
"preferredForwardBufferDurationAtStart":20000,
"preferredForwardBufferDurationAfterPlay":30000,
"preferredPeakBitRateForExpensiveNetworks":200000,
"startsOnFirstEligibleVariant":true,
"automaticallyWaitsToMinimizeStalling":true
}
}
ββ AndroidPlayerConfiguration
β
These parameters are tailored to improve playback performance and enhance the reliability of Streaming Performance Indicators (SPI) by managing buffering, network resources, and data efficiency.
Check the Exoplayer configuration for more details.
property | type | default | description |
---|---|---|---|
behindWindowJumptolive | boolean | "false" | The playback position may fall behind the live window so Diva player can jump to live position |
blacklistedCodecs | array | [] | List of codecs to be blacklisted |
retainBackBufferFromKeyframe | boolean | "false" | Returns whether media should be retained from the keyframe before the current playback position minus getBackBufferDurationUs, rather than any sample before or at that position |
prioritizeTimeOverSizeThresholds | boolean | "false" | Whether the load control prioritizes buffer time constraints over buffer size constraints. |
bufferForPlaybackMs | number | 0 | The duration of media that must be buffered for playback to start or resume following a user action such as a seek, in milliseconds. |
minBufferMs | number | 0 | The minimum duration of media that the player will attempt to ensure is buffered at all times, in milliseconds |
maxBufferMs | number | 0 | The maximum duration of media that the player will attempt to buffer, in milliseconds. |
bufferForPlaybackAfterRebufferMs | number | 0 | The default duration of media that must be buffered for playback to resume after a rebuffer, in milliseconds. A rebuffer is defined to be caused by buffer depletion rather than a user action. |
targetBufferBytes | number | 0 | The target buffer size in bytes |
backBufferDurationMs | number | 0 | The back buffer duration in milliseconds. |
liveMinSpeed | number | 0 | The minimum playback speed the player can use to fall back when trying to reach the target live offset. |
liveMaxSpeed | number | 0 | The maximum playback speed the player can use to catch up when trying to reach the target live offset. |
liveMinOffsetMs | number | 0 | The minimum allowed live offset. Even when adjusting the offset to current network conditions, the player will not attempt to get below this offset during playback. |
liveMaxOffsetMs | number | 0 | The maximum allowed live offset. Even when adjusting the offset to current network conditions, the player will not attempt to get above this offset during playback. |
liveTargetOffsetMs | number | 0 | The target live offset. The player will attempt to get close to this live offset during playback if possible. |
fallbackMinPlaybackSpeed | number | 0 | The minimum playback speed that can be used for adjustment if neither the media nor the app-provided MediaItem define limits |
proportionalControlFactor | number | 0 | Controls how smooth the speed adjustment is. A high value makes adjustments more sudden and reactive, but also more likely to be audible. A smaller value results in a smoother transition between speeds, at the cost of being slower. |
targetLiveOffsetIncrementOnRebufferMs | number | 0 | This value is added to the target live offset whenever a rebuffer occurs, in order to proceed more cautiously. This feature can be disabled by setting the value to 0. |
minPossibleLiveOffsetSmoothingFactor | number | 0 | An exponential smoothing factor that is used to track the minimum possible live offset based on the currently buffered media. A value very close to 1 means that the estimation is more cautious and may take longer to adjust to improved network conditions, whereas a lower value means the estimation will adjust faster at a higher risk of running into rebuffers. |
json sample
"settings": {
"AndroidPlayerConfiguration":
{
"behindWindowJumptolive": true,
"retainBackBufferFromKeyframe": true,
"prioritizeTimeOverSizeThresholds": true,
"bufferForPlaybackMs": 2500,
"minBufferMs": 2500,
"maxBufferMs": 20000,
"bufferForPlaybackAfterRebufferMs": 2500,
"targetBufferBytes": 67108864,
"backBufferDurationMs": 4000,
"liveMinSpeed": 0.9,
"liveMaxSpeed": 4.1,
"liveMinOffsetMs": 10000,
"liveMaxOffsetMs": 30000,
"liveTargetOffsetMs": 20000,
"fallbackMinPlaybackSpeed": 0,
"proportionalControlFactor": 0,
"targetLiveOffsetIncrementOnRebufferMs": 0,
"minPossibleLiveOffsetSmoothingFactor": 0,
"blacklistedCodecs": [
"c2.android.avc.decoder",
"OMX.MTK.VIDEO.DECODER.AVC.secure",
"OMX.MTK.VIDEO.DECODER.AVC"
],
}
}
ββ mediaAnalytics
β
property | type | default | description |
---|---|---|---|
conviva | object | Conviva analytics configuration | |
youbora | object | Youbora analytics configuration | |
openMeasurement | object | Open Measurement analytics configuration |
json sample
"settings": {
"mediaAnalytics": {
"conviva": {
"enabled": false,
"customerKey": "<conviva-customer-key>",
"playerName": "Diva",
"cdnName": "<CDN name>",
"touchstoneUrl": "https://touchstone.conviva.com/example/"
},
"youbora": {
"enabled": true,
"playerName": "Diva",
"cdnName": "<CDN name>",
"accountCode": "<account code>"
},
"openMeasurement": {
"enabled": true,
"partnerName": "<partner name>"
}
}
}
ββ translations
β
property | type | default | description |
---|---|---|---|
vocabularySource | string | "" | Dictionary path |
json sample
"settings": {
"translations": {
"vocabularySource": "https://example.com/diva5/dictionaries/{fe.cultureCode}.json"
}
}
Video playbackβ
ββ videoData
β
property | type | default | description |
---|---|---|---|
retries | number | 4 | Number of the retries of the videodata call before sending an error |
videoDataPath | string | "" | URL of the videoData |
videoDataPollingInterval | number | 20000 | Milliseconds interval between two videoData pollings |
videoPlatformsPriority | objecttype sourceName drmtype | Ordered by priority, array of the DRM platforms used to stream the video DRM-protected |
json sample
"settings": {
"videoData": {
"retries": 4,
"videoDataPath": "https://example.com/fe/video/videodata/v2/{v.id}",
"videoDataPollingInterval": 20000,
"videoPlatformsPriority": {
"default": [
{
"type": "DASH",
"sourceName": "Desktop-DASH",
"drmtype": "widevine"
},
{
"type": "HLS",
"sourceName": "Desktop-V4",
"drmtype": "fairplay"
}
],
"chromecast": [
{
"type": "DASH",
"sourceName": "Chromecast-DASH",
"drmtype": "widevine"
}
]
}
}
}
ββ entitlementCheck
β
property | type | default | description |
---|---|---|---|
data | object | Key/value object payload sent to the entitlement service | |
entitlementUrl | string | "" | URL of the entitlement check that gets the authorization token |
fairPlayCertificateUrl | string | "" | |
heartbeatPollingInterval | number | 180000 | Time interval between two entitlement checks |
heartbeatSeekInterval | number | 10000 | Time interval beyond which a seek triggers a new entitlement check |
heartbeatUrl | string | "" | URL of the entitlement check |
other | string | "" | Legacy and deprecated version of data that contained a string of pipe-separated values to be sent to the entitlement service |
queryParams | array of strings | ["VideoSourceName", "VideoId", "VideoKind"] | Array of query parameters used when calling the entitlement service URL |
retries | number | 4 | Number of the retries of the Entitlement call before sending an error |
version | string | "" | If valued, the entitlement payload use data , otherwise other β Note: other is a legacy and deprecated field: use data |
json sample
"settings": {
"entitlementCheck": {
"entitlementUrl": "https://example.com/api/playback/tokenize",
"heartbeatUrl": "https://example.com/api/playback/heartbeat",
"heartbeatPollingInterval": 180000,
"heartbeatSeekInterval": 10000,
"other": "{Run.SessionID}|{p.platform}",
"fairPlayCertificateUrl": "https://example.com/diva5/certificates/fairplay.cer",
"queryParams": ["VideoSourceName", "VideoId", "VideoKind"],
"data": {
"sessionId": "{Run.SessionID}",
"platform": "webTV custom/Amidala",
"idfa": "{Run.idfa}",
},
"other": "{Run.SessionID}|lamiaplatform|{idfa}",
"version": "1"
}
}
ββ ssai
β
property | type | default | description |
---|---|---|---|
type | string | "" | Diva uses this information to handle the appropriate ad provider. At the moment possible values are 'mediatailor' or 'harmonic' |
interval | number | Diva uses the interval defined to poll the ads metadata at the specified interval | |
threshold | number | Diva uses it to detect when a beacon event should be triggered in milliseconds | |
liveEdgeThreshold | number | Live edge in millisecond will be detected if the current position is >= live video duration - live edge threshold | |
lookAhead | number | The look ahead time interval used when the playback position is on the live edge | |
enableGooglePAL | boolean | true | Whether to enable Google PAL SDK or not |
json sample
"settings": {
"ssai": {
"type": "<ssai type>",
"interval": 2000,
"threshold": 1000,
"liveEdgeThreshold": 45000,
"lookAhead": 5000,
"enableGooglePAL": true,
}
}
Data sourceβ
ββ settings
β
ββ pushEngine
β
property | type | default | description |
---|---|---|---|
configUrl | string | "" | Path of the pushengine config file. If empty the PshEngine is disabled |
dataPanelsCollectionName | string | "OverlayLiteData" | the name of the sync data panels Collection |
dataPanelsScopeName | string | "{v.EventID}.{d.Culture}" | the scope of the data panels Collection. It passes through the path resolver. |
dataPanelsCollectionEnabled | boolean | "true" | Enable / disable the data panels Collection |
eCommerceCollectionName | string | "eCommerce" | the name of the eCommerce Collection |
eCommerceScopeName | string | "{v.EventID}.{d.Culture}" | the scope of the eCommerce Collection. It passes through the path resolver. |
eCommerceCollectionEnabled | boolean | "true" | Enable / disable the eCommerce Collection |
editorialCollectionName | string | "Editorial" | the name of the Editorial Collection |
editorialScopeName | string | "{v.EventID}.{d.Culture}" | the scope of the editorial Collection. It passes through the path resolver. |
editorialCollectionEnabled | boolean | "true" | Enable / disable the editorial Collection |
isFragmentsEnabled | boolean | "true" | (html5 only) it defines if the player will progressively download pushengine fragments or just download a new full collection after each sentinel change. |
playByPlayCollectionName | string | "PlayByPlay" | the name of the PbP Collection |
playByPlayScopeName | string | "{v.EventID}.{d.Culture}" | the scope of the PbP Collection. It passes through the path resolver. |
playByPlayCollectionEnabled | boolean | "true" | Enable / disable the PbP Collection |
json sample
"settings": {
"pushEngine": {
"configUrl": "https://example.com/fe/config/pushengine/pushengineConfig.json",
"dataPanelsCollectionName": "OverlayLiteData",
"dataPanelsScopeName": "{v.EventID}.{d.Culture}",
"dataPanelsCollectionEnabled": true,
"eCommerceCollectionName": "eCommerce",
"eCommerceScopeName": "{v.EventID}.{d.Culture}",
"eCommerceCollectionEnabled": true,
"editorialCollectionName": "Editorial",
"editorialScopeName": "{v.EventID}.{d.Culture}",
"editorialCollectionEnabled": true,
"isFragmentsEnabled": true,
"playByPlayCollectionName": "PlayByPlay",
"playByPlayScopeName": "{v.EventID}.{d.Culture}",
"playByPlayCollectionEnabled": true
}
}
ββ syncDataPanels
β
property | type | default | description |
---|---|---|---|
dataFolderUrl | string | "" | Url of the data folder (the Overlay XML description). {V.EventId} tag is refered to the event id of the match and {d.Culture} tag is the data culture |
defaultTemplate | string | "" | |
defaultTrack | string | "menu" | name of the menu track |
maxLoadTime | number | 0 | (html5 only) length of time (in milliseconds) an overlay has to send ready message before loading error is handled. A value of 0 disables the requirement for this message to be sent |
otherParams | string | "?templateName={p.currentTemplate}" | (html5 only) A query string or params to pass to overlays |
renderingFolderUrl | string | "" | Url of the rendering folder (the Overlay XML clickable areas, HTML and PNG). {ResourceURI} tag is refered to the relative path inside overlaData (like html, png and clickcable xml) |
templateForTracksId | string | "" | (html5 only) string map of [menuId]:[templatetype] for each defined menu template. 'menuId' has to match the attribute 'id' of one of the element in the menu html. If id is missing or empty it uses 'trackingId'. If even trackingId is missing or empy it uses 'title'. Otherwise it uses the default value. |
trustedOrigins | string | "" | A string or comma separated URIs to trust messages recieved via postMessage API. By default it's the DIVA's origin |
json sample
"settings": {
"syncDataPanels": {
"dataFolderUrl": "https://example.com/fe/data/overlayData/{v.EventID}/{d.Culture}",
"defaultTemplate": "default",
"defaultTrack": "menu",
"maxLoadTime": 0,
"otherParams": "?templateName={p.currentTemplate}",
"renderingFolderUrl": "https://example.com/fe/data/overlayData/{v.EventID}/{d.Culture}/{ResourceURI}",
"templateForTracksId": "menu:menu",
"trustedOrigins": "https://example.com"
}
}
ββ customPlayByPlay
β
property | type | description |
---|---|---|
key | string | With suffix _Mini: Url of icons in the timeline. With suffix _Big: Url of icons used in the commentary overlay and in the event thumbnails (when tapping on the timeline) |
value | string | Url of the icon |
json sample
"settings": {
"customPlayByPlay": [
{
"key": "basketball_ejection_Mini",
"value": "https://example.com/fe/overlayassets/icons/basketball/{p.density}/basketball_ejection_mini.png"
}
]
}
ββ highlights
β
property | type | Sample Values | description |
---|---|---|---|
startMode | string | short | possible values: none short medium long live |
shortFilter | array of array | [{friendlyName: 'FirstPeriodStart', event: 'period'},"goal", "penalty"] | Event types for Short Highlights. Works only on VOD streams. |
mediumFilter | array of array | ["goal", "penalty"] | Event types for Medium Highlights. Works only on VOD streams. |
longFilter | array of array | ["goal", "penalty"] | Event types for Long Highlights. Works only on VOD streams. |
liveFilter | array of array | ["goal", "penalty"] | Event types for Live Highlights. Works only on LIVE streams. |
defaultEventDuration | number | 10000 | default event duration in milliseconds |
customEventDuration | key/value | "{ "GOAL": 10000, "SUBSTITUTION": 30000 }" | Event types with duration in milliseconds |
json sample
"settings": {
"highlights": {
"startMode": "short",
"shortFilter": [
{friendlyName: 'FirstPeriodStart', event: 'period'},
"goal" //case-insensitive
],
"mediumFilter": [
"goal",
"redcard",
"yellowcard"
],
"longFilter": [
"*"
],
"liveFilter": [
"goal",
"penalty"
],
"defaultEventDuration" : 10000, // 10 seconds in millis (it overrides 15 seconds default)
"customEventDuration ": {
"GOAL": 30000, // 30 seconds in millis
"SUBSTITUTION": 15000 // 15 seconds in millis
}
}
}
Settings sampleβ
{
"settings": {
"general": {
"culture": "{fe.cultureCode}",
"audioSelectionMethod": "title",
"backgroundDurationThreshold": 60000,
"closedCaptionSelectionMethod": "lang",
"backgroundImage": "",
"isCommentaryBadgeVisible": true,
"isCommentaryFilteredByChapter": false,
"isMiddleTimelineEventsLineEnabled": false,
"isMultiViewModeSwitchEnabled": false,
"isVideoThumbnailPreviewEnabled": false,
"isEndOfPlayEnabled": false,
"jumpLargeGaps": false,
"liveBackOff": 1000,
"pipMode": true,
"relevantCommentaryStartsVisible": false,
"resolveManifestUrl": false,
"smallGapLimit": 5,
"trackVideoDataManifest": false,
"videoAnalyticsEventFrequency": 30000
},
"videoCast": {
"castBackground": "https://example.com/fe/images/chromecastbg.png",
"chromecastAppID": "<app ID>",
"isAirplayEnabled": true
},
"pushEngine": {
"configUrl": "https://example.com/fe/config/pushengine/pushengineConfig.json",
"isFragmentsEnabled": true,
"playByPlayCollectionName": "PlayByPlay",
"playByPlayScopeName": "{v.EventID}.{d.Culture}",
"dataPanelsCollectionName": "OverlayLiteData",
"dataPanelsScopeName": "{v.EventID}.{d.Culture}",
"eCommerceCollectionName": "<ecommerce collection name>"
},
"syncDataPanels": {
"dataFolderUrl": "https://example.com/fe/provider/overlays/DivaData/OverlayLiteData/{v.EventId}.{d.Culture}/{OverlayID}.xml",
"renderingFolderUrl": "https://example.com/fe/provider/overlays/DivaData/RenderingLiteData{n:ResourceURI}",
"templateForTracksId": "lineups:sideBySide;teamstats:fullVideo",
"trustedOrigins": "https://example.com",
"defaultTrack": "menu"
},
"customPlayByPlay": [
{
"key": "basketball_ejection_Mini",
"value": "https://example.com/fe/overlayassets/icons/basketball/{p.density}/basketball_ejection_mini.png"
}
]
},
"translations": {
"vocabularySource": "https://example.com/diva5/dictionaries/{fe.cultureCode}.json"
},
"videoData": {
"videoDataPath": "https://example.com/fe/video/videodata/v2/{v.id}",
"videoDataPollingInterval": 20000,
"videoPlatformsPriority": {
"default": [
{
"type": "DASH",
"sourceName": "Desktop-DASH",
"drmtype": "widevine"
},
{
"type": "HLS",
"sourceName": "Desktop-V4",
"drmtype": "fairplay"
}
],
"chromecast": [
{
"type": "DASH",
"sourceName": "Chromecast-DASH",
"drmtype": "widevine"
}
]
}
},
"entitlementCheck": {
"entitlementUrl": "https://example.com/api/playback/tokenize",
"heartbeatUrl": "https://example.com/api/playback/heartbeat",
"heartbeatPollingInterval": 180000,
"heartbeatSeekInterval": 10000,
"other": "{Run.SessionID}|{p.platform}",
"fairPlayCertificateUrl": "https://example.com/diva5/certificates/fairplay.cer",
"queryParams": ["VideoSourceName", "VideoId", "VideoKind"],
},
"mediaAnalytics": {
"conviva": {
"enabled": false,
"customerKey": "<conviva-customer-key>",
"playerName": "Diva",
"cdnName": "<CDN name>",
"touchstoneUrl": "https://touchstone.conviva.com/example/"
},
"youbora": {
"enabled": true,
"playerName": "Diva",
"cdnName": "<CDN name>",
"accountCode": "<account code>"
},
"openMeasurement": {
"enabled": true,
"partnerName": "<partner name>"
}
},
"ssai": {
"type": "<ssai type>",
"interval": 2000,
"threshold": 1000,
"liveEdgeThreshold": 45000,
"lookAhead": 5000,
"enableGooglePAL": true,
}
}