{ "info": { "author": "ktnrg45", "author_email": "ktnrg45@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Python Control for PlayStation 4 consoles.\n==========================================\n\n|BuildStatus| |PypiVersion| |PyPiPythonVersions|\n\nDescription\n--------------------\nA full Python implementation based on the Node.js package, ps4-waker.\nThis is an unofficial API for the PS4 2nd Screen App.\n\n** This module is in beta development and will be re-released under a new name in PYPI at Version 1.0.0. Breaking changes and major code revisions will likely be made until then, to establish and revise the bulk of the framework for this module.\n\nCompatibility\n--------------------\nTested on:\nPython 3.5/3.6/3.7\n\nInstallation\n--------------------\nIt is advised to install the module in a virtual env:\n\n.. code:: bash\n\n python -m venv .\n\n source bin/activate\n\nTo install run:\n\n.. code:: bash\n\n pip install pyps4-2ndscreen\n\nProtocol\n--------------------\nUDP is used to get status updates and retrieve user credentials. TCP is used to send commands to the PS4 Console.\n\nPorts\n--------------------\nPS4 listens on ports 987 (Priveleged) to fetch user PSN credentials.\nMust run command on python path if no access.\n\nExample:\n\n.. code:: bash\n\n sudo setcap 'cap_net_bind_service=+ep' /usr/bin/python3.5\n\nThis is so you do not need sudo/root priveleges to run.\n\nUsage\n=====================\nAPI should be accessed initially like the following examples.\n\nMost functions can be accessed from the high-level PS4 object. You will need to pass in th IP address of your PS4 and your PSN credentials.\n\nThere are several async/asyncio coroutine functions in this module. These functions should be accessed with an Asyncio loop.\n\nThere are two versions of the Ps4 object/class: Ps4() and Ps4Async(). The Ps4Async version is recommended over the legacy Ps4 version which may be deprecated in the future.\nThe difference between the two is that the Ps4() class uses synchronous sockets (socket.socket) while the Ps4Async() class uses asyncio transports and protocols. If using the Async version, a running asyncio event loop is required.\n\nGetting Credentials\n=====================\n\nYour PSN Credentials can be generated by running a CLI command or by using the Python interpreter:\n\nTerminal Command:\n\n.. code:: bash\n\n pyps4-2ndscreen credentials\n\nIf your system does not have setcap utilities your may run the following command:\n\n.. code:: bash\n\n sudo ./bin/pyps4-2ndscreen credentials\n\nor\n\nPython:\n\n.. code:: python\n\n from pyps4_2ndscreen.credential import Credentials\n creds = Credentials()\n\n YourCredentials = creds.start()\n\nThis will start the credential service and will return the credentials for the PSN Account. You will need to get the PS4 Second Screen app for Android or iOS to do this. Once you have logged in with your acccount in the app and started the service, refresh the devices in the app and select the device named 'pyps4-2ndscreen'. \n\nCover Art Issues\n--------------------\nIf you find that media art cannot be found. Please post an issue with your Region, Country, Title of game, an ID of game.\n\nTo Do List:\n--------------------\n- Make PS button command more consistent.\n- Docs\n\n\nCredits:\n--------------------\nThanks to hthiery for writing the underlying socket protocol in Python. https://github.com/hthiery/python-ps4\n\nReferences:\n--------------------\n\n- https://github.com/dsokoloski/ps4-wake\n- https://github.com/dhleong/ps4-waker\n- https://github.com/hthiery/python-ps4\n\n.. _ps4-waker: https://github.com/dhleong/ps4-waker\n\n.. |BuildStatus| image:: https://travis-ci.org/ktnrg45/pyps4-2ndscreen.png?branch=master\n :target: https://travis-ci.org/ktnrg45/pyps4-2ndscreen\n.. |PyPiVersion| image:: https://badge.fury.io/py/pyps4-2ndscreen.svg\n :target: http://badge.fury.io/py/pyps4-2ndscreen\n.. |PyPiPythonVersions| image:: https://img.shields.io/pypi/pyversions/pyps4-2ndscreen.svg\n :alt: Python versions\n :target: http://badge.fury.io/py/pyps4-2ndscreen\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/ktnrg45/pyps4-2ndscreen", "keywords": "playstation sony ps4", "license": "LGPLv2+", "maintainer": "", "maintainer_email": "", "name": "pyps4-2ndscreen", "package_url": "https://pypi.org/project/pyps4-2ndscreen/", "platform": "", "project_url": "https://pypi.org/project/pyps4-2ndscreen/", "project_urls": { "Homepage": "https://github.com/ktnrg45/pyps4-2ndscreen" }, "release_url": "https://pypi.org/project/pyps4-2ndscreen/1.0.1/", "requires_dist": [ "aiohttp (>=3.5.4)", "click (>=7.0)", "construct (>=2.9.45)", "pycryptodomex (>=3.7.2)" ], "requires_python": ">=3.5.3", "summary": "PS4 2nd Screen Python Library", "version": "1.0.1" }, "last_serial": 5922979, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "32d50907e6d0eb1d71dfbf8e9a62089f", "sha256": "e02f1ad3d73944c1a07af3f92b87071ffb23297d9eb74cd45c181ca2dd035523" }, "downloads": -1, "filename": "pyps4_2ndscreen-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "32d50907e6d0eb1d71dfbf8e9a62089f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 38113, "upload_time": "2019-08-21T07:52:36", "url": "https://files.pythonhosted.org/packages/87/56/92dcf00b5fcb57505798962767bd356dd0ef8cdf818828508eddf5d31893/pyps4_2ndscreen-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5986e0a378caf2da850902c9ba213703", "sha256": "6ac25c357629d9485e1f34276d226b2fefe1411766da5bf5ceefea0b54b4b7a3" }, "downloads": -1, "filename": "pyps4_2ndscreen-0.9.0.tar.gz", "has_sig": false, "md5_digest": "5986e0a378caf2da850902c9ba213703", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 23261, "upload_time": "2019-08-21T07:52:38", "url": "https://files.pythonhosted.org/packages/7e/83/dc713b8050c81e5fb9270533050ae0a16a296675fea20541e3d875fc0b47/pyps4_2ndscreen-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "14694ce33b5b0c10d41b7b8cf9811d9e", "sha256": "2ff16b514c7daa5e15a64666800e963d8f030e2be3afe0d77cf0261efbb3b419" }, "downloads": -1, "filename": "pyps4_2ndscreen-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "14694ce33b5b0c10d41b7b8cf9811d9e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 38155, "upload_time": "2019-10-03T07:16:35", "url": "https://files.pythonhosted.org/packages/4e/74/f4bd18c4ef829e7136d571d5991e0adbbef73ab7c7187498bf08a7a18873/pyps4_2ndscreen-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0e403bc9e59bff114b7b061f4fc717e", "sha256": "63c7d9e69e56bf166bce3147d4762ab3a08919a66ab2003d2dac1a7c0ab965c3" }, "downloads": -1, "filename": "pyps4_2ndscreen-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d0e403bc9e59bff114b7b061f4fc717e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 23278, "upload_time": "2019-10-03T07:16:36", "url": "https://files.pythonhosted.org/packages/60/55/91c93f6bf4462e06a3d878fc36e3ca70834938a59b022fd5ef18e19c0f1f/pyps4_2ndscreen-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "4cf556bfc01d887d38759ed6af549bb1", "sha256": "40c922c5eadc1a594d8cbcedcb0e2e2e81b4e31fa53a40b58e5bb3ca1f3828d1" }, "downloads": -1, "filename": "pyps4_2ndscreen-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4cf556bfc01d887d38759ed6af549bb1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 38170, "upload_time": "2019-10-03T11:33:00", "url": "https://files.pythonhosted.org/packages/f7/86/03a1929c62263e47e71e646ab9f95cc04485b170c01159921a31fe0c1bf0/pyps4_2ndscreen-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2610f89642a3d4be38e87aa3661e9d55", "sha256": "9fe838b4ca025da4521b2497e2dd31ce1bf39de6f722d12786032f76983ea6bf" }, "downloads": -1, "filename": "pyps4_2ndscreen-1.0.1.tar.gz", "has_sig": false, "md5_digest": "2610f89642a3d4be38e87aa3661e9d55", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 23272, "upload_time": "2019-10-03T11:33:02", "url": "https://files.pythonhosted.org/packages/a1/34/138802c396982e6106b94bb94b4458cbc0f688973cda51afe490bd95562e/pyps4_2ndscreen-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4cf556bfc01d887d38759ed6af549bb1", "sha256": "40c922c5eadc1a594d8cbcedcb0e2e2e81b4e31fa53a40b58e5bb3ca1f3828d1" }, "downloads": -1, "filename": "pyps4_2ndscreen-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4cf556bfc01d887d38759ed6af549bb1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 38170, "upload_time": "2019-10-03T11:33:00", "url": "https://files.pythonhosted.org/packages/f7/86/03a1929c62263e47e71e646ab9f95cc04485b170c01159921a31fe0c1bf0/pyps4_2ndscreen-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2610f89642a3d4be38e87aa3661e9d55", "sha256": "9fe838b4ca025da4521b2497e2dd31ce1bf39de6f722d12786032f76983ea6bf" }, "downloads": -1, "filename": "pyps4_2ndscreen-1.0.1.tar.gz", "has_sig": false, "md5_digest": "2610f89642a3d4be38e87aa3661e9d55", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 23272, "upload_time": "2019-10-03T11:33:02", "url": "https://files.pythonhosted.org/packages/a1/34/138802c396982e6106b94bb94b4458cbc0f688973cda51afe490bd95562e/pyps4_2ndscreen-1.0.1.tar.gz" } ] }