{ "info": { "author": "Matt Hammond (British Broadcasting Corporation)", "author_email": "matt.hammond@bbc.co.uk", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Telecommunications Industry", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2.7", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Networking :: Time Synchronization" ], "description": "Python DVB Companion Screen Synchronisation protocol library and tools\n======================================================================\n\n|Build status| |Docs Status (0.5.2)| |Docs Status (latest)| |Latest PyPI\npackage|\n\n- **`How to install <#install-the-code>`__**\n- **`Read the documentation <#read-the-documentation>`__**\n- **`Run the examples <#run-the-examples>`__**\n\n**pydvbcss** is a set of Python 2.7 libraries and command-line tools\nthat implement some of the protocols defined in the DVB CSS\nspecification (published as `ETSI 103-286 part\n2 `__)\nand are used for the \"inter-device synchronisation\" feature in **`HbbTV\n2 `__**. These protocols enable\nsynchronisation of media presentation between a TV and Companion devices\n(mobiles, tablets, etc).\n\nThis library includes simple to use high level abstractions that wrap up\nthe server or client behaviour for each protocol as well as low level\ncode for packing and unpacking messages sent across the protocols. There\nare also objects that work with the rest of the library to represent\nclocks and timelines.\n\nThis code is intended as an informal reference and is suitable for\nbuilding prototypes and testing tools that implement TV (server) or\nCompanion (client) behaviour. It is not considered production ready or\nsuitable for integration into consumer products.\n\nThe code does not implement media playback functionality and this is not\na planned feature.\n\nThe DVB CSS specification was formerly published as `DVB Bluebook\nA167-2 `__. This is\ndeprecated in favour of the `ETSI\nspec `__.\n\nGetting started\n---------------\n\n**pydvbcss** requires\n`ws4py `__ for use in clients\nand servers, and also `cherrypy `__ for server\nimplementations. The steps below describe how to install these.\n\n**pydvbcss** has been developed on Mac OS X 10.10 but has also been used\nsuccessfully on Microsoft Windows 7 and Ubuntu 14.04.\n\nRead the Documentation\n~~~~~~~~~~~~~~~~~~~~~~\n\nThe docs for the library can be read online on readthedocs.org:\n\n- |Docs Status (0.5.2)| `Docs for 0.5.2\n release `__\n\n- |Docs Status (latest)| `Docs for latest commits to master\n release `__\n\nLinks are also available from those pages through to documentation for\nearlier releases.\n\nInstall the code ...\n~~~~~~~~~~~~~~~~~~~~\n\n*On Mac OS X and Linux you may need to run one or more of the commands\nas root.*\n\nUsing PyPi *(core library only, no examples or tools)*\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n- |Latest PyPI package| `See the pydvbcss PyPI package\n page `__.\n\nIf you ONLY want the library (not the `code examples and\ntools <#run-examples>`__ ) and if you don't require the very latest\nbugfixes, then you can install a recent release package from the Python\nPackage Index (PyPI) using\n`pip `__:\n\n::\n\n $ pip install pydvbcss\n\nOr if upgrading from a previous version:\n\n::\n\n $ pip install --upgrade pydvbcss\n\nYou can use ``pip search pydvbcss`` to verify which version is\ninstalled.\n\n *See note in the next section about ``CherryPy`` and ``ws4py``\n dependencies.*\n\nFrom Github or a release tarball *(includes examples and tools)*\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe `master branch `__ is\nthe latest state of the code, including any recent bugfixes. It is\nmostly stable but might have occasional small API changes. `Release\nsnapshots `__ are also\navailable but won't contain the very latest bugfixes or new features.\nBoth of these options include the full code, including\n`examples <#run-examples>`__.\n\nFirst you need to install dependencies...\n\nWe recommend using\n`pip `__ to install\ndependencies from the Python Package Index\n`PyPI `__:\n\n::\n\n $ pip install -r requirements.txt\n\n *NOTE: There have been recent incompatibilities between certain\n versions of ``cherrypy``, ``ws4py`` and ``cheroot``. Therefore,\n ``requirements.txt`` requires specific (older) versions of these\n pacakges. You are welcome to try newer versions installing them\n manually. See `#15 `__\n for background details.*\n\nThen take (or update) your clone of the repository *master* branch, or\ndownload and unzip a snapshot release and run the ``setup.py`` script to\ninstall:\n\n::\n\n $ python setup.py install\n\nThis will install all module packages under 'dvbcss'.\n\nThere is a limited test suite (it only tests certain classes at the\nmoment). Run it via setup.py:\n\n::\n\n $ python setup.py test\n\nThis checks some timing sensitive implementation issues, so ensure you\nare not running any CPU intensive tasks at the time.\n\nRunning the examples and tools\n------------------------------\n\nThere is a set of example and tools demonstrating simple servers and\nclients for the protocols included with the library. See the `quick\nstart\nguide `__ in\nthe documentation to see how to run them.\n\nThe clients are useful tools to test a TV implementation is outputting\nthe correect data.\n\nThe servers can be modified to simulate a TV that is playing content\nwith an ID and timeline(s) that a companion application expects.\n\nExample: checking protocols implemented by a TV\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nStart the content playing on the TV and ensure it is serving the\nprotocols (for HbbTV 2 TVs this requires an HbbTV application to enable\ninter-device synchronisation).\n\nSuppose the TV is serving the CII protocol at the URL\n``ws://192.168.0.57:7681/cii``...\n\nTo check the CII protocol:\n\n::\n\n $ python examples/CIIClient.py ws://192.168.0.57:7681/cii\n\nSuppose that the messages returned report the URL of the TS protocol\nendpoint as being ``ws://192.168.0.57:7681/ts`` and the wall clock\nprotocol as being at ``192.168.0.57`` port ``6677``...\n\nTo check the TV's Wall Clock protocol:\\`\n\n::\n\n $ python examples/WallClockClient.py 192.168.0.57 6677\n\nTo check the TV reporting a PTS timeline (uses both Wall Clock and TS\nprotocols):\n\n::\n\n $ python examples/TSClient.py ws://192.168.0.57:7681/ts \\\n udp://192.168.0.57:6677 \\\n \"\" \\\n \"urn:dvb:css:timeline:pts\" \\\n 9000\n\nSuper-quick introduction to the protocols\n-----------------------------------------\n\nDVB has defined 3 protocols for communicating between a companion and TV\nin order to create synchronised second screen / dual screen / companion\nexperiences (choose whatever term you prefer!) that are implemented\nhere:\n\n- CSS-CII - A WebSockets+JSON protocol that conveys state from the TV,\n such as the ID of the content being shown at the time. It also\n carries the URLs to connect to the other two protocols.\n\n- CSS-WC - A simple UDP protocol (like NTP but simplified) that\n establishes a common shared clock (a \"wall clock\") between the TV and\n companion, compensating for network delays.\n\n- CSS-TS - Another WebSockets+JSON protocol that communicates\n timestamps from TV to Companion that describe the current timeline\n position.\n\nThe TV implements servers for all 3 protocols. The Companion implements\nclients.\n\nThere are other protocols defined in the specification (CSS-TE and\nCSS-MRS) that are not currently implemented by this library.\n\nBuilding the documentation for yourself\n---------------------------------------\n\nYou can also build the documentation yourself. It is written using the\n`sphinx `__ documentation build system.\n\nBuilding the documentation requires\n`sphinx `__ and the sphinx \"read the docs\"\ntheme. The easiest way is using PyPI:\n\n::\n\n $ pip install sphinx\n $ pip install sphinx_rtd_theme\n\nThe ``docs`` directory contains the configuration and main documentation\nsources that descibe the structure. Most of the actual words are in the\ninline docstrings in the source code. These structural pages pull these\nin.\n\nTo build docs in HTML format, either:\n\n::\n\n $ python setup.py build_sphinx\n\nor:\n\n::\n\n $ cd docs\n $ make html\n\nContact and discuss\n-------------------\n\nDiscuss and ask questions on the `pydvbcss google\ngroup `__.\n\nThe original author is Matt Hammond 'at' bbc.co.uk\n\nLicence\n-------\n\nAll code and documentation is licensed under the Apache License v2.0.\n\nContributing\n------------\n\nIf you would like to contribute to this project, see\n`CONTRIBUTING `__ for details.\n\n.. |Build status| image:: https://travis-ci.org/bbc/pydvbcss.svg?branch=0.5.2\n :target: https://travis-ci.org/bbc/pydvbcss\n.. |Docs Status (0.5.2)| image:: https://readthedocs.org/projects/pydvbcss/badge/?version=0.5.2\n :target: http://pydvbcss.readthedocs.io/en/0.5.2/?badge=0.5.2\n.. |Docs Status (latest)| image:: https://readthedocs.org/projects/pydvbcss/badge/?version=latest\n :target: http://pydvbcss.readthedocs.io/en/latest/?badge=latest\n.. |Latest PyPI package| image:: https://img.shields.io/pypi/v/pydvbcss.svg\n :target: https://pypi.python.org/pypi/pydvbcss\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/BBC/pydvbcss", "keywords": "dvb companion synchronisation synchronization second-screen protocol", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "pydvbcss", "package_url": "https://pypi.org/project/pydvbcss/", "platform": "", "project_url": "https://pypi.org/project/pydvbcss/", "project_urls": { "Homepage": "http://github.com/BBC/pydvbcss" }, "release_url": "https://pypi.org/project/pydvbcss/0.5.2/", "requires_dist": null, "requires_python": "", "summary": "pydvbcss is a library implementing DVB \"CSS\" protocols for Companion Screen Synchronisation.", "version": "0.5.2" }, "last_serial": 3584455, "releases": { "0.3.1": [ { "comment_text": "", "digests": { "md5": "aeba9201a8393b16d54a295d26b6a1ef", "sha256": "f873c38049dcd7a77e5c23ae489116f0b4356ee4ebfc41ba1510c0d7caa5e38b" }, "downloads": -1, "filename": "pydvbcss-0.3.1.tar.gz", "has_sig": false, "md5_digest": "aeba9201a8393b16d54a295d26b6a1ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75805, "upload_time": "2015-09-01T23:05:31", "url": "https://files.pythonhosted.org/packages/ae/86/4ea156eb3f0867de35812c9089fda67d09f46a9c420dda0206409f05df80/pydvbcss-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "4c66f67b60916980f1633c48bd6d65f8", "sha256": "64b8cd362d55776745c6eb98622501d24346573d93bdcdbad0804307f8b8d755" }, "downloads": -1, "filename": "pydvbcss-0.3.2.tar.gz", "has_sig": false, "md5_digest": "4c66f67b60916980f1633c48bd6d65f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76234, "upload_time": "2015-12-17T10:26:58", "url": "https://files.pythonhosted.org/packages/5d/9a/beb585e4e224ef34253cd2dd3a63b7da6c521ec5596e2548d329c8645f57/pydvbcss-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "4c3452f9bfac4247ac61e5248d1fce65", "sha256": "20511e2b78bc4c7a7bd0783e67d753eb2ae64d2aa51868a03f4a4a57d35babbe" }, "downloads": -1, "filename": "pydvbcss-0.3.3.tar.gz", "has_sig": false, "md5_digest": "4c3452f9bfac4247ac61e5248d1fce65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76639, "upload_time": "2016-04-20T18:14:53", "url": "https://files.pythonhosted.org/packages/4e/9d/d5ed440281f124bfb7f2ff18dd74287c012c4b7ebbc770bee7ba5461e172/pydvbcss-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "23e1a67ee6e9d034bb2423bee4051fd5", "sha256": "89075508d77bb2baf46f7c2018399af6c3957bd72daa757b4c506b3011a72d6d" }, "downloads": -1, "filename": "pydvbcss-0.4.0.tar.gz", "has_sig": false, "md5_digest": "23e1a67ee6e9d034bb2423bee4051fd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86659, "upload_time": "2016-09-01T13:19:03", "url": "https://files.pythonhosted.org/packages/41/71/becdc408ccb7ebdb440f1485ce0040f67e9b321267079a16439f44aacdb7/pydvbcss-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "98f9ebafc4cc9c16c515039bd804e985", "sha256": "8a1ea0f685beab52c3df0a1b2271ef7c00b2a0785403170cb6254bb2d85f1b02" }, "downloads": -1, "filename": "pydvbcss-0.4.1.tar.gz", "has_sig": false, "md5_digest": "98f9ebafc4cc9c16c515039bd804e985", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88743, "upload_time": "2017-03-09T13:38:17", "url": "https://files.pythonhosted.org/packages/7d/52/fcefd21f81f0e2e9c57c55d5c0db032dc06cd3b5cef5c14a3c797938ae6b/pydvbcss-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "e80d50f7e309ccb1347373491db4b554", "sha256": "2cf8f0e8b356fdd32849210451d3ff33ce400cad04e9106d1af7afe0745f2b1b" }, "downloads": -1, "filename": "pydvbcss-0.5.0.tar.gz", "has_sig": false, "md5_digest": "e80d50f7e309ccb1347373491db4b554", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89906, "upload_time": "2017-11-15T00:32:08", "url": "https://files.pythonhosted.org/packages/62/f5/ba14a11619c10dbed03478f2f3110f63912aab4deeac33c32128229063af/pydvbcss-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "cdbc54f5f331fe34c4c14be2a68fe86a", "sha256": "7c9c21c3b6322399a86e4bf5f4d01637c791ae238ad70cdd46128912ac9f636c" }, "downloads": -1, "filename": "pydvbcss-0.5.1.tar.gz", "has_sig": false, "md5_digest": "cdbc54f5f331fe34c4c14be2a68fe86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90174, "upload_time": "2017-11-24T16:53:06", "url": "https://files.pythonhosted.org/packages/f1/f4/06dc520aa3f0800c5e32d67359c591ca5b2f7f492f46f6a3ac4ace2bcf58/pydvbcss-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "8d34163b6c86588f3351aa38fa267a58", "sha256": "0c113e62047bec720b2631efff222312fb55c3f36b43c7bdafc3193fd50c2d2c" }, "downloads": -1, "filename": "pydvbcss-0.5.2.tar.gz", "has_sig": false, "md5_digest": "8d34163b6c86588f3351aa38fa267a58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90284, "upload_time": "2018-02-15T14:01:39", "url": "https://files.pythonhosted.org/packages/40/ff/c735db4a1ab7ba2de94960634e46dda34f8d95cab05b953ee364ee1c1b32/pydvbcss-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d34163b6c86588f3351aa38fa267a58", "sha256": "0c113e62047bec720b2631efff222312fb55c3f36b43c7bdafc3193fd50c2d2c" }, "downloads": -1, "filename": "pydvbcss-0.5.2.tar.gz", "has_sig": false, "md5_digest": "8d34163b6c86588f3351aa38fa267a58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90284, "upload_time": "2018-02-15T14:01:39", "url": "https://files.pythonhosted.org/packages/40/ff/c735db4a1ab7ba2de94960634e46dda34f8d95cab05b953ee364ee1c1b32/pydvbcss-0.5.2.tar.gz" } ] }