Skip to content
On this page

Hướng dẫn tích hợp packager sử dụng CPIX

1. Giới thiệu

Phần này sẽ giới thiệu về cách thức tích hợp hệ thống Sigma DRM với packager sử dụng CPIX. Dưới đây là thông tin của hệ thống Sigma DRM:

Môi trườngĐịa chỉ máy chủ
Staginghttps://api-staging.sigmadrm.com
Productionhttps://api.sigmadrm.com

2. Thông tin về API

  • Request:

    • Path: /assets/ingest/{:merchantId}/{:appId}
    • Method: POST
    • Headers:
      • content-type: application/xml
      • x-access-token: Trường này sẽ được hệ thống của chúng tôi cấp cho khách hàng
  • Params:

    Tên trườngKiểuMô tả
    merchantIdStringĐịnh danh của khách hàng
    appIdStringĐịnh danh của ứng dụng
  • Body: CPIX Request

  • Response: CPIX Response

3. Thông tin dữ liệu CPIX

3.1. Content Key

3.1.1 Request

xml
<?xml version="1.0"?>
<cpix:CPIX
	xmlns:cpix="urn:dashif:org:cpix"
	xmlns:pskc="urn:ietf:params:xml:ns:keypr
ov:pskc" contentId="test_ch1">
	<cpix:ContentKeyList>
		<cpix:ContentKey kid="af1ed63c-5784-460b-9e51-309dd47b7d9c"></cpix:ContentKey>
	</cpix:ContentKeyList>

</cpix:CPIX>
  • Trong đó:
Tên trườngKiểuMô tả
contentIdStringĐịnh danh của nội dung cần được bảo vệ bởi hệ thống DRM. Trường này phải có chiều dài không quá 64 byte
kidUUIDĐịnh danh của key mã hóa được sử dụng cho nội dung.

3.1.2 Response

xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns4:CPIX
	xmlns="http://www.w3.org/2000/09/xmldsig#"
	xmlns:ns2="urn:ietf:params:xml:
ns:keyprov:pskc"
	xmlns:ns3="http://www.w3.org/2001/04/xmlenc#"
	xmlns:ns4="urn:dashi
f:org:cpix" contentId="test_ch1">
	<ns4:ContentKeyList>
		<ns4:ContentKey kid="af1ed63c-5784-460b-9e51-309dd47b7d9c" explicitIV="IWHTiHncO
dfFwyTP5nUUBQ==">
			<ns4:Data>
				<ns2:Secret>
					<ns2:PlainValue>QB+EqpA72kH82EkBrMaW1A==</ns2:PlainValue>
				</ns2:Secret>
			</ns4:Data>
		</ns4:ContentKey>
	</ns4:ContentKeyList>

</ns4:CPIX>
  • Trong đó:
Tên trườngKiểuMô tả
explicitIVBase64Trường này được sử dụng cho thuật toán mã hóa khi mã hóa nội dung. Trường này chỉ được yêu câu cho FairPlay DRM
PlainValueBase64Trường này là key mã hóa.

3.2 Multi Key

3.2.1 Request

xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cpix:CPIX
	xmlns:cpix="urn:dashif:org:cpix"
	xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" contentId="test_multi_key">
	<cpix:ContentKeyList>
		<cpix:ContentKey kid="4eedd18e-69fd-11eb-9439-0242ac130002"/>
		<cpix:ContentKey kid="a58f1b10-ebad-498f-a3f5-135b4a59b937"/>
		<cpix:ContentKey kid="1db1052e-6a56-43ad-a557-47ad8b6c7800"/>
	</cpix:ContentKeyList>
	<cpix:DRMSystemList>
		<!-- FairPlay HLS -->
		<cpix:DRMSystem kid="4eedd18e-69fd-11eb-9439-0242ac130002" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2"/>
		<cpix:DRMSystem kid="a58f1b10-ebad-498f-a3f5-135b4a59b937" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2"/>
		<cpix:DRMSystem kid="1db1052e-6a56-43ad-a557-47ad8b6c7800" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2"/>
	</cpix:DRMSystemList>
	<cpix:ContentKeyPeriodList>
		<cpix:ContentKeyPeriod id="keyPeriod_9c786af2-f23f-37d2-a7f9-c94aaf3c94fe" index="1609335911"/>
	</cpix:ContentKeyPeriodList>
	<cpix:ContentKeyUsageRuleList>
		<cpix:ContentKeyUsageRule intendedTrackType="SD" kid="4eedd18e-69fd-11eb-9439-0242ac130002">
			<cpix:KeyPeriodFilter periodId="keyPeriod_9c786af2-f23f-37d2-a7f9-c94aaf3c94fe"/>
		</cpix:ContentKeyUsageRule>
		<cpix:ContentKeyUsageRule intendedTrackType="HD" kid="a58f1b10-ebad-498f-a3f5-135b4a59b937">
			<cpix:KeyPeriodFilter periodId="keyPeriod_9c786af2-f23f-37d2-a7f9-c94aaf3c94fe"/>
		</cpix:ContentKeyUsageRule>
		<cpix:ContentKeyUsageRule intendedTrackType="UHD" kid="1db1052e-6a56-43ad-a557-47ad8b6c7800">
			<cpix:KeyPeriodFilter periodId="keyPeriod_9c786af2-f23f-37d2-a7f9-c94aaf3c94fe"/>
		</cpix:ContentKeyUsageRule>
	</cpix:ContentKeyUsageRuleList>
</cpix:CPIX>
  • Trong đó:
Tên trườngKiểuMô tả
intendedTrackTypeStringChỉ ra chất lượng của nội dung sử dụng. Ví dụ: SD, HD, FHD, 2K, 4K

3.2.2 Response

xml
<?xml version='1.0' encoding='UTF-8'?>
<ns4:CPIX
	xmlns="http://www.w3.org/2000/09/xmldsig#"
	xmlns:ns2="urn:ietf:params:xml:
ns:keyprov:pskc"
	xmlns:ns3="http://www.w3.org/2001/04/xmlenc#"
	xmlns:ns4="urn:dashi
f:org:cpix" contentId="test_multi_key" name="test_multi_key">
	<ns4:ContentKeyList>
		<ns4:ContentKey explicitIV="SwFwE5VoUZ5VU0cmutgPlw==" kid="2e46ec53-7cc1-4d6a-91b0-00ceed43d18f">
			<ns4:Data>
				<ns2:Secret>
					<ns2:PlainValue>i/shc0Rr991B6yQ140eDZA==</ns2:PlainValue>
				</ns2:Secret>
			</ns4:Data>
		</ns4:ContentKey>
		<ns4:ContentKey explicitIV="n0PRkLp/mVvOYozyWDiFSg==" kid="30a60932-2d4e-43c1-a9a2-0c2d25ab2a88">
			<ns4:Data>
				<ns2:Secret>
					<ns2:PlainValue>2L7GHPxUIypZqJ1SzB7lWQ==</ns2:PlainValue>
				</ns2:Secret>
			</ns4:Data>
		</ns4:ContentKey>
		<ns4:ContentKey explicitIV="l/CtjfbnKm/BiE/mTUawDQ==" kid="e5fed793-4e8b-472f-a45e-b83d1fe38c99">
			<ns4:Data>
				<ns2:Secret>
					<ns2:PlainValue>SxfD9ulhgUyK+EEZsJaHBg==</ns2:PlainValue>
				</ns2:Secret>
			</ns4:Data>
		</ns4:ContentKey>
	</ns4:ContentKeyList>
	<ns4:DRMSystemList>
		<!-- FairPlay HLS -->
		<ns4:DRMSystem kid="2e46ec53-7cc1-4d6a-91b0-00ceed43d18f" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2">
			<ns4:PSSH>AAAANHBzc2gBAAAAlM6G+wf/T0OtuJPS+paMogAAAAEABf2t38yqAydknX6uxQx3AAAAAA==</ns4:PSSH>
			<ns4:HLSSignalingData playlist="master">Li4u</ns4:HLSSignalingData>
			<ns4:HLSSignalingData playlist="media">Li4u</ns4:HLSSignalingData>
		</ns4:DRMSystem>
		<ns4:DRMSystem kid="30a60932-2d4e-43c1-a9a2-0c2d25ab2a88" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2">
			<ns4:PSSH>AAAANHBzc2gBAAAAlM6G+wf/T0OtuJPS+paMogAAAAEABf2t38yqAydknX6uxQx3AAAAAA==</ns4:PSSH>
			<ns4:HLSSignalingData playlist="master">Li4u</ns4:HLSSignalingData>
			<ns4:HLSSignalingData playlist="media">Li4u</ns4:HLSSignalingData>
		</ns4:DRMSystem>
		<ns4:DRMSystem kid="e5fed793-4e8b-472f-a45e-b83d1fe38c99" systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2">
			<ns4:PSSH>AAAANHBzc2gBAAAAlM6G+wf/T0OtuJPS+paMogAAAAEABf2t38yqAydknX6uxQx3AAAAAA==</ns4:PSSH>
			<ns4:HLSSignalingData playlist="master">Li4u</ns4:HLSSignalingData>
			<ns4:HLSSignalingData playlist="media">Li4u</ns4:HLSSignalingData>
		</ns4:DRMSystem>
	</ns4:DRMSystemList>
	<ns4:ContentKeyPeriodList>
		<ns4:ContentKeyPeriod id="keyPeriod_9c786af2-f23f-37d2-a7f9-c94aaf3c94fe" index="1609335911"/>
	</ns4:ContentKeyPeriodList>
	<ns4:ContentKeyUsageRuleList>
		<ns4:ContentKeyUsageRule intendedTrackType="SD" kid="2e46ec53-7cc1-4d6a-91b0-00ceed43d18f">
			<ns4:KeyPeriodFilter periodId="keyPeriod_9c786af2-f23f-37d2-a7f9-c94aaf3c94fe"/>
		</ns4:ContentKeyUsageRule>
		<ns4:ContentKeyUsageRule intendedTrackType="HD" kid="30a60932-2d4e-43c1-a9a2-0c2d25ab2a88">
			<ns4:KeyPeriodFilter periodId="keyPeriod_9c786af2-f23f-37d2-a7f9-c94aaf3c94fe"/>
		</ns4:ContentKeyUsageRule>
		<ns4:ContentKeyUsageRule intendedTrackType="UHD" kid="e5fed793-4e8b-472f-a45e-b83d1fe38c99">
			<ns4:KeyPeriodFilter periodId="keyPeriod_9c786af2-f23f-37d2-a7f9-c94aaf3c94fe"/>
		</ns4:ContentKeyUsageRule>
	</ns4:ContentKeyUsageRuleList>
</ns4:CPIX

3.3 DRM Signaling

3.3.1 Support DRM System

DRMSYSTEM IDSTREAMING FORMAT
Microsoft PlayReady9a04f079-9840-4286-ab92-e65be0885f95MPEG-DASH, Microsoft Smooth Streaming, HLS-fMP4
Google Widevineedef8ba9-79d6-4ace-a3c8-27dcd51d21edMPEG-DASH, HLS-fMP4
Apple FairPlay94ce86fb-07ff-4f43-adb8-93d2fa968ca2HLS-(sTS/fMP4), Sample-AES

3.3.2 Request

xml
<?xml version="1.0"?>
<cpix:CPIX
	xmlns:cpix="urn:dashif:org:cpix"
	xmlns:pskc="urn:ietf:params:xml:ns:keypr
ov:pskc" contentId="test_ch1">
	<cpix:ContentKeyList>
		<cpix:ContentKey kid="af1ed63c-5784-460b-9e51-309dd47b7d9c"></cpix:ContentKey>
	</cpix:ContentKeyList>
	<cpix:DRMSystemList>
		<cpix:DRMSystem systemId="9a04f079-9840-4286-ab92-e65be0885f95" kid="af1ed63c-5784-460b-9e51-309dd47b7d9c">
			<!-- PlayReady -->
		</cpix:DRMSystem>
		<cpix:DRMSystem systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" kid="af1ed63c-5784-460b-9e51-309dd47b7d9c">
			<!-- Widevine -->
		</cpix:DRMSystem>
		<cpix:DRMSystem systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2" kid="af1ed63c-5784-460b-9e51-309dd47b7d9c">
			<!-- FairPlayStreaming -->
		</cpix:DRMSystem>
	</cpix:DRMSystemList>

</cpix:CPIX>

3.3.3 Response

xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns4:CPIX
	xmlns="http://www.w3.org/2000/09/xmldsig#"
	xmlns:ns2="urn:ietf:params:xml:ns:keyprov:pskc"
	xmlns:ns3="http://www.w3.org/2001/04/xmlenc#"
	xmlns:ns4="urn:dashif:org:cpix" contentId="test_ch1">

	<ns4:DRMSystemList>
		<ns4:DRMSystem systemId="9a04f079-9840-4286-ab92-e65be0885f95" kid="af1ed63c-5784-460b-9e51-309dd47b7d9c">
			<!-- PlayReady -->
			<ns4:PSSH>AAADNnBzc2…</ns4:PSSH>
			<ns4:ContentProtectionData>PGNlbmM6cHN…</ns4:ContentProtectionData>
			<ns4:SmoothStreamingProtectionHeaderData>AgMAAAE…
			</ns4:SmoothStreamingProtectionHeaderData>
		</ns4:DRMSystem>
		<ns4:DRMSystem systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" kid="af1ed63c-5784-460b-9e51-309dd47b7d9c">
			<!-- Widevine -->
			<ns4:PSSH>AAAAa3Bzc2g…</ns4:PSSH>
			<ns4:ContentProtectionData>PGNlbmM6cHN…</ns4:ContentProtectionData>
		</ns4:DRMSystem>
		<ns4:DRMSystem systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2" kid="af1ed63c-5784-460b-9e51-309dd47b7d9c">
			<!-- FairPlayStreaming -->
			<ns4:HLSSignalingData>I0VYVC1YL…</ns4:HLSSignalingData>
		</ns4:DRMSystem>
	</ns4:DRMSystemList>

</ns4:CPIX>

3.3.4 Thông tin cho DRM

Thành phầnCác sử dụng cho Packager
PSSHĐây là thông tin về PSSH, được sử dụng cho việc tạo ra manifest.
SmoothStreamingProtectionHeaderDataNội dung của phần tử ProtectionHeader cần được thêm vào Smooth Streaming manifest chô việc support hệ thống DRM.
Trường này sẽ mô tả về thông tin của key gốc.
Tham khảo: DASH-IF CPIX v2.2 section 6.3. Hierarchical Keys
ContentProtectionDataĐây là nội dung của phần tử ContentProtection cho hệ thống DRM.
HLSSignalingDataĐây là phần thông tin cho các thẻ #EXT-X-KEY hoặc #EXT-X-SESSION-KEY trong HLS playlist.

CHANGE LOG

  • 20/10/2022: Tạo tài liệu CPIX