

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SPEKE API v2 - 標準ペイロードコンポーネント
<a name="standard-payload-components-v2"></a>

1 回の SPEKE 要求により、エンクリプタは特定のコンテンツに対して定義された暗号化契約に従って、複数のコンテンツキーを、複数のパッケージ形式に必要なマニフェストシグナリングとともにリクエストすることができます。

これらすべての側面をカバーするために、標準の CPIX ドキュメントは、3 つの必須リストセクションと、ライブコンテンツのキーローテーションのためのオプションのリストセクションで構成されています。

**<cpix:ContentKeyList> セクションとトップレベルの <cpix:CPIX> 要素**  
これは、ライブストリーミングと VOD ストリーミングの両方に関連した必須セクションで、エンクリプタで使用する必要があるさまざまなコンテンツキーを定義します。`<cpix:ContentKeyList>` 要素には 1 つまたは複数の `<cpix:ContentKey>` 子要素を含めることができます。それぞれの要素は個別のコンテンツキーについて記述します。

CPIX 仕様に従って、`ContentKey@commonEncryptionScheme` 属性に使用できる値は、ISO ベースメディアファイル形式ファイルの一般的な暗号化の仕様 (ISO/IEC 23001-7:2016) で定義されています。
+ 'cenc': AES-CTR モードのフルサンプルとビデオ NAL サブサンプル暗号化
+ 'cbc1': AES-CBC モードのフルサンプルとビデオ NAL サブサンプル暗号化
+ 'cens': AES-CTR モードの部分的なビデオ NAL パターン暗号化
+ 'cbcs': AES-CBC モードの部分的なビデオ NAL パターン暗号化

次の例は、暗号化されていない単一のコンテンツキーを持つ CPIX ドキュメントを示しています。

```
<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:ContentKeyList>
	...
</cpix:CPIX>
```

デフォルトでは、以下の例のように、コンテンツキーは暗号化されません。ただし、コンテンツキーの暗号化は、<cpix:DeliveryDataList> 要素を含めることにより、エンクリプタによってリクエストすることができます。詳細については、コンテンツキーの暗号化のセクションを参照してください。


| SPEKE でサポートされる要素 | 必須属性 | オプションの属性 | 必須の子要素 | オプションの子要素 | 
| --- | --- | --- | --- | --- | 
|  <cpix:CPIX>  |  contentId、version、xmlns:cpix、xmlns:pskc  |  name、xmlns:enc  |  1 つの <cpix:ContentKeyList>、1 つの <cpix:DRMSystemList>、1 つの <cpix:ContentKeyUsageRuleList>  |  1 つの <cpix:DeliveryDataList>、1 つの <cpix:ContentKeyPeriodList>  | 
|  <cpix:ContentKeyList>  |  -  |  id  |  少なくとも 1 つの <cpix:ContentKey>  |  -  | 
|  <cpix:ContentKey>  |  kid、commonEncryptionScheme、Data  |  id、Algorithm、explicitIV  |  1 つの <pskc:Secret>  |  -  | 
|  <pskc:Secret>  |  PlainValue または EncryptedValue  |  ValueMAC  |  -  |  <enc:EncryptionMethod>、<enc:CipherData>  | 

**<cpix:DRMSystemList> セクション**  
これは、ライブストリーミングと VOD ストリーミングの両方に関連した必須セクションで、コンテンツキーとともに使用する必要があるさまざまな DRM システムを定義します。

次の例は、単一の PlayReady DRM システム仕様を持つ DRM システムリストを示しています。

```
<cpix:DRMSystemList>
	<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">HicXmbZ2m[...]jEi</cpix:HLSSignalingData>
		<cpix:ContentProtectionData>t7WwH24FI[...]YCC</cpix:ContentProtectionData>
		<cpix:PSSH>FFFFanBzc[...]A==</cpix:PSSH>
		<cpix:SmoothStreamingProtectionHeaderData>s5RrJ12HL[...]UBB</cpix:SmoothStreamingProtectionHeaderData>
	</cpix:DRMSystem>
</cpix:DRMSystemList>
```

DRM SystemID の完全なリストについては、DASH-IF 識別子リポジトリの[コンテンツ保護](https://dashif.org/identifiers/content_protection/)セクションを参照してください。


| SPEKE でサポートされる要素 | 必須属性 | オプションの属性 | 必須の子要素 | オプションの子要素 | 
| --- | --- | --- | --- | --- | 
|  <cpix:DRMSystemList>  |  -  |  id  |  少なくとも 1 つの <cpix:DRMSystem>  |  -  | 
|  <cpix:DRMSystem>  |  kid、systemId  |  id、name、PSSH  |  -  |  ContentProtectionData、SmoothStreamingProtectionHeaderData、プレイリストの属性値が異なる 2 つの <cpix:HLSSignalingData> 要素  | 

 ISO-BMFF カプセル化がメディアセグメントに適用されている場合、`DRMSystem@PSSH` は必須です。`DRMSystem.ContentProtectionData` innerXML `<pssh>` 要素は、マニフェストシグナリングの目的でのみ、エンクリプタによって利用されます。

`DRMSystem@PSSH` が存在し、`DRMSystem.ContentProtectionData` に innerXML `<pssh>` 要素が含まれている場合、両方の値は同じでなければなりません。

`DRMSystem` シグナリングが HLS マニフェストで伝送される場合、CPIX リクエストとレスポンスには、`<cpix:HLSSignalingData playlist="media">` 要素と `<cpix:HLSSignalingData playlist="master">` 要素の両方が含まれている必要があります。

**<cpix:ContentKeyPeriodList> セクション**  
これは、ライブストリーミングにのみ関連するオプションのセクションで、コンテンツに適用される暗号化期間を定義します。

`<cpix:ContentKeyPeriodList>` 要素には 1 つまたは複数の `<cpix:ContentKeyPeriod>` 子要素を含めることができます。それぞれの要素はライブタイムラインの個別の暗号化期間について記述します。id 属性の値の一部として UUID を使用することは、一般的に使用されるアプローチです。

```
<cpix:ContentKeyPeriodList>
	<cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" />
</cpix:ContentKeyPeriodList>
```


| SPEKE でサポートされる要素 | 必須属性 | オプションの属性 | 必須の子要素 | オプションの子要素 | 
| --- | --- | --- | --- | --- | 
|  <cpix:ContentKeyPeriodList>  |  -  |  id  |  少なくとも 1 つの <cpix:ContentKeyPeriod>  |  -  | 
|  <cpix:ContentKeyPeriod>  |  id、index  |  -  |  -  |  -  | 

暗号化期間を使用する場合は、次のセクションに示すように、CPIX ドキュメント内のいずれかの暗号化期間に暗号化キーをアタッチする必要があります。

**<cpix:ContentKeyUsageRuleList> セクション**  
これは、ライブストリーミングと VOD ストリーミングの両方に関連する必須セクションであり、暗号化期間にわたってストリームセット内でさまざまなコンテンツキーがトラックを保護する方法を定義します。

<cpix:ContentKeyUsageRuleList> 要素には、1 つ以上の <cpix:ContentKeyUsageRule> 子要素を含めることができます。それぞれの子要素は、特定の暗号化期間中に、指定されたコンテンツキーがエンクリプタによって適用される可能性のあるトラックについて記述します。<cpix:ContentKeyUsageRule> 要素には、1 つ以上の <cpix:AudioFilter> 要素または 1 つの <cpix:VideoFilter> 要素が存在する必要があります。

次の例は、特定の暗号化期間中にすべてのオーディオトラックとビデオトラックに 1 つのコンテンツキーを適用するというルールのみを含む単純なリストを示しています。

```
<cpix:ContentKeyUsageRuleList>
	<cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="ALL">
		<cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/>
		<cpix:AudioFilter />
		<cpix:VideoFilter />
	</cpix:ContentKeyUsageRule>
</cpix:ContentKeyUsageRuleList>
```


| SPEKE でサポートされる要素 | 必須属性 | オプションの属性 | 必須の子要素 | オプションの子要素 | 
| --- | --- | --- | --- | --- | 
|  <cpix:ContentKeyUsageRuleList>  |  -  |  id  |  少なくとも 1 つの <cpix:ContentKeyUsageRule>  |  -  | 
|  <cpix:ContentKeyUsageRule>  |  kid、intendedTrackType  |  -  |  少なくとも 1 つの <cpix:AudioFilter> または 1 つの <cpix:VideoFilter> (\$1)  |  <cpix:KeyPeriodFilter>  | 
|  <cpix:KeyPeriodFilter>  |  periodId  |  -  |  -  |  -  | 
|  <cpix:AudioFilter>  |  -  |  minChannels、maxChannels  |  -  |  -  | 
|  <cpix:VideoFilter>  |  -  |  minPixels、maxPixels、hdr、minFps、maxFps  |  -  |  -  | 

 *(\$1) ストリームセット内の 1 つまたは複数のトラックを保護するために単一または複数のコンテンツキーを使用することに関する詳細な説明については、ドキュメントの[暗号化契約](encryption-contract-v2.md)セクションを参照してください。\$1* 