Streaming Spec | Indee YourCloud
In reference to the media streaming workflow, the player needs to be initiated with a manifest file that will be the response to the media manifest API call.
Media Manifest API
Request
Endpoint
Headers
Header | Value |
---|---|
Authorization | Amazon Signature |
Body
{
"video": "deep-space/vid-8y2fohoweicu3",
"manifest_key": "master.m3u8"
"source": {
"region": "us-east-1",
"bucket": "deep-space-yourcloud-streaming-regional-bucketmedia",
"access_point": "s3objectlambdaaccess-rr9zpaps1a--ol-s3.s3.us-east-1.amazonaws.com"
},
"config": {
"table_name":"deep-space-yourcloud-streaming-global-TablePlayback-1DOQ4"
},
"visible_watermarks": [
{
"type": "text",
"detail": "John Doe",
"opacity": 60,
"position": 5
},
.
.
],
"forensic_wmk_details": {
"secret": "p24ni3rvp2n40pgnvp043940pnv3p0",
"strength": "medium"
},
"stream_protocol": "hls",
"drm_details": {
.
.
.
},
"stream_session_details": {
"session_key": "ssn-h23bfie490u",
"expiry": 1723056978
}
}
Schema Description
Parameter | Description |
---|---|
video | S3 key for the location of the video files stored on the streaming bucket. This is the value for base_path passed in the the processing stage. |
manifest_key | URL path / key for the manifest being requested. |
source -> region | The region of the S3 streaming bucket. |
source -> bucket | The name of the S3 streaming bucket. |
source -> access_point | The endpoint for the Lambda set up on the S3 streaming bucket. |
config -> table name | The name of the DynamoDB table used to track streaming data. |
visible_watermarks -> type | Type of visible watermark to be inserted. Currently only text is supported. |
visible_watermarks -> detail | The content of the visible watermark to be inserted. Expected to be a string for text watermarks. |
visible_watermarks -> opacity | The opacity of the visible watermark. Range from 0 - 100. |
visible_watermarks -> position | The position of the watermark on a fifteen point grid. The cells on the grid are numbered from 0 to 14, left to right, top to bottom. |
forensic_wmk_details -> secret | The unique secret to be inserted into the video as a forensic watermark. |
forensic_wmk_details -> strength | The strength of the forensic watermark, ranging from 1-5. Higher levels will insert a more robust watermark, at the expense of a reduction in video quality. |
stream_protocol | The streaming protocol of the requested manifest. Supported values: hls , dash . |
drm_details | Please see below. |
stream_session_details -> session_key | The unique identifier for this streaming session. |
stream_session_details -> expiry | How long this streaming session is valid for, in milliseconds. |
DRM Details
The DRM data should be provided for each resolution. Indee supports unique DRM keys for each resolution. A sample of the multi-key DRM data can be found below.
{
"360": {
"widevine_and_playready_values": {
"ContentID": "vid-01jcmwh6he5watm12sdjf98cy2__01jcmwjnrdhmqhtqjqw9x7s3de",
"ServerURL": "https://lic.staging.drmtoday.com/license-proxy-widevine/cenc/?specConform=true",
"LAURL": "https://lic.staging.drmtoday.com/license-proxy-headerauth/drmtoday/RightsManager.asmx",
"KeyHEX": "FEFA498EF873B2BCBEA608ED4A12C978",
"KeyIDHEX": "E1F7EC878BDD3327A332B98B088E2915",
"PSSH": "AAAAmnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHoSEOH37IeL3TMnozK5iwiOKRUiYGV5SmhjM05sZEVsa0lqb2lkbWxrTFRBeGFtTnRkMmcyYUdVMWQyRjBiVEV5YzJScVpqazRZM2t5WDE4d01XcGpiWGRxYm5Ka2FHMXhhSFJ4YW5GM09YZzNjek5rWlNKOUjzxombBg=="
},
"fairplay_values": {
"AssetID": "vid-01jcmwh6he5watm12sdjf98cy2__01jcmwjnrdhmqhtqjqw9x7s3de",
"KeyHEX": "851691C7970DCEA8228DC78E6754FB96",
"KeyID": "E1F7EC878BDD3327A332B98B088E2915",
"KeyUri": "skd://drmtoday?keyId=e1f7ec878bdd3327a332b98b088e2915"
}
},
"480": {
"widevine_and_playready_values": {
"ContentID": "vid-01jcmwh6he5watm12sdjf98cy2__01jcmwjnrdhmqhtqjqw9x7s3de",
"ServerURL": "https://lic.staging.drmtoday.com/license-proxy-widevine/cenc/?specConform=true",
"LAURL": "https://lic.staging.drmtoday.com/license-proxy-headerauth/drmtoday/RightsManager.asmx",
"KeyHEX": "FEFA498EF873B2BCBEA608ED4A12C978",
"KeyIDHEX": "E1F7EC878BDD3327A332B98B088E2915",
"PSSH": "AAAAmnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHoSEOH37IeL3TMnozK5iwiOKRUiYGV5SmhjM05sZEVsa0lqb2lkbWxrTFRBeGFtTnRkMmcyYUdVMWQyRjBiVEV5YzJScVpqazRZM2t5WDE4d01XcGpiWGRxYm5Ka2FHMXhhSFJ4YW5GM09YZzNjek5rWlNKOUjzxombBg=="
},
"fairplay_values": {
"AssetID": "vid-01jcmwh6he5watm12sdjf98cy2__01jcmwjnrdhmqhtqjqw9x7s3de",
"KeyHEX": "851691C7970DCEA8228DC78E6754FB96",
"KeyID": "E1F7EC878BDD3327A332B98B088E2915",
"KeyUri": "skd://drmtoday?keyId=e1f7ec878bdd3327a332b98b088e2915"
}
},
"720": {
"widevine_and_playready_values": {
"ContentID": "vid-01jcmwh6he5watm12sdjf98cy2__01jcmwjnrdhmqhtqjqw9x7s3de",
"ServerURL": "https://lic.staging.drmtoday.com/license-proxy-widevine/cenc/?specConform=true",
"LAURL": "https://lic.staging.drmtoday.com/license-proxy-headerauth/drmtoday/RightsManager.asmx",
"KeyHEX": "FEFA498EF873B2BCBEA608ED4A12C978",
"KeyIDHEX": "E1F7EC878BDD3327A332B98B088E2915",
"PSSH": "AAAAmnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHoSEOH37IeL3TMnozK5iwiOKRUiYGV5SmhjM05sZEVsa0lqb2lkbWxrTFRBeGFtTnRkMmcyYUdVMWQyRjBiVEV5YzJScVpqazRZM2t5WDE4d01XcGpiWGRxYm5Ka2FHMXhhSFJ4YW5GM09YZzNjek5rWlNKOUjzxombBg=="
},
"fairplay_values": {
"AssetID": "vid-01jcmwh6he5watm12sdjf98cy2__01jcmwjnrdhmqhtqjqw9x7s3de",
"KeyHEX": "851691C7970DCEA8228DC78E6754FB96",
"KeyID": "E1F7EC878BDD3327A332B98B088E2915",
"KeyUri": "skd://drmtoday?keyId=e1f7ec878bdd3327a332b98b088e2915"
}
},
"1080": {
"widevine_and_playready_values": {
"ContentID": "vid-01jcmwh6he5watm12sdjf98cy2__01jcmwjnrdhmqhtqjqw9x7s3de",
"ServerURL": "https://lic.staging.drmtoday.com/license-proxy-widevine/cenc/?specConform=true",
"LAURL": "https://lic.staging.drmtoday.com/license-proxy-headerauth/drmtoday/RightsManager.asmx",
"KeyHEX": "39D72C595597349D980AF9F1A84F52F2",
"KeyIDHEX": "98AFE77E422F3A5E9FF22FE31D0093EE",
"PSSH": "AAAAmnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHoSEJiv535CLzpen/Iv4x0Ak+4iYGV5SmhjM05sZEVsa0lqb2lkbWxrTFRBeGFtTnRkMmcyYUdVMWQyRjBiVEV5YzJScVpqazRZM2t5WDE4d01XcGpiWGRxYm5Ka2FHMXhhSFJ4YW5GM09YZzNjek5rWlNKOUjzxombBg=="
},
"fairplay_values": {
"AssetID": "vid-01jcmwh6he5watm12sdjf98cy2__01jcmwjnrdhmqhtqjqw9x7s3de",
"KeyHEX": "084284FA6C580AA3902B83102D1FC004",
"KeyID": "98AFE77E422F3A5E9FF22FE31D0093EE",
"KeyUri": "skd://drmtoday?keyId=98afe77e422f3a5e9ff22fe31d0093ee"
}
}
}
Response
The response would be an industry standard DASH or HLS specification file. The
response type will be XML for the DASH format and will be text/plain
for HLS
M3U8 format. The response format is determined by the stream_protocol
.