CPIX
cpix的Python项目详细描述
cpix
用于处理CPIX 2.1(DASH-IF内容保护信息交换)文档的Python库
有关cpix的更多详细信息,请参见:
- 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
支持的功能
- 创建CPIX文档
- 内容键
- 使用规则
- DRM系统
- 分析CPIX文档
- 根据cpix xsd进行验证
尚未实施
- 文档正确性验证(例如,使用规则引用的kid与内容密钥匹配)
不支持
- 不支持加密、解密和签名。
安装
使用pip:
安装pip install cpix
示例
脚本
可与WideVine和PlayReady测试服务器一起使用的示例脚本
获取或创建密钥并生成cpix文档在example
中可用。
简单cpix
用一个键创建一个简单的cpix文档:
importcpixfull_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"))))
然后可以将其打印为格式化的XML文档:
print(str(full_cpix.pretty_print(xml_declaration=True),"utf-8'"))
<?xml version='1.0' encoding='utf-8'?><CPIXxmlns: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><ContentKeykid="0dc3ec4f-7683-548b-81e7-3c64e582e136"><Data><pskc:Secret><pskc:PlainValue>WADwG2qCqkq5TVml+U5PXw==</pskc:PlainValue></pskc:Secret></Data></ContentKey></ContentKeyList><DRMSystemList><DRMSystemkid="0dc3ec4f-7683-548b-81e7-3c64e582e136"systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><PSSH>AAAAxnBzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAINw+xPdoNUi4HnPGTlguE2FEe37S9mVyu9EwbOfPNhDQAAAIISEBRHt+0vZlcrvRMGznzzYQ0SEFrGoR6qL17Vv2aMQByBNMoSEG7hNRbI51h7rp9+zT6Zom4SEPnsEqYaJl1Hj4MzTjp40scSEA3D7E92g1SLgec8ZOWC4TYaDXdpZGV2aW5lX3Rlc3QiEXVuaWZpZWQtc3RyZWFtaW5nSOPclZsG</PSSH></DRMSystem></DRMSystemList></CPIX>