SPEKE API v2 - Live workflow method call examples - Secure Packager and Encoder Key Exchange API Specification

SPEKE API v2 - Live workflow method call examples

Request Syntax Example

The following URL is an example and does not indicate a fixed format:

POST https://speke-compatible-server/speke/v2.0/copyProtection

Request Body

A CPIX document.

Request Headers

Name Type Occurs Description

AWS Authorization

String

1..1

See AWS Sigv4

X-Amz-Security-Token

String

1..1

See AWS Sigv4

X-Amz-Date

String

1..1

See AWS Sigv4

Content-Type

String

1..1

application/xml

X-Speke-Version

String

1..1

SPEKE API version used with the request, formulated as MajorVersion.MinorVersion, like '2.0' for SPEKE v2.0

Response Headers

Name Type Occurs Description

X-Speke-User-Agent

String

1..1

String that identifies the key provider

Content-Type

String

1..1

application/xml

X-Speke-Version

String

1..1

SPEKE API version used with the request, formulated as MajorVersion.MinorVersion, like '2.0' for SPEKE v2.0

Request Response

HTTP CODE Payload Name Occurs Description

200 (Success)

CPIX

1..1

DASH-CPIX payload response

4XX (Client error)

Client error message

1..1

Description of the client error

5XX (Server error)

Server error message

1..1

Description of the server error

Note

The examples in this section do not include content key encryption. For information on how to add content key encryption, see Content key encryption.

Live Example Request Payload with Keys in the Clear

The following example shows a typical live request payload from the encryptor to the DRM key provider, with one content key for all video tracks and one content key for all audio tracks:

<cpix:CPIX contentId="abc123" version="2.3" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"> <cpix:ContentKeyList> <cpix:ContentKey explicitIV="OFj2IjCsPJFfMAxmQxLGPw==" kid="98ee5596-cd3e-a20d-163a-e382420c6eff" commonEncryptionScheme="cbcs"></cpix:ContentKey> <cpix:ContentKey explicitIV="L6jzdXrXAFbCJGBuMrrKrG==" kid="53abdba2-f210-43cb-bc90-f18f9a890a02" commonEncryptionScheme="cbcs"></cpix:ContentKey> </cpix:ContentKeyList> <cpix:DRMSystemList> <!-- FairPlay --> <cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2"> <cpix:HLSSignalingData playlist="media"></cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master"></cpix:HLSSignalingData> </cpix:DRMSystem> <cpix:DRMSystem kid="53abdba2-f210-43cb-bc90-f18f9a890a02" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2"> <cpix:HLSSignalingData playlist="media"></cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master"></cpix:HLSSignalingData> </cpix:DRMSystem> <!-- Widevine --> <cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"> <cpix:HLSSignalingData playlist="media"></cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master"></cpix:HLSSignalingData> <cpix:ContentProtectionData></cpix:ContentProtectionData> <cpix:PSSH></cpix:PSSH> </cpix:DRMSystem> <cpix:DRMSystem kid="53abdba2-f210-43cb-bc90-f18f9a890a02" systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"> <cpix:HLSSignalingData playlist="media"></cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master"></cpix:HLSSignalingData> <cpix:ContentProtectionData></cpix:ContentProtectionData> <cpix:PSSH></cpix:PSSH> </cpix:DRMSystem> <!-- Playready --> <cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="9a04f079-9840-4286-ab92-e65be0885f95"> <cpix:HLSSignalingData playlist="media"></cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master"></cpix:HLSSignalingData> <cpix:ContentProtectionData></cpix:ContentProtectionData> <cpix:PSSH></cpix:PSSH> <cpix:SmoothStreamingProtectionHeaderData></cpix:SmoothStreamingProtectionHeaderData> </cpix:DRMSystem> <cpix:DRMSystem kid="53abdba2-f210-43cb-bc90-f18f9a890a02" systemId="9a04f079-9840-4286-ab92-e65be0885f95"> <cpix:HLSSignalingData playlist="media"></cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master"></cpix:HLSSignalingData> <cpix:ContentProtectionData></cpix:ContentProtectionData> <cpix:PSSH></cpix:PSSH> <cpix:SmoothStreamingProtectionHeaderData></cpix:SmoothStreamingProtectionHeaderData> </cpix:DRMSystem> </cpix:DRMSystemList> <cpix:ContentKeyPeriodList> <cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" /> </cpix:ContentKeyPeriodList> <cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList> </cpix:CPIX>

Live Example Response Payload with Keys in the Clear

The following example shows a typical response payload from the DRM key provider (returned values have been shortened with […​] for readability):

<cpix:CPIX contentId="abc123" version="2.3" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"> <cpix:ContentKeyList> <cpix:ContentKey explicitIV="OFj2IjCsPJFfMAxmQxLGPw==" kid="98ee5596-cd3e-a20d-163a-e382420c6eff" commonEncryptionScheme="cbcs"> <cpix:Data> <pskc:Secret> <pskc:PlainValue>5dGAgwGuUYu4dHeHtNlxJw==</pskc:PlainValue> </pskc:Secret> </cpix:Data> </cpix:ContentKey> <cpix:ContentKey explicitIV="L6jzdXrXAFbCJGBuMrrKrG==" kid="53abdba2-f210-43cb-bc90-f18f9a890a02" commonEncryptionScheme="cbcs"> <cpix:Data> <pskc:Secret> <pskc:PlainValue>h3toSFIlyAYpfXVQ795m6x==</pskc:PlainValue> </pskc:Secret> </cpix:Data> </cpix:ContentKey> </cpix:ContentKeyList> <cpix:DRMSystemList> <!-- FairPlay --> <cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2"> <cpix:HLSSignalingData playlist="media">aHR0cHM6L[...]WZm</cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master">Y29tLmFwc[...]XJ5</cpix:HLSSignalingData> </cpix:DRMSystem> <cpix:DRMSystem kid="53abdba2-f210-43cb-bc90-f18f9a890a02" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2"> <cpix:HLSSignalingData playlist="media">trBAnbMcj[...]u44</cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master">mn626PjyR[...]2fi</cpix:HLSSignalingData> </cpix:DRMSystem> <!-- Widevine --> <cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"> <cpix:HLSSignalingData playlist="media">Ifa2V5LWl[...]nNB</cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master">oIARIQeSI[...]Nd2l</cpix:HLSSignalingData> <cpix:ContentProtectionData>RoNd2lkZXZ[...]Nib</cpix:ContentProtectionData> <cpix:PSSH>AAAAanBzc[...]A==</cpix:PSSH> </cpix:DRMSystem> <cpix:DRMSystem kid="53abdba2-f210-43cb-bc90-f18f9a890a02" systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"> <cpix:HLSSignalingData playlist="media">lTznjvtzL[...]GfJ</cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master">XgzdzQH7p[...]zeX</cpix:HLSSignalingData> <cpix:ContentProtectionData>TdgRnuJsZ[...]wDw</cpix:ContentProtectionData> <cpix:PSSH>mYZbjpWdS[...]D==</cpix:PSSH> </cpix:DRMSystem> <!-- Playready --> <cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="9a04f079-9840-4286-ab92-e65be0885f95"> <cpix:HLSSignalingData playlist="media">HicXmbZ2m[...]4==</cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master">GVzdCIfa2[...]Eta</cpix:HLSSignalingData> <cpix:ContentProtectionData>t7WwH24FI[...]YCC</cpix:ContentProtectionData> <cpix:PSSH>FFFFanBzc[...]A==</cpix:PSSH> <cpix:SmoothStreamingProtectionHeaderData>s5RrJ12HL[...]UBB</cpix:SmoothStreamingProtectionHeaderData> </cpix:DRMSystem> <cpix:DRMSystem kid="53abdba2-f210-43cb-bc90-f18f9a890a02" systemId="9a04f079-9840-4286-ab92-e65be0885f95"> <cpix:HLSSignalingData playlist="media">BptGzwis2[...]Iej</cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master">3c9SXdVa0[...]MBH</cpix:HLSSignalingData> <cpix:ContentProtectionData>HotJCMQyc[...]GpU</cpix:ContentProtectionData> <cpix:PSSH>S6UD43ybN[...]f==</cpix:PSSH> <cpix:SmoothStreamingProtectionHeaderData>VBFUv2or0[...]JeP</cpix:SmoothStreamingProtectionHeaderData> </cpix:DRMSystem> </cpix:DRMSystemList> <cpix:ContentKeyPeriodList> <cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" /> </cpix:ContentKeyPeriodList> <cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList> </cpix:CPIX>