• 沒有找到結果。

SPEKE API v2 - Live workflow method call examples

<cpix:ContentKeyUsageRuleList>

<!-- Rule for video tracks-->

<cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff"

intendedTrackType="VIDEO">

<cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/>

<cpix:VideoFilter />

</cpix:ContentKeyUsageRule>

<!-- Rule for stereo audio tracks-->

<cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02"

intendedTrackType="STEREO_AUDIO">

<cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/>

<cpix:AudioFilter maxChannels="2"/>

</cpix:ContentKeyUsageRule>

<!-- Rule for multichannel audio tracks (3 to 6 channels)-->

<cpix:ContentKeyUsageRule kid="7ae8e96f-309e-42c3-a510-24023d923373"

intendedTrackType="MULTICHANNEL_AUDIO_3_6">

<cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/>

<cpix:AudioFilter minChannels="3" maxChannels="6"/>

</cpix:ContentKeyUsageRule>

<!-- Rule for multichannel audio tracks (7 channels and more)-->

<cpix:ContentKeyUsageRule kid="81eb3761-55ff-4d22-a31d-94f01bbfd8ba"

intendedTrackType="MULTICHANNEL_AUDIO_7">

<cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/>

<cpix:AudioFilter minChannels="7"/>

</cpix:ContentKeyUsageRule>

</cpix:ContentKeyUsageRuleList>

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

SPEKE API v2 - Live workflow method call examples

Name Type Occurs Description

X-Speke-User-Agent String 1..1 String that identifies

the key provider

Content-Type String 1..1 application/xml

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

NoteThe examples in this section do not include content key encryption. For information on how to add content key encryption, see Content key encryption (p. 41).

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">

SPEKE API v2 - Live workflow method call examples <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>

SPEKE API v2 - Live workflow method call examples </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>