{ "info": { "author": "Mark Ogle", "author_email": "mark@unified-streaming.com", "bugtrack_url": null, "classifiers": [], "description": "# cpix\nPython library for working with CPIX 2.1 (DASH-IF Content Protection Information Exchange) documents\n\nFor more details on CPIX see:\n\n* https://dashif.org/guidelines/\n* https://dashif.org/wp-content/uploads/2016/11/DASH-IF-CPIX-v2-0.pdf\n* https://github.com/Dash-Industry-Forum/CPIX/tree/v2.1-communityreview\n\n## Supported features\n\n* Creation of CPIX documents\n* Content keys\n* Usage rules\n* DRM systems\n* Parsing of CPIX documents\n* Validation against CPIX XSD\n\n## Not yet implemented\n\n* Validation of document correctness (e.g. kid referenced by usage rule matches a content key)\n\n## Not supported\n\n* Encryption, decryption and signing are not supported.\n\n## Installation\n\nInstall using [pip](https://pip.pypa.io/):\n\n```\npip install cpix\n```\n\n## Examples\n\n### Scripts\n\nExample scripts which can be used with Widevine and Playready test servers to\nget or create keys and produce CPIX documents are available in `example`.\n\n### Simple CPIX\n\nTo create a simple CPIX document with a single key:\n\n```python\nimport cpix\n\nfull_cpix = cpix.CPIX(\n content_keys=cpix.ContentKeyList(\n cpix.ContentKey(\n kid=\"0DC3EC4F-7683-548B-81E7-3C64E582E136\",\n cek=\"WADwG2qCqkq5TVml+U5PXw==\"\n )\n ),\n drm_systems=cpix.DRMSystemList(\n cpix.DRMSystem(\n kid=\"0DC3EC4F-7683-548B-81E7-3C64E582E136\",\n system_id=\"EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED\",\n pssh=(\"AAAAxnBzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAINw+xPdoNUi4HnPGT\"\n \"lguE2FEe37S9mVyu9EwbOfPNhDQAAAIISEBRHt+0vZlcrvRMGznzzYQ0SEF\"\n \"rGoR6qL17Vv2aMQByBNMoSEG7hNRbI51h7rp9+zT6Zom4SEPnsEqYaJl1Hj\"\n \"4MzTjp40scSEA3D7E92g1SLgec8ZOWC4TYaDXdpZGV2aW5lX3Rlc3QiEXVu\"\n \"aWZpZWQtc3RyZWFtaW5nSOPclZsG\")\n )\n )\n)\n```\n\nThis can then be printed as a formatted XML document:\n\n```python\nprint(str(full_cpix.pretty_print(xml_declaration=True), \"utf-8'\"))\n```\n\n```xml\n\n\n \n \n \n \n WADwG2qCqkq5TVml+U5PXw==\n \n \n \n \n \n \n AAAAxnBzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAINw+xPdoNUi4HnPGTlguE2FEe37S9mVyu9EwbOfPNhDQAAAIISEBRHt+0vZlcrvRMGznzzYQ0SEFrGoR6qL17Vv2aMQByBNMoSEG7hNRbI51h7rp9+zT6Zom4SEPnsEqYaJl1Hj4MzTjp40scSEA3D7E92g1SLgec8ZOWC4TYaDXdpZGV2aW5lX3Rlc3QiEXVuaWZpZWQtc3RyZWFtaW5nSOPclZsG\n \n \n\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/unifiedstreaming/pycpix", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "cpix", "package_url": "https://pypi.org/project/cpix/", "platform": "", "project_url": "https://pypi.org/project/cpix/", "project_urls": { "Homepage": "https://github.com/unifiedstreaming/pycpix" }, "release_url": "https://pypi.org/project/cpix/1.0.8/", "requires_dist": [ "construct (>=2.9.45)", "lxml (>=4.2.3)", "protobuf (>=3.3.0)", "pycryptodome (>=3.6.4)", "requests (>=2.19.1)", "isodate (>=0.6.0)" ], "requires_python": "", "summary": "CPIX", "version": "1.0.8" }, "last_serial": 4419617, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "845484f616beaf5dd2ebce2485e07b47", "sha256": "090e37da5c4e5f9d8677382b6428faba00e8b2ac6a403f0e47daad1a8537deec" }, "downloads": -1, "filename": "cpix-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "845484f616beaf5dd2ebce2485e07b47", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20042, "upload_time": "2018-07-24T09:08:41", "url": "https://files.pythonhosted.org/packages/d3/33/8f44cf149d62731c4a57876b8f2fc13b3a365c2afe3fe4812cbd998bd6cd/cpix-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df6ac8b412f8aaf72f0e0e1f67a943c4", "sha256": "09a62f1285ff3e55cb4804247e1bbe105ca550761f5810bfd17ede1942a590d3" }, "downloads": -1, "filename": "cpix-1.0.0.tar.gz", "has_sig": false, "md5_digest": "df6ac8b412f8aaf72f0e0e1f67a943c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16882, "upload_time": "2018-07-24T09:08:43", "url": "https://files.pythonhosted.org/packages/1b/eb/4676193b2422c389be86b78a4165d7ba9e73e22392658fc16fc13750859f/cpix-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "97bcd9992727ac41e2bebb4227e19fca", "sha256": "5b426d3e00723b8b51de3b70a1229d0832933dd2471bf983018b8afd3696aae0" }, "downloads": -1, "filename": "cpix-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "97bcd9992727ac41e2bebb4227e19fca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21915, "upload_time": "2018-08-08T11:47:24", "url": "https://files.pythonhosted.org/packages/7e/cb/b31a29caa875390c766defeff212731592fc01fb62b690125993875d5183/cpix-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed3dbf25cc15944797afdca2c2e29673", "sha256": "bcde028487497ce2645c41d78aba3199c8eee7a85ac15c0473a7f617e02d8899" }, "downloads": -1, "filename": "cpix-1.0.1.tar.gz", "has_sig": false, "md5_digest": "ed3dbf25cc15944797afdca2c2e29673", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18243, "upload_time": "2018-08-08T11:47:27", "url": "https://files.pythonhosted.org/packages/41/aa/8dc36ab727f47cd0381231875b70e5f827e2c355a538527d5f960c0c2e5c/cpix-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "628f659054695ff473d5cf3f401f1d81", "sha256": "8d0080a467ce8cc0b0046dcba41393aa112bae0c6ec926e9b3488ce8ece1188c" }, "downloads": -1, "filename": "cpix-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "628f659054695ff473d5cf3f401f1d81", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21913, "upload_time": "2018-08-08T14:38:31", "url": "https://files.pythonhosted.org/packages/e5/e3/1c799eb42e0b15331d1eb3c8bed52af9b9ce3a50805162a2ff462138d2ae/cpix-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0b9d91831ddf081a6a964de202aa8d4", "sha256": "50125f5fd5d2fe0b171d6239f5c4051c02ad0515330d3ce4115f7bbba38374d4" }, "downloads": -1, "filename": "cpix-1.0.2.tar.gz", "has_sig": false, "md5_digest": "b0b9d91831ddf081a6a964de202aa8d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18241, "upload_time": "2018-08-08T14:38:34", "url": "https://files.pythonhosted.org/packages/6c/22/b3d3eff92a79ff12dbf58070d32878d7ef275ea750ba4b66a116c213947f/cpix-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "e2d0cf016e7fe429e767624f22c057a2", "sha256": "b52d074e9d9d73e2875037aa5c190465bcba94382636bf339de1a398fa120556" }, "downloads": -1, "filename": "cpix-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e2d0cf016e7fe429e767624f22c057a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21914, "upload_time": "2018-08-08T15:06:02", "url": "https://files.pythonhosted.org/packages/02/6c/a8bdbf0b39693ff865085a1bf0f9cf7f06e375a45c5d22a8e4d6a2729ab9/cpix-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0478b192f96dbbbd12e68d6ab403d7ed", "sha256": "cfb2e7b04e495df2569fc9f5b7afd74870fa27c90c96990b51cbaefd19e8b59d" }, "downloads": -1, "filename": "cpix-1.0.3.tar.gz", "has_sig": false, "md5_digest": "0478b192f96dbbbd12e68d6ab403d7ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18245, "upload_time": "2018-08-08T15:06:07", "url": "https://files.pythonhosted.org/packages/2d/17/483aac539c46cb0022a7fb7bd8e22cd218d67e0e62b76273cd143cdaa432/cpix-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "ae4e3db67a786ba30d9b15fe90cca2d2", "sha256": "24719e0085f0cb1f2bf5be3b4795bd1baab4bba4e4a07d502be57491773ec635" }, "downloads": -1, "filename": "cpix-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ae4e3db67a786ba30d9b15fe90cca2d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22005, "upload_time": "2018-08-09T09:24:49", "url": "https://files.pythonhosted.org/packages/af/c0/047e466382b48802fb34c21682b0d888cd451852e38a4a81a614d4880a5f/cpix-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d703382bebfcb33f1f2a8a09ca14fce", "sha256": "7ab263d960d10de2267b9fb20cd0c41f8c9bfd0d13fbe843ea276feaa697a1e2" }, "downloads": -1, "filename": "cpix-1.0.4.tar.gz", "has_sig": false, "md5_digest": "9d703382bebfcb33f1f2a8a09ca14fce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18328, "upload_time": "2018-08-09T09:24:54", "url": "https://files.pythonhosted.org/packages/f7/d3/cf23571e7c52bdd6be70f9884067e9005961cdfc18f8c5ef091e0bd1758c/cpix-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "d233f7c7189b7fc5e7d28d303560933e", "sha256": "3396a45c2aa14ce28cdc0a8b5862876c32c155eed9dd615ec35f8ccfc483cdc2" }, "downloads": -1, "filename": "cpix-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d233f7c7189b7fc5e7d28d303560933e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22011, "upload_time": "2018-08-10T08:46:51", "url": "https://files.pythonhosted.org/packages/d1/a7/1f3809010d5b552f5ffb0799bacc25a6f2933eb96a8290a426d45e6784c8/cpix-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1f8a96fb5ab21893756a0009908e36d", "sha256": "5e2c14ffcb77ba5fe06008799852e0f4f7c13c705466340b6af416056505d310" }, "downloads": -1, "filename": "cpix-1.0.5.tar.gz", "has_sig": false, "md5_digest": "a1f8a96fb5ab21893756a0009908e36d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18314, "upload_time": "2018-08-10T08:46:56", "url": "https://files.pythonhosted.org/packages/75/c4/03785d5811ba4e004386d116c2eb8b02a3c54baafc9451b471010f54181f/cpix-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "c790858d2009098871d1a5a71bbf6a0e", "sha256": "31a4b1fe011229182ce767b6d81c8e8af3696c4ede03d99ad026283e7fe99d19" }, "downloads": -1, "filename": "cpix-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "c790858d2009098871d1a5a71bbf6a0e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22014, "upload_time": "2018-08-10T09:19:55", "url": "https://files.pythonhosted.org/packages/5a/b7/f7a27dfffed9eced62f41641b9f6d5880f4f23cf1f8fdf5e1a3317fa1fc2/cpix-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5391d008436aa42ab87491405aca7d92", "sha256": "845494b858e6bf25e58c7722474bf4ff7c802cd9d8db905f658ecb46e23fd421" }, "downloads": -1, "filename": "cpix-1.0.6.tar.gz", "has_sig": false, "md5_digest": "5391d008436aa42ab87491405aca7d92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18321, "upload_time": "2018-08-10T09:19:56", "url": "https://files.pythonhosted.org/packages/c6/72/7af4c6a76ad182a5b457a659dbf2c1948c0936d1ccda710dad5c55453ca3/cpix-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "51515da38d497f0033eed6cdcd4add98", "sha256": "ff93cbda396c24db2b88e19be7ed1c3398da2f4e3255cde99d930d38b986c0ef" }, "downloads": -1, "filename": "cpix-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "51515da38d497f0033eed6cdcd4add98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25082, "upload_time": "2018-09-28T14:05:37", "url": "https://files.pythonhosted.org/packages/88/cb/105c1009e59d0b1e238b20a160e14c40fa05cbe3360d4ba7a5a0e89f7c6a/cpix-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d51cc80ce7d587f607ce930b8fb7a2c", "sha256": "0638ea0bd316b4b1997f8143a94a74e751d41ac70d28c404f21180397c20b299" }, "downloads": -1, "filename": "cpix-1.0.7.tar.gz", "has_sig": false, "md5_digest": "4d51cc80ce7d587f607ce930b8fb7a2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20651, "upload_time": "2018-09-28T14:05:47", "url": "https://files.pythonhosted.org/packages/20/37/2d1ae2e23152c5c6101bd04c810ef440891f6744a0baade6b8f952ee9b65/cpix-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "2017da559d6f694bab76e8ff7475c73f", "sha256": "5624286059fbad8c7b50953222d5e332ea1205788be89b79fdb5ff4afdea8ce5" }, "downloads": -1, "filename": "cpix-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2017da559d6f694bab76e8ff7475c73f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25105, "upload_time": "2018-10-26T14:52:00", "url": "https://files.pythonhosted.org/packages/ac/a3/f8393f6e923b53ed064a5ec0ad0d4b4499e59126a001ffdf8e671830e28c/cpix-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db0b2f414fea4a00f72cdfdb335516cd", "sha256": "4c415c3681ad9f004c32c885b1e43e85337223bbda1ad123cf64800e493c237e" }, "downloads": -1, "filename": "cpix-1.0.8.tar.gz", "has_sig": false, "md5_digest": "db0b2f414fea4a00f72cdfdb335516cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20730, "upload_time": "2018-10-26T14:52:04", "url": "https://files.pythonhosted.org/packages/8e/25/d4ccf18c5390640bd584d7964907952f3c97f764b6ab63c3daebdd0c6e2d/cpix-1.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2017da559d6f694bab76e8ff7475c73f", "sha256": "5624286059fbad8c7b50953222d5e332ea1205788be89b79fdb5ff4afdea8ce5" }, "downloads": -1, "filename": "cpix-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2017da559d6f694bab76e8ff7475c73f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25105, "upload_time": "2018-10-26T14:52:00", "url": "https://files.pythonhosted.org/packages/ac/a3/f8393f6e923b53ed064a5ec0ad0d4b4499e59126a001ffdf8e671830e28c/cpix-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db0b2f414fea4a00f72cdfdb335516cd", "sha256": "4c415c3681ad9f004c32c885b1e43e85337223bbda1ad123cf64800e493c237e" }, "downloads": -1, "filename": "cpix-1.0.8.tar.gz", "has_sig": false, "md5_digest": "db0b2f414fea4a00f72cdfdb335516cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20730, "upload_time": "2018-10-26T14:52:04", "url": "https://files.pythonhosted.org/packages/8e/25/d4ccf18c5390640bd584d7964907952f3c97f764b6ab63c3daebdd0c6e2d/cpix-1.0.8.tar.gz" } ] }