Integrating with other packagers
This document guides you on how to integrate with other packagers
1. Introduction
This section will introduce the solution to generate the encryption key for any video packer. With this solution, the customer will have to build an IngestProxy system like the model shown below.
2. Encryption key delivery flow
2.1 Activity flow
In this flow of activities, include the following components:
- Merchant Packager: Customer's packager system
- Merchant Ingest Key: Client-side key management system.
- Sigma DRM System: Sigma side key management system
2.2 List of APIs
In this API list, we only introduce the communication API between Merchant Ingest Proxy and Sigma DRM System. The communication between the Merchant Packager system and the Merchant Ingest Proxy system, the customer will have to define.
2.2.1 Authorization API
BaseURL:
- Staging: https://api-staging.sigmadrm.com/user/login
- Production: https://api.sigmadrm.com/user/login
Request:
- Type: application/json
- Body:
Field Name Type Description email String Email login to the system. password String Password
Response:
Field Name Type Description uid String User ID accessToken String Token to grant keys
2.2.2 Ingest Key
BaseURL:
Request:
- Type: application/json
- Method: POST
Params:
Field Name Type Description merchantId String Client account id appId String App ID assetId String Asset ID Header:
- x-access-token: Access token obtained after authorization.
Body:
Field Name Type Require Description keyType String Yes One of 2 values "SEED", "KEY" drmScheme String No Encryption Scheme. One of two types: 'MULTI_DRM', 'SIGMA_DRM' streamType String No One of 3 values *'AUDIO', 'VIDEO', 'AUDIO_VIDEO'*. Default value is AUDIO_VIDEO key String Yes if keyType is KEY Hexadecimal string of length 32 characters keySeed String Yes if keyType is SEED Hexadecimal string of length 48 characters keyId String Yes String in GUID format mode String Yes One of 2 values *'LIVE', 'VOD'* allowRoot Bool No Allow the root machine to run or not. Default value is true hdcpLevel Number No Limited HDCP version support:
≤1: disable,
2: hdcp v1.x,
3: hdcp v2.0,
4: hdcp v2.1,
5: hdcp v2.2,
6: hdcp v2.3audioQuality String Yes if Stream type is AUDIO One of the 3 values *'128Kbps'*, '192Kbps', '320Kbps'. Default value is 128Kbps videoResolution String Yes if Stream type is VIDEO/AUDIO_VIDEO One of 6 values 'SD', 'HD', 'FHD', '2K', '4K', '8K' keyExpireTime Number No License expiration time (in minutes) keyRotationTime Number No Key change time (in minutes) protectionScheme String No One of the values: 'cenc', 'cbc1', 'cens', 'cbcs3'. Default value is 'cenc' iv String No Hexadecimal string of length 32 characters Response:
Field Name Type Description merchantId String Customer account id appId String App ID assetId String Asset ID keyId String Key's GUID key String Key as hex string keyExpireTime Number License expiration time (in minutes) keyRotationTime Number Key change time (in minutes) cencResponse Object Information of encryption types Information of cencResponse
json
{
"ec": 10,
"data": {
"merchantId": "d4a43d63-4583-467e-86c3-5567793045f3",
"appId": "5019c1ff-d55f-4e4e-aaa2-206af1ce0506",
"assetId": "live_vtv1",
"keyId": "877c9718-fb23-49f9-9da2-b70d22836e62",
"key": "608a05b7efb034d0a913c21d2dd0e5c4",
"keyExpireTime": 2,
"keyRotationTime": 1,
"cencResponse": {
"systemId": {
"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed": {
"name": "Widevine",
"psshBoxContent": "AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYSEId8lxj7I0n5naK3DSKDbmIaD3RodWRvbXVsdGltZWRpYSIJbGl2ZV92dHYxCAFI49yVmwY="
},
"9A04F079-9840-4286-AB92-E65BE0885F95": {
"name": "PlayReady",
"xmlFragment": "PlayReady XML Fragment",
"psshBoxContent": "VgIAAAEAAQBMAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBHAEoAZAA4AGgAeQBQADcAKwBVAG0AZABvAHIAYwBOAEkAbwBOAHUAWQBnAD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AOgBoAHQAdABwADoALwAvAHMAdABhAGcAaQBuAGcALgBzAGkAZwBtAGEAZAByAG0ALgBjAG8AbQA6ADgAMAA4ADAALwBsAGkAYwBlAG4AcwBlAC8AdgBlAHIAaQBmAHkALwBwAGwAYQB5AHIAZQBhAGQAeQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==",
"checksum": "W74GehiXPso="
},
"fairplay": {
"uri": "skd://staging.sigmadrm.com:8080/license/verify/fairplay?keyId=877c9718-fb23-49f9-9da2-b70d22836e62&assetId=live_vtv1"
},
"sigma": {
"uri": "http://staging.sigmadrm.com:8080/license/verify/sigma?keyId=877c9718-fb23-49f9-9da2-b70d22836e62&assetId=live_vtv1"
}
}
}
}
}