Skip to main content
Skip table of contents

OTT DRM Signaling

1. Overview

This page details the DRM signalings handled by the SSP Content Key Management services.

It is intended to support OTT integration cases. If several pre-encrypted contents already exist, this documentation will inform weither or not the DRM signaling is already compatible with SSP.

For Post-Delivery in content authorization mode, SSP will always consider the content ID specified in the SSP token to retrieve the keys from the key server.

This mechanism is common to all DRMs.


2. PlayReady DRM Signaling

PlayReady DASH signaling is defined here.

The standard SSP signaling contains the content ID. It is defined in the custom attributes of the PlayReady Header Object.

CODE
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.3.0.0">
	<DATA>
		<PROTECTINFO>
			<KIDS>
				<KID ALGID="AESCTR" CHECKSUM="XdR5ZOIlmSU=" VALUE="mZmZmSIiMzNERBAAFgAAEQ=="> </KID>
			</KIDS>
		</PROTECTINFO>
		<LA_URL>https://BBAND.anycast.nagra.com/BBAND/prls/contentlicenseservice/v1/licenses</LA_URL>
		<LUI_URL>https://BBAND.anycast.nagra.com/BBAND/prls/contentlicenseservice/v1/licenses</LUI_URL>
		<CUSTOMATTRIBUTES>
			<nv:ContentId xmlns:nv="urn:schema-ssp-nagra-com">Content_01</nv:ContentId>
		</CUSTOMATTRIBUTES>
	</DATA>
</WRMHEADER>

The content ID in the signaling is optional, when absent only the value present in the SSP token is taken into consideration.


3. Widevine DRM Signaling

Widevine DASH signaling is defined here. (A Widevine licence agreement is required to access this document – see this page for details.)

Widevine HLS signaling is defined here.

SSP supports three Widevine PSSH formats :

  1. Containing the key IDs and the content ID - Standard SSP.

    1. CODE
      {"keyIds":["U9tVJT1DRs6QH5L/PJ/lAQ=="],"contentId":"Q29udGVudF8wMQ=="}

  2. Containing the key IDs only.

    1. CODE
      {"keyIds":["U9tVJT1DRs6QH5L/PJ/lAQ=="]}

  3. Containing the content ID only, in a UUID format.

    1. CODE
      {"contentId":"MTBmZjlhMzEtMTBiZC00ODgwLWIyMzEtZmZkZjg0ZGNhOGMy"}
      1. The key ID will be generated based on the content ID, in this case :

        1. CODE
          {"KeyId":"10ff9a31-10bd-4880-b231-ffdf84dca8c2"}

  4. Containing the content ID only, clear value in any format.

    1. CODE
      {"contentId":"c3BpZGVyLW1hbi0x"}
      1. In this case, the key ID must be specified in the SSP token.


4. FairPlay DRM Signaling

4.1. Standard SSP FairPlay DRM Signaling

FairPlay HLS signaling is defined as part of the FPS SDK downloadable here.

The standard SSP asset ID is a Json string containing ContentIdKeyId and IV (IV is optional), encoded in base64.

Example :

CODE
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://eyAiQ29udGVudElkIjoiR29uZSB3aXRoIHRoZSBXaW5kIiwgIktleUlkIjoiOTFhMWU0NDctNjg0Yi00YWNlLWI2Y2UtNDAxMTYwZjA3ZjAxIiwgIklWIjoiRWo1RloraWJFdE9rVmtKbVZVUUFBQT09IiB9",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"

Asset ID in clear format :

CODE
{
	"ContentId": "Gone with the Wind",
	"KeyId": "91a1e447-684b-4ace-b6ce-401160f07f01",
	"IV": "Ej5FZ+ibEtOkVkJmVUQAAA=="
}

4.2. Full list of supported FairPlay asset IDs

SSP supports five formats of asset IDs to facilitate the integration with our system :

  1. A string starting with "skd://" and followed by the json string, encoded in base64 - Standard SSP

    1. CODE
      #EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://eyJDb250ZW50SWQiOiJhYmMiLCAiS2V5SWQiOiIxMGZmOWEzMS0xMGJkLTQ4ODAtYjIzMS1mZmRmODRkY2E4YzIiLCAiSVYiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT0ifQ==",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"

  2. A string starting with "skd://" and followed by the key ID, not encoded.

    1. CODE
      #EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://0f3ce999-4be0-4780-b144-daa8b3ce6a17",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"

  3. A string starting with "skd://" and followed by the key ID, not encoded and without dashes.

    1. CODE
      #EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://10ff9a3110bd4880b231ffdf84dca8c2",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
      1. The key ID with dashes is generated by the license server, in this case :

        1. CODE
          {"KeyId":"10ff9a31-10bd-4880-b231-ffdf84dca8c2"}


5. PRM DRM Signaling

PRM DASH and HLS signaling is defined in  PRM-Signaling_IRS.pdf.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.