Some examples are provided here to inspire you to experiment and understand the flexibility of configuration.
OPF credentials
freshOpf.config.json
JS
{
"engineerLabel": "Streams from OPF",
"streams": {
"drm": {
"tenantId": "**********",
"baseUrl": "https://**********.anycast.nagra.com",
"sspUseSsm": true,
"sspBaseSsmUrl": "https://**********-ssm.anycast.nagra.com/**********/ssm",
"licenceServer": "https://*****base url for license, if different from baseUrl****"
},
"vod": [
{
"name": "vod1",
"videoUrl": "https://d3bqrzf9w11pn3.cloudfront.net/basic_dash_bbb_clear/bbb_public.mpd",
"tags": ["1080p"]
}
],
"live": [
{
"name": "Live1",
"videoUrl": "https://d24rwxnt7vw9qb.cloudfront.net/v1/dash/e6d234965645b411ad572802b6c9d5a10799c9c1/All_Reference_Streams/4577dca5f8a44756875ab5cc913cd1f1/index.mpd",
"tags": ["AWS"]
},
{
"name": "Live3",
"videoUrl": "https://cdn-vos-ppp-01.vos360.video/variant/v1/daiRegLat/DASH_DASH/Live/channel(DAITestRegLat)/master.mpd",
"tags": ["DAI"]
}
],
"opf": {
"instance": "**********",
"username": "**********",
"password": "**********"
}
}
}
licenceServer configuration is optional and is only required if the licence server url is different from baseUrl configuration.
OPF config to mimic a target device
mimickingOpf.config.json
JS
{
"engineerLabel": "Streams from OPF",
"streams": {
"drm": {
"tenantId": "**********",
"baseUrl": "https://**********.anycast.nagra.com",
"sspUseSsm": true,
"sspBaseSsmUrl": "https://**********-ssm.anycast.nagra.com/**********/ssm",
"licenceServer": "https://*****base url for license, if different from baseUrl****"
},
"vod": [],
"live": [],
"opf": {
"instance": "**********",
"mimicDevices": [
"Linux_STB"
],
"nvTenantId": "nagra",
"mimicCASId": "123456789",
"username": "not used but still required",
"password": "not used but still required"
}
}
}
Parameters for opy-sdk-js
params.opy-sdk-js.config.json
JS
{
"engineerLabel": "rebufferingGoal 0, manifest tolerance 0, NOT ignore min buffer timer",
"parameters": {
"opy-sdk-js": {
"streaming": {
"rebufferingGoal": 0,
"inaccurateManifestTolerance": 0
},
"manifest": {
"dash": {
"ignoreMinBufferTime": false
}
},
"drm": {
"servers": {
"com.widevine.alpha": "https://***********.anycast.nagra.com/***********/wvls/contentlicenseservice/v1/licenses",
"com.microsoft.playready": "https://***********.anycast.nagra.com/***********/prls/contentlicenseservice/v1/licenses"
}
}
}
}
}
Streams and DRM
freshStreamsList.config.json
JS
{
"engineerLabel": "DRM head end change with streams",
"streams": {
"drm": {
"tenantId": "**********",
"baseUrl": "https://**********.anycast.nagra.com",
"sspUseSsm": false,
"sspBaseSsmUrl": "https://**********-ssm.anycast.nagra.com/**********/ssm",
"widevineServerCertificate": "CsECCAMSEBcFuRfMEgSGiwYzOi9......",
"widevinePersistentState": "required",
"licenceServer": "https://*****base url for license, if different from baseUrl****"
},
"vod": [
{
"name": "vod1",
"videoUrl": "https://d3bqrzf9w11pn3.cloudfront.net/basic_dash_bbb_clear/bbb_public.mpd",
"tags": ["1080p"]
},
{
"name": "vod2",
"videoUrl": "https://d3bqrzf9w11pn3.cloudfront.net/sintel/sintel.mpd",
"tags": ["1080p", "multi-audio", "SUBS"]
}
],
"live": [
{
"name": "Live1",
"videoUrl": "https://d24rwxnt7vw9qb.cloudfront.net/v1/dash/e6d234965645b411ad572802b6c9d5a10799c9c1/All_Reference_Streams/4577dca5f8a44756875ab5cc913cd1f1/index.mpd",
"tags": ["AWS"]
},
{
"name": "Live2",
"videoUrl": "https://cdn-vos-ppp-01.vos360.video/Content/DASH_DASH/Live/channel(DAITestRegLat)/master.mpd",
"tags": ["DAI"]
},
{
"name": "Live3",
"videoUrl": "https://cdn-vos-ppp-01.vos360.video/variant/v1/daiRegLat/DASH_DASH/Live/channel(DAITestRegLat)/master.mpd",
"tags": ["DAI"]
}
]
}
}
licenceServer configuration is optional and is only required if the licence server url is different from baseUrl configuration.
SSP Customer Callback Mode with optional get content token
ssmCallbacks.config.json
JS
{
"engineerLabel": "customer callback mode with getContentToken",
"callbacks": {
"getContentToken": "myGetTokenFunction",
"system": "customer",
"requestLicenceCallback": "myBasicLicenceRetrievalFunctionUsingGotToken"
},
"streams": {
"drm": {
"widevineServerCertificate": "redacted",
"widevinePersistentState": "required"
},
"live": [],
"vod": [
{
"name": "Token Callback: Big Buck Bunny",
"videoUrl": "https://otvplayer.nagra.com/vod/cmaf/scramble/big_buck_bunny/manifest.mpd",
"tags": ["1080p", "CMAF", "CBCS"]
}
]
}
}
SSM Customer Callback Mode
ssmCallbacks.config.json
JS
{
"engineerLabel": "customer-SSM callback mode",
"callbacks": {
"system": "customer-ssm",
"customerSsmCallback": {
"getLicence": "myBasicSSMLicenceRetrievalFunction",
"heartbeat": "myBasicSSMHeartbeatFunction"
}
},
"streams": {
"drm": {
"widevineServerCertificate": "redacted",
"widevinePersistentState": "required"
},
"vod": [
{
"name": "UEX3X SSM - Big Buck Bunny",
"videoUrl": "https://otvplayer.nagra.com/vod/demo_content/ed_big_buck_bunny_1080p/big_buck_bunny.mpd",
"tags": ["SSM"]
}
],
"live": []
}
}