Mosaic products documentation: Concepts, API Reference, Technical articles, How-to, Downloads and tools

Prepare FPS Content for Axinom DRM

Axinom DRM expects the FairPlay Asset IDs of FPS content to be represented by a UTF-8 string in the format [skd://]<Key ID as GUID string>:<Key IV as 32-character hex string>.

Note
The :[Key IV] part of the Asset ID format is optional. If the IV (A 16-byte initialization vector to encrypt/decrypt clear/encrypted media) is omitted here, it shall be specified in the Entitlement Message. If the IV is specified both in the asset ID and in the Entitlement Message, the value from the Entitlement Message takes precedence.
Note
In the default case, the above Asset ID would correspond to the URI parameter skd://72ea9ec1-abb4-40d8-b3a9-e0bd1833bd58:0123456789ABCDEF0123456789ABCDEF in the HLS playlist. It’s the playback app’s responsibility to ensure that the URI string is converted into an Asset ID with the required format. Refer to the sample implementation.
Note
For Axinom license services the skd:// prefix is optional, however, it is required in the related URI field value in HLS manifests. Also, when a FairPlay player utilizes the modern standard EME (as opposed to the Apple-specific WebKit-prefixed EME), then the skd:// is mandatory in both the manifest and the Asset ID value.
Note
Axinom expects the Asset ID to be represented by a UTF-8 string. When any other encoding is used, the Asset ID may fail to be parsed and an error is returned.

Examples of valid Axinom-compatible Asset IDs:

  1. sdk://72ea9ec1-abb4-40d8-b3a9-e0bd1833bd58:0123456789ABCDEF0123456789ABCDEF

  2. sdk://72ea9ec1-abb4-40d8-b3a9-e0bd1833bd58 (the IV is omitted)

  3. 72ea9ec1-abb4-40d8-b3a9-e0bd1833bd58:0123456789ABCDEF0123456789ABCDEF (the skd:// prefix is omitted)

  4. 72ea9ec1-abb4-40d8-b3a9-e0bd1833bd58 (the skd:// prefix and the IV are omitted)

Key IV defined in the entitlement message

{
    "type": "entitlement_message",
    "version": 2,
    "license": { // (1)
        "start_datetime": "2020-01-01T00:00:00+03:00",
        "expiration_datetime": "2020-01-03T00:00:00+03:00",
        "duration": 3600,
        "allow_persistence": true,
        ...
    },
    "content_keys_source": {
        "inline": [
            {
            "id": "11111111-0000-0000-0000-000000000000",
            "iv": "HYDILKxZnPF0KizuWT0hww==" // (1)
            }
        ]
    }
}

Key IV defined in the manifest file

#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://302f80dd-411e-4886-bca5-bb1f8018a024:77FD1889AAF4143B085548B3C0F95B9A",KEYFORMATVERSIONS="1",KEYFORMAT="com.apple.streamingkeydelivery"

Most players in general can pick this value from the manifest automatically. A sample Fairplay manifest file can be found here.