CPIX
Project description
cpix
Python library for working with CPIX 2.1 (DASH-IF Content Protection Information Exchange) documents
For more details on CPIX see:
- https://dashif.org/guidelines/
- https://dashif.org/wp-content/uploads/2016/11/DASH-IF-CPIX-v2-0.pdf
- https://github.com/Dash-Industry-Forum/CPIX/tree/v2.1-communityreview
Supported features
- Creation of CPIX documents
- Content keys
- Usage rules
- DRM systems
- Parsing of CPIX documents
- Validation against CPIX XSD
Not yet implemented
- Validation of document correctness (e.g. kid referenced by usage rule matches a content key)
Not supported
- Encryption, decryption and signing are not supported.
Installation
Install using pip:
pip install cpix
Examples
Scripts
Example scripts which can be used with Widevine and Playready test servers to
get or create keys and produce CPIX documents are available in example
.
Simple CPIX
To create a simple CPIX document with a single key:
import cpix
full_cpix = cpix.CPIX(
content_keys=cpix.ContentKeyList(
cpix.ContentKey(
kid="0DC3EC4F-7683-548B-81E7-3C64E582E136",
cek="WADwG2qCqkq5TVml+U5PXw=="
)
),
drm_systems=cpix.DRMSystemList(
cpix.DRMSystem(
kid="0DC3EC4F-7683-548B-81E7-3C64E582E136",
system_id="EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED",
pssh=("AAAAxnBzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAINw+xPdoNUi4HnPGT"
"lguE2FEe37S9mVyu9EwbOfPNhDQAAAIISEBRHt+0vZlcrvRMGznzzYQ0SEF"
"rGoR6qL17Vv2aMQByBNMoSEG7hNRbI51h7rp9+zT6Zom4SEPnsEqYaJl1Hj"
"4MzTjp40scSEA3D7E92g1SLgec8ZOWC4TYaDXdpZGV2aW5lX3Rlc3QiEXVu"
"aWZpZWQtc3RyZWFtaW5nSOPclZsG")
)
)
)
This can then be printed as a formatted XML document:
print(str(full_cpix.pretty_print(xml_declaration=True), "utf-8'"))
<?xml version='1.0' encoding='utf-8'?>
<CPIX xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:dashif:org:cpix" xsi:schemaLocation="urn:dashif:org:cpix cpix.xsd">
<ContentKeyList>
<ContentKey kid="0dc3ec4f-7683-548b-81e7-3c64e582e136">
<Data>
<pskc:Secret>
<pskc:PlainValue>WADwG2qCqkq5TVml+U5PXw==</pskc:PlainValue>
</pskc:Secret>
</Data>
</ContentKey>
</ContentKeyList>
<DRMSystemList>
<DRMSystem kid="0dc3ec4f-7683-548b-81e7-3c64e582e136" systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
<PSSH>AAAAxnBzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAINw+xPdoNUi4HnPGTlguE2FEe37S9mVyu9EwbOfPNhDQAAAIISEBRHt+0vZlcrvRMGznzzYQ0SEFrGoR6qL17Vv2aMQByBNMoSEG7hNRbI51h7rp9+zT6Zom4SEPnsEqYaJl1Hj4MzTjp40scSEA3D7E92g1SLgec8ZOWC4TYaDXdpZGV2aW5lX3Rlc3QiEXVuaWZpZWQtc3RyZWFtaW5nSOPclZsG</PSSH>
</DRMSystem>
</DRMSystemList>
</CPIX>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cpix-1.0.8.tar.gz
(20.7 kB
view details)
Built Distribution
cpix-1.0.8-py3-none-any.whl
(25.1 kB
view details)
File details
Details for the file cpix-1.0.8.tar.gz
.
File metadata
- Download URL: cpix-1.0.8.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c415c3681ad9f004c32c885b1e43e85337223bbda1ad123cf64800e493c237e |
|
MD5 | db0b2f414fea4a00f72cdfdb335516cd |
|
BLAKE2b-256 | 8e25d4ccf18c5390640bd584d7964907952f3c97f764b6ab63c3daebdd0c6e2d |
File details
Details for the file cpix-1.0.8-py3-none-any.whl
.
File metadata
- Download URL: cpix-1.0.8-py3-none-any.whl
- Upload date:
- Size: 25.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5624286059fbad8c7b50953222d5e332ea1205788be89b79fdb5ff4afdea8ce5 |
|
MD5 | 2017da559d6f694bab76e8ff7475c73f |
|
BLAKE2b-256 | aca3f8393f6e923b53ed064a5ec0ad0d4b4499e59126a001ffdf8e671830e28c |