Skip to content
On this page

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

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

  • Response:

    Field NameTypeDescription
    uidStringUser ID
    accessTokenStringToken to grant keys

2.2.2 Ingest Key

  • BaseURL:

  • Request:

    • Type: application/json
    • Method: POST
  • Params:

    Field NameTypeDescription
    merchantIdStringClient account id
    appIdStringApp ID
    assetIdStringAsset ID
  • Header:

    • x-access-token: Access token obtained after authorization.
  • Body:

    Field NameTypeRequireDescription
    keyTypeStringYesOne of 2 values ​​"SEED", "KEY"
    drmSchemeStringNoEncryption Scheme. One of two types: 'MULTI_DRM', 'SIGMA_DRM'
    streamTypeStringNoOne of 3 values ​​*'AUDIO', 'VIDEO', 'AUDIO_VIDEO'*. Default value is AUDIO_VIDEO
    keyStringYes if keyType is KEYHexadecimal string of length 32 characters
    keySeedStringYes if keyType is SEEDHexadecimal string of length 48 characters
    keyIdStringYesString in GUID format
    modeStringYesOne of 2 values ​​*'LIVE', 'VOD'*
    allowRootBoolNoAllow the root machine to run or not. Default value is true
    hdcpLevelNumberNoLimited HDCP version support:
    ≤1: disable,
    2: hdcp v1.x,
    3: hdcp v2.0,
    4: hdcp v2.1,
    5: hdcp v2.2,
    6: hdcp v2.3
    audioQualityStringYes if Stream type is AUDIOOne of the 3 values ​​*'128Kbps'*, '192Kbps', '320Kbps'. Default value is 128Kbps
    videoResolutionStringYes if Stream type is VIDEO/AUDIO_VIDEOOne of 6 values 'SD', 'HD', 'FHD', '2K', '4K', '8K'
    keyExpireTimeNumberNoLicense expiration time (in minutes)
    keyRotationTimeNumberNoKey change time (in minutes)
    protectionSchemeStringNoOne of the values: 'cenc', 'cbc1', 'cens', 'cbcs3'. Default value is 'cenc'
    ivStringNoHexadecimal string of length 32 characters
  • Response:

    Field NameTypeDescription
    merchantIdStringCustomer account id
    appIdStringApp ID
    assetIdStringAsset ID
    keyIdStringKey's GUID
    keyStringKey as hex string
    keyExpireTimeNumberLicense expiration time (in minutes)
    keyRotationTimeNumberKey change time (in minutes)
    cencResponseObjectInformation 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"
        }
      }
    }
  }
}