{ "info": { "author": "Pierre St\u00e5hl", "author_email": "pierre.staahl@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Home Automation", "Topic :: Software Development :: Libraries" ], "description": "A python client library for the Apple TV\n========================================\n|Build Status| |Coverage Status| |PyPi Package| |Quantifiedcode| |docs|\n\nThis is a python library for controlling and querying information from an Apple TV. It is async\n(python 3.4 syntax) and supports most of the commands that the regular Apple Remote app does as\nwell as some additional iTunes commands, like changing the media position. It implements the\nlegacy DAAP-protocol and does not support features from the new MediaRemote.framework. Support\nfor this might be added in the future if that protocol is ever fully reverse engineered.\n\nThe MIT license is used for this library.\n\nFeatures\n--------\n\n- Automatic discovery of devices (zeroconf/Bonjour)\n- Push updates\n- Remote control pairing\n- AirPlay stream URL (including tvOS 10.2+)\n- Playback controls (play, pause, next, stop, etc.)\n- Navigation controls (select, menu, top_menu, arrow keys)\n- Fetch artwork in PNG format\n- Currently playing (e.g. title, artist, album, total time, etc.)\n- Change media position\n- Shuffle and repeat\n\nRequirements\n------------\n\n- python>=3.5.3\n- See documentation for additional libraries\n\nGetting started\n---------------\n\nInstalling\n^^^^^^^^^^\n\nUse pip::\n\n $ pip install pyatv\n\nNOTE: You need some system packages, run this on debian or similar::\n\n $ sudo apt-get install build-essential libssl-dev libffi-dev python-dev\n\nUsing the API\n^^^^^^^^^^^^^\n\nHere is a simple example using auto discovery and printing what is playing:\n\n.. code:: python\n\n import asyncio\n from pyatv import helpers\n\n @asyncio.coroutine\n def print_what_is_playing(atv):\n playing = yield from atv.metadata.playing()\n print('Currently playing:')\n print(playing)\n\n helpers.auto_connect(print_what_is_playing)\n\n\nAdditional and more advanced examples can be found in `examples`.\n\nUsing the CLI application\n^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIt is possible to use the reference CLI application as well:\n\n.. code:: bash\n\n # Automatically discover device (zeroconf)\n $ atvremote -a play\n $ atvremote -a next\n\n # Scanning for devices on network\n $ atvremote\n Found Apple TVs:\n - Apple TV at 10.0.10.22 (hsgid: 00000000-1234-5678-9012-345678901234)\n\n Note: You must use 'pair' with devices that have home sharing disabled\n\n # Manually specify device\n $ atvremote --address 10.0.10.22 --hsgid 00000000-1234-5678-9012- 345678901234 playing\n Media type: Music\n Play state: Playing\n Position: 0/397s (0.0%)\n\n # Passing multiple commands\n $ atvremote -a next next play playing stop\n\n # List all commands supported by a device\n $ atvremote -a commands\n Remote control commands:\n - down - Press key down\n - left - Press key left\n - menu - Press key menu\n - next - Press key next\n - pause - Press key play\n - play - Press key play\n - previous - Press key previous\n - right - Press key right\n - select - Press key select\n - set_position - Seek in the current playing media\n - set_repeat - Change repeat mode\n - set_shuffle - Change shuffle mode to on or off\n - stop - Press key stop\n - top_menu - Go to main menu (long press menu)\n - up - Press key up\n\n Metadata commands:\n - artwork - Return artwork for what is currently playing (or None)\n - artwork_url - Return artwork URL for what is currently playing\n - device_id - Return a unique identifier for current device\n - playing - Return what is currently playing\n\n Playing commands:\n - album - Album of the currently playing song\n - artist - Artist of the currently playing song\n - hash - Create a unique hash for what is currently playing\n - media_type - Type of media is currently playing, e.g. video, music\n - play_state - Play state, e.g. playing or paused\n - position - Position in the playing media (seconds)\n - repeat - Repeat mode\n - shuffle - If shuffle is enabled or not\n - title - Title of the current media, e.g. movie or song name\n - total_time - Total play time in seconds\n\n AirPlay commands:\n - finish_authentication - End authentication process with PIN code\n - generate_credentials - Create new credentials for authentication\n - load_credentials - Load existing credentials\n - play_url - Play media from an URL on the device\n - start_authentication - Begin authentication proces (show PIN on screen)\n - verify_authenticated - Check if loaded credentials are verified\n\n Device commands:\n - artwork_save - Download artwork and save it to artwork.png\n - auth - Perform AirPlay device authentication\n - push_updates - Listen for push updates\n\n Global commands:\n - commands - Print a list with available commands\n - help - Print help text for a command\n - pair - Pair pyatv as a remote control with an Apple TV\n - scan - Scan for Apple TVs on the network\n\nType ``atvremote --help`` to list all supported commands.\n\nMissing features and improvements\n---------------------------------\n\nMost of the core functionality is now in place and API is starting to mature\nenough to soon be called \"stable\". Things on the roadmap are listed below.\n\nPlanned tasks\n^^^^^^^^^^^^^\n\n- Implement MediaRemoteTV protocol\n- Investigate robustness of device scanning\n- Extend AirPlay support\n\n - Easy streaming of local files\n\nMinor tasks\n^^^^^^^^^^^\n\n- Help command to get full help text for a command (atvremote) **DONE**\n- Write simple smoke test for atvremote\n- Improved documentation\n\n - More examples **Considered DONE**\n - Better pydoc documentation for classes and methods\n - Manual in docs/ **DONE**\n - Add to readthedocs.io **DONE**\n\nDevelopment\n-----------\n\nFork this project, clone it and run `setup_dev_env.sh` to setup a virtual\nenvironment and install everything needed for development:\n\n.. code:: bash\n\n git clone https://github.com/postlund/pyatv.git\n cd pyatv\n ./setup_dev_env.sh\n source bin/activate\n\nYou can run the tests with ``python setup.py test``. Also, make sure that\npylint, flake8 and pydoc passes before committing. This is done automatically\nif you run just run ``tox``.\n\nWhen using ``atvremote``, pass ``--debug`` to get better logging.\n\n.. |Build Status| image:: https://travis-ci.org/postlund/pyatv.svg?branch=master\n :target: https://travis-ci.org/postlund/pyatv\n.. |Coverage Status| image:: https://img.shields.io/coveralls/postlund/pyatv.svg\n :target: https://coveralls.io/r/postlund/pyatv?branch=master\n.. |PyPi Package| image:: https://badge.fury.io/py/pyatv.svg\n :target: https://badge.fury.io/py/pyatv\n.. |Quantifiedcode| image:: https://www.quantifiedcode.com/api/v1/project/bcacf534875647af8005bb089f329918/badge.svg\n :target: https://www.quantifiedcode.com/app/project/bcacf534875647af8005bb089f329918\n.. |docs| image:: https://readthedocs.org/projects/pyatv/badge/?version=master\n :alt: Documentation Status\n :scale: 100%\n :target: https://pyatv.readthedocs.io/en/master/?badge=latest\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/postlund/pyatv", "keywords": "apple,tv", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyatv", "package_url": "https://pypi.org/project/pyatv/", "platform": "any", "project_url": "https://pypi.org/project/pyatv/", "project_urls": { "Homepage": "https://github.com/postlund/pyatv" }, "release_url": "https://pypi.org/project/pyatv/0.3.13/", "requires_dist": [ "aiohttp (>=3.0.1)", "cryptography (>=1.8.1)", "curve25519-donna (>=1.3)", "ed25519 (>=1.4)", "netifaces (>=0.10.0)", "srptools (>=0.2.0)", "zeroconf (>=0.17.7)" ], "requires_python": "", "summary": "Library for controlling an Apple TV", "version": "0.3.13" }, "last_serial": 5943059, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "eaa884f7d2328304213b237289f1fa8f", "sha256": "37cbeb01e8de5982fa56e50304ceca8f19605d188064d655f8b51e3db7d2bb56" }, "downloads": -1, "filename": "pyatv-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "eaa884f7d2328304213b237289f1fa8f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18450, "upload_time": "2017-02-01T11:48:14", "url": "https://files.pythonhosted.org/packages/56/4c/88d9745ba645857182a16df7210c74d2ab5af86a43a006dded9f78cca409/pyatv-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee60ce1c609a5feea33e5f1c80ed1212", "sha256": "0714a8baf96c183079ffe9ac28f034595a0b54992865ec62cf2979a9d9cb53f6" }, "downloads": -1, "filename": "pyatv-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ee60ce1c609a5feea33e5f1c80ed1212", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 557457, "upload_time": "2017-02-01T11:48:17", "url": "https://files.pythonhosted.org/packages/89/2d/004d266c34bc93f4308f1f46d3d949a8be727052e7cc413a77dc0332ea69/pyatv-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "ae55add0ebffdffd28c47cb1f7866a2c", "sha256": "7087cd79e1354951d84ace9f5834adceeddb2903d3b97199f61c503964934b19" }, "downloads": -1, "filename": "pyatv-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ae55add0ebffdffd28c47cb1f7866a2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20348, "upload_time": "2017-02-07T20:48:42", "url": "https://files.pythonhosted.org/packages/d6/5c/992dc4d64ad038c8347fee42b38f8bbf6a91cba17830d04e3abf93a350b7/pyatv-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c736ce9dd088c45bda472cf631b777a8", "sha256": "2227c8036913e9afbc69266fa774f77c8f6faa205078aec306bb14616cf554f2" }, "downloads": -1, "filename": "pyatv-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c736ce9dd088c45bda472cf631b777a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 322502, "upload_time": "2017-02-07T20:48:44", "url": "https://files.pythonhosted.org/packages/3c/93/218e9f3b390bb1271fbf5efb2cd9e0dd1f8d700df3c298dcdf44b655d9a0/pyatv-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9bee7baf375af4ee49c5b4333cb940a9", "sha256": "cf0bd534267c752a6cf7d812eb4c3280a3c7fceab9040c3e35b777efc650aa1e" }, "downloads": -1, "filename": "pyatv-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9bee7baf375af4ee49c5b4333cb940a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22009, "upload_time": "2017-02-07T22:46:29", "url": "https://files.pythonhosted.org/packages/c3/b1/46bfca86bd72eb054f2ea2e23a44107529b8f7b84089ceaff51387d28252/pyatv-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ec160a7757b9e0ed6cd732279083cd9", "sha256": "373bd793655ce532a740e2d8db0b934606f884938da49d7dbb959783edf12756" }, "downloads": -1, "filename": "pyatv-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2ec160a7757b9e0ed6cd732279083cd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 321948, "upload_time": "2017-02-07T22:46:31", "url": "https://files.pythonhosted.org/packages/2f/44/24ab3a9fabc64031c3c3afcafb5fa2652143737e65cbcaba5b9cebccf480/pyatv-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "68b6052363eb0f700a0815abd75a9e5f", "sha256": "ad855c96988427194a4e6cb939fd124e3442d178eb8c84d28ca91efb8f51ad17" }, "downloads": -1, "filename": "pyatv-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "68b6052363eb0f700a0815abd75a9e5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22053, "upload_time": "2017-02-09T12:08:46", "url": "https://files.pythonhosted.org/packages/73/f3/d304ec30e757719edf2a3497ff2d2b1a5a1ad96a55d5bcdd8a9700058015/pyatv-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c40e2852314a924c45b08c89ef4ea8d8", "sha256": "7889dca2a6ab2647d93f67044737fdbbac5c2b1271c2b407de72b84e3cb39fc9" }, "downloads": -1, "filename": "pyatv-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c40e2852314a924c45b08c89ef4ea8d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 327923, "upload_time": "2017-02-09T12:09:44", "url": "https://files.pythonhosted.org/packages/6c/74/cced41c634a0e5274e590a0946b2abffb6aa105abb7be2e384fb7dee37d9/pyatv-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "0c0f59ce069dace2a2f69d8ade7cc671", "sha256": "7501273b4dc83a5e20ce1259f361c0509353fa6dcef868f5fe065830c92d978e" }, "downloads": -1, "filename": "pyatv-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0c0f59ce069dace2a2f69d8ade7cc671", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21963, "upload_time": "2017-02-09T21:32:11", "url": "https://files.pythonhosted.org/packages/b9/c2/8932e8c21617845432a19f1b01c6abad4f1beecbf35c60598e58267d0033/pyatv-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae39454f44cd1a39adc45c676ad61229", "sha256": "910834e31f658a1088b2c650ef02cccb7cb074ac927edffd54df6d5dcd907da7" }, "downloads": -1, "filename": "pyatv-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ae39454f44cd1a39adc45c676ad61229", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 324476, "upload_time": "2017-02-09T21:32:14", "url": "https://files.pythonhosted.org/packages/c9/1a/b296f37a6a9a7c56f000fcdc04ef35223732d2f3e02e9ce1306de4c2f66c/pyatv-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "e723998a627dd1ab70eb60d80c456bb0", "sha256": "18c142179d52cae015c5fcc2e15323e2387d50a70e2222909325e975cde365fc" }, "downloads": -1, "filename": "pyatv-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e723998a627dd1ab70eb60d80c456bb0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22111, "upload_time": "2017-02-11T13:11:17", "url": "https://files.pythonhosted.org/packages/5e/66/9266f244bcde63b856b4c08c014d39533589fdcf70d731a92c8d62a56356/pyatv-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20c2637a89d80e70b49dd1f63fc47a92", "sha256": "999400c821db4a791b0b73369cce984bfd03a13d1394beaa4b4d56ffc380761e" }, "downloads": -1, "filename": "pyatv-0.1.4.tar.gz", "has_sig": false, "md5_digest": "20c2637a89d80e70b49dd1f63fc47a92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 326282, "upload_time": "2017-02-11T13:11:20", "url": "https://files.pythonhosted.org/packages/c2/c4/a7832eeebef1d6776c2046c00e58227bfac49305f7ba5dbedce65b83ee3f/pyatv-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2bf134fb866b95a064780a5bf118248b", "sha256": "0e2e099bcbf71b0972d391b7c5e821dc7597f8ea98ee2b6c3cb33b059a6702d8" }, "downloads": -1, "filename": "pyatv-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2bf134fb866b95a064780a5bf118248b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24693, "upload_time": "2017-02-23T06:54:06", "url": "https://files.pythonhosted.org/packages/31/dc/024199c0f7d71178425bf4632386be5bea5a9f4470d26e8ca878de25402e/pyatv-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81fe14b117465646f46f47c2b4b70173", "sha256": "1966f83ae5b903328f7ecd27e045982f9625b47a1736efc03f2b0ee57a3e0882" }, "downloads": -1, "filename": "pyatv-0.2.0.tar.gz", "has_sig": false, "md5_digest": "81fe14b117465646f46f47c2b4b70173", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 348118, "upload_time": "2017-02-23T06:54:10", "url": "https://files.pythonhosted.org/packages/6d/5a/17ad682c765e21e528f7c940cc4133a6735a271b3cf42c379ba01ca41ef4/pyatv-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7bcf6e4377e6b7cd9bb24108f2e17788", "sha256": "6769239b3152a6cc93a24159b87d4b4b49ebec3e7256a7e41e5bc7cb24093944" }, "downloads": -1, "filename": "pyatv-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7bcf6e4377e6b7cd9bb24108f2e17788", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24731, "upload_time": "2017-02-28T19:29:50", "url": "https://files.pythonhosted.org/packages/34/c0/9dc157236f08993d08d647855c85a40dbdade82b7b9818642a535e956cb9/pyatv-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc43c908ec3e7a104cf6f70e9addda65", "sha256": "42e123cf5a742795e6cddd5366a9802364748e9d2f21ebbe9f79b1ea3a2bdd8e" }, "downloads": -1, "filename": "pyatv-0.2.1.tar.gz", "has_sig": false, "md5_digest": "cc43c908ec3e7a104cf6f70e9addda65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 348554, "upload_time": "2017-02-28T19:29:53", "url": "https://files.pythonhosted.org/packages/dc/75/4445307e55affa3b7216704849f3242b1bbab37d64dc10e1ca686d79fbb8/pyatv-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8cdbee6f5523b5308b2e1f4a716559f2", "sha256": "641a2b5ba9a3f7cd9463043eebe11fe3f47c7385ec9aee28ab882241cbf67ecd" }, "downloads": -1, "filename": "pyatv-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8cdbee6f5523b5308b2e1f4a716559f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24885, "upload_time": "2017-03-04T11:55:41", "url": "https://files.pythonhosted.org/packages/3c/b2/46ad7e02fa6a172c13546b09d99e5be7c6e66e7ae45142655bb877ecb6b3/pyatv-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "984268bf225820928fef46ff878b517a", "sha256": "6035a43006b549aa8e64decb917e33039a10159bc380289909b6dddada1cacf4" }, "downloads": -1, "filename": "pyatv-0.2.2.tar.gz", "has_sig": false, "md5_digest": "984268bf225820928fef46ff878b517a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 351936, "upload_time": "2017-03-04T11:55:43", "url": "https://files.pythonhosted.org/packages/39/c0/77f96c7ae1e2af639f78afa81b98023c7f999f2c0523ca7e7787a8667fe9/pyatv-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "39ae844e3d84dda8ef45b20582879dbd", "sha256": "e71821b4cb057c6830cd910a2effd53a44ee471f8866132a61d81132cf9ac739" }, "downloads": -1, "filename": "pyatv-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "39ae844e3d84dda8ef45b20582879dbd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35798, "upload_time": "2017-06-19T05:35:23", "url": "https://files.pythonhosted.org/packages/00/01/06bde8cb8ab1a9145c54a4a4737048b5a372ad5c350f167c66b159b93247/pyatv-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01f0dc10b03ea2a54a5c3d92fa242c6c", "sha256": "007cacc8785543a8d1059ac3c6387722461585e0fdac2e5a233eacf649f8e33d" }, "downloads": -1, "filename": "pyatv-0.3.0.tar.gz", "has_sig": false, "md5_digest": "01f0dc10b03ea2a54a5c3d92fa242c6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 402697, "upload_time": "2017-06-19T05:35:26", "url": "https://files.pythonhosted.org/packages/70/c9/2839742b9114b9037b2a30acffd16964eb48729ad162a9b647d60b206c08/pyatv-0.3.0.tar.gz" } ], "0.3.1": [], "0.3.10": [ { "comment_text": "", "digests": { "md5": "77d1f2a809d4792b3fd3db9430303654", "sha256": "c7f446211985f4348e9b80d6393bd4d48fd8a6b3ca57b11b6408aa4f82091d2b" }, "downloads": -1, "filename": "pyatv-0.3.10-py3-none-any.whl", "has_sig": false, "md5_digest": "77d1f2a809d4792b3fd3db9430303654", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39644, "upload_time": "2018-06-01T03:57:46", "url": "https://files.pythonhosted.org/packages/f7/a3/6abefaee68f74f36efba1523df3f5743940131a337883896d91d5087fceb/pyatv-0.3.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "332c23872ba7a26b0745085816ddb2a1", "sha256": "de4a366baaa7e547758f67aada2b51a51d30f71b73d6efb11a98fcdbb70f0595" }, "downloads": -1, "filename": "pyatv-0.3.10.tar.gz", "has_sig": false, "md5_digest": "332c23872ba7a26b0745085816ddb2a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 410374, "upload_time": "2018-06-01T03:57:48", "url": "https://files.pythonhosted.org/packages/f3/a6/84ace4bc9f3e26ba67d49d73cebd6bce9398ffac1f0711e50dc53abf748f/pyatv-0.3.10.tar.gz" } ], "0.3.11": [ { "comment_text": "", "digests": { "md5": "9ba3085b2ee66daa525ddbf131a72d5b", "sha256": "3ab062ae8e0db75c499150a5210fe332f2e7c9b372c29f029ab8d5ec2f5d9dfb" }, "downloads": -1, "filename": "pyatv-0.3.11-py3-none-any.whl", "has_sig": false, "md5_digest": "9ba3085b2ee66daa525ddbf131a72d5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41381, "upload_time": "2018-11-29T19:44:32", "url": "https://files.pythonhosted.org/packages/0f/c9/e383703cfa8716fb3273703a913431862e30c7a9d9c8059efde3e9d4e3eb/pyatv-0.3.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de6cddc5f46f1a8b9be647417f14ee66", "sha256": "f286b377cb7f2f3cd5ed9737639df7c7daa1a1c5a50d0c2016dff30799ed906d" }, "downloads": -1, "filename": "pyatv-0.3.11.tar.gz", "has_sig": false, "md5_digest": "de6cddc5f46f1a8b9be647417f14ee66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 410831, "upload_time": "2018-11-29T19:44:34", "url": "https://files.pythonhosted.org/packages/6d/a8/b0655908d996d6a9fecae2e9f8f43975ac8fc5099115d02d2865800c8a40/pyatv-0.3.11.tar.gz" } ], "0.3.12": [ { "comment_text": "", "digests": { "md5": "3eaa100c92b2ca60280596a1d32f7828", "sha256": "4d34a67bcdcb9236627ac37cc266df14cfe5e039d41b8d6fd7a660dca2adfcb0" }, "downloads": -1, "filename": "pyatv-0.3.12-py3-none-any.whl", "has_sig": false, "md5_digest": "3eaa100c92b2ca60280596a1d32f7828", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41432, "upload_time": "2018-12-07T07:57:04", "url": "https://files.pythonhosted.org/packages/ef/76/b32b5fed37022612a48300b7666c8e75315cfddc9b7734e442a613140765/pyatv-0.3.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04d59a4a4d3d4b7a997f4cd1b9d4e104", "sha256": "f7e56524d27826e593b9978ec79ee8b39f81b4abaa007a989da5036b83dfbd8c" }, "downloads": -1, "filename": "pyatv-0.3.12.tar.gz", "has_sig": false, "md5_digest": "04d59a4a4d3d4b7a997f4cd1b9d4e104", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 411938, "upload_time": "2018-12-07T07:57:10", "url": "https://files.pythonhosted.org/packages/d8/c3/47888920bdc70809c334e400ef4eacbe3c4628b728dfac48c08bd9894281/pyatv-0.3.12.tar.gz" } ], "0.3.13": [ { "comment_text": "", "digests": { "md5": "5e1a55e73758511e6b1343d805b44649", "sha256": "64ba846f14cd5aceae277451c33e017e0a2b70558abb71a5d73df2c66abdfdf4" }, "downloads": -1, "filename": "pyatv-0.3.13-py2-none-any.whl", "has_sig": false, "md5_digest": "5e1a55e73758511e6b1343d805b44649", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 41467, "upload_time": "2019-08-26T04:22:53", "url": "https://files.pythonhosted.org/packages/86/a2/052f2c5bc346258e67f9864f9771f9802cd95e01bc1de12b8fc5b34157f0/pyatv-0.3.13-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "713643f05d7313fbb136f6befaa60a20", "sha256": "8fc1a903a9d666e4109127410d35a83458559a86bc0de3fe1ffb3f15d2d653b3" }, "downloads": -1, "filename": "pyatv-0.3.13.tar.gz", "has_sig": false, "md5_digest": "713643f05d7313fbb136f6befaa60a20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 412042, "upload_time": "2019-08-26T04:22:55", "url": "https://files.pythonhosted.org/packages/d7/9d/51f893772ae389f739f3767af075745e1d6e193a089e4a6cb21b9508f845/pyatv-0.3.13.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "4066ac6e73e9012fc8cda5a1f2f07882", "sha256": "68e05432b6d356eebd73dec69857dc860836f4e713e1e1271524f190041d0eec" }, "downloads": -1, "filename": "pyatv-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4066ac6e73e9012fc8cda5a1f2f07882", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35758, "upload_time": "2017-06-20T07:24:01", "url": "https://files.pythonhosted.org/packages/90/ca/3dbdff20f7de29bf51e538c5a93a1470fa8dd07d99b7917250e89f2be078/pyatv-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c042d34a76cd2b57ed49a1e522aee1f", "sha256": "75ed08e3cba930d43d8108f5f1122cb7a982e8720f86418467ced2f80f41989e" }, "downloads": -1, "filename": "pyatv-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8c042d34a76cd2b57ed49a1e522aee1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 405109, "upload_time": "2017-06-20T07:24:11", "url": "https://files.pythonhosted.org/packages/e2/03/93c9bfb712d57a77d193188fd46b7d4756f05789a6649e436d6cfcf5b2aa/pyatv-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "76f2c8a55379e4fced71c030545f9ee1", "sha256": "7a256f3c2e29ef176342cfd2e716353e248ac5a4437f6d451b127bddac436af6" }, "downloads": -1, "filename": "pyatv-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "76f2c8a55379e4fced71c030545f9ee1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35777, "upload_time": "2017-07-18T14:02:07", "url": "https://files.pythonhosted.org/packages/bf/7a/1d8a1eed9c9d8629fdfc6b242fc5e50773bc53a283911fe4b022071e1ef0/pyatv-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05fff4647f1dbe8c56d1d531825a2fe2", "sha256": "47160f631209df4abaa13c31c3ec33a640d7f6f8c28963e24c900cba9b4b3eff" }, "downloads": -1, "filename": "pyatv-0.3.3.tar.gz", "has_sig": false, "md5_digest": "05fff4647f1dbe8c56d1d531825a2fe2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 406838, "upload_time": "2017-07-18T14:02:01", "url": "https://files.pythonhosted.org/packages/88/5c/8ffb0b5bac00e4f38264450f5325ce150f97d90a22c5146ce244b213d56a/pyatv-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "0842350ace0a9dadf857f3f2d2196a6c", "sha256": "3e763b3b88209e89860a2f93b0dafd18a3159be9f7b7d8f6b2d8a37e5fa8f47a" }, "downloads": -1, "filename": "pyatv-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "0842350ace0a9dadf857f3f2d2196a6c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41321, "upload_time": "2017-07-18T14:17:42", "url": "https://files.pythonhosted.org/packages/04/04/da4d33bd11c0a4380f5f608e23f43615d1f108ea8eee2e775f8b7b71d314/pyatv-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4eb895b5b74ea61eb7678f7ed25a1636", "sha256": "7aad5691c4f3da2422da3dba6e86d7adc662808f09a317c2e88258d1ebe67d3a" }, "downloads": -1, "filename": "pyatv-0.3.4.tar.gz", "has_sig": false, "md5_digest": "4eb895b5b74ea61eb7678f7ed25a1636", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 407010, "upload_time": "2017-07-18T14:17:18", "url": "https://files.pythonhosted.org/packages/aa/24/639df71ae1022fb6ba12b33dac6f9819cdfe5ca94de3a2ab2618d2700a41/pyatv-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "4aca7e5681c236fbe8cf6c56b7b4a2f5", "sha256": "2e6094a03089d896bad672da2c5fa3d1317bb73764efaaf866d583bd0ef4ef8f" }, "downloads": -1, "filename": "pyatv-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4aca7e5681c236fbe8cf6c56b7b4a2f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 42649, "upload_time": "2017-09-26T17:09:52", "url": "https://files.pythonhosted.org/packages/30/e8/0a0b7904087dbd6ea5593ab975b03f50989da6aa60dbdac37d8047bcadbd/pyatv-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b88a765bb2ba0955bfe6a45928e3680", "sha256": "dc3b5ae33f831821b2b4b1b9b0a3e2faf3f7588be51789b882dd2e6b70c9c8c7" }, "downloads": -1, "filename": "pyatv-0.3.5.tar.gz", "has_sig": false, "md5_digest": "9b88a765bb2ba0955bfe6a45928e3680", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 406960, "upload_time": "2017-09-26T17:09:55", "url": "https://files.pythonhosted.org/packages/35/e8/46e8532c124afe0f3f9cfae0bf6b45d8fd4c0f708a4ab9618e043f99c586/pyatv-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "a3f88be6b4591bf8ec0d92c69b9f4cc8", "sha256": "8399d0d21530274f45e6b80dea340f77cdcb8df0b9352e9e68c6dbd9891791a5" }, "downloads": -1, "filename": "pyatv-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a3f88be6b4591bf8ec0d92c69b9f4cc8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 45525, "upload_time": "2017-10-01T15:25:14", "url": "https://files.pythonhosted.org/packages/d7/6e/9a876f8efa9c8b93ceb53719d737fdb5d6752c7ffa11ca45f9086a290e58/pyatv-0.3.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07d3c8971f6c6dbc1d747d259dcffad3", "sha256": "be4a5528aea6f0cf949e942cf2e0840414ea4683b84d2d658f6621d18ebf46fe" }, "downloads": -1, "filename": "pyatv-0.3.6.tar.gz", "has_sig": false, "md5_digest": "07d3c8971f6c6dbc1d747d259dcffad3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 410905, "upload_time": "2017-10-01T15:25:17", "url": "https://files.pythonhosted.org/packages/d9/aa/15c5515256f5f4fe86ff15e8059a477b74b97365557d1506a2da700ade2f/pyatv-0.3.6.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "418183ca92e2ec3a82778fb5558f8c05", "sha256": "820c67b0f3b3d257f3ac3abcc5b87a28d98504cb1ff25518bd0735f72401c948" }, "downloads": -1, "filename": "pyatv-0.3.8-py3-none-any.whl", "has_sig": false, "md5_digest": "418183ca92e2ec3a82778fb5558f8c05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 42675, "upload_time": "2017-11-17T20:04:29", "url": "https://files.pythonhosted.org/packages/db/bd/74c2aee57a6a6a843667d9f0e36186d6568cdeed91f70b4041b5b3a6ba3e/pyatv-0.3.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "575e712c74325015c0e8580f6069959e", "sha256": "7875ffe16cc9056e038a765f18443063e5a7a0be213fcf3396cf887967ad957a" }, "downloads": -1, "filename": "pyatv-0.3.8.tar.gz", "has_sig": false, "md5_digest": "575e712c74325015c0e8580f6069959e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 410498, "upload_time": "2017-11-17T20:04:31", "url": "https://files.pythonhosted.org/packages/6c/40/97bae59d7fda409ed8b130555462f6bf46c0045a32b0baabdc61a8df4ad0/pyatv-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "c3ecd3b1c22f9181d833507477cc9151", "sha256": "b131a4636800f358926cacd400374e33117b167f0a7153c84b3fcb2f4cf74831" }, "downloads": -1, "filename": "pyatv-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "c3ecd3b1c22f9181d833507477cc9151", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 46183, "upload_time": "2017-12-12T14:11:43", "url": "https://files.pythonhosted.org/packages/79/8a/49424cadea5c1fe9e630c53602a1ef1402fc7f6dea58f139179f960a8afb/pyatv-0.3.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bca020d8099e2a74caf4a6bde5e26c8b", "sha256": "2e28009667e039372963dd01b0d13071dd834d789764cc4d8e531ae635cedfdf" }, "downloads": -1, "filename": "pyatv-0.3.9.tar.gz", "has_sig": false, "md5_digest": "bca020d8099e2a74caf4a6bde5e26c8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 411057, "upload_time": "2017-12-12T14:11:46", "url": "https://files.pythonhosted.org/packages/97/a3/619c880849db6385aabcad166ee5606394325afa34101297b4dc050d2a12/pyatv-0.3.9.tar.gz" } ], "0.4.0a0": [ { "comment_text": "", "digests": { "md5": "ec0480c6d06eeb4c917d0067c8c0266f", "sha256": "ebb7d23ca7a5c9bb294779badb7c612f4dc21a7e4fc6464b5eb3e98e5eaaa7ff" }, "downloads": -1, "filename": "pyatv-0.4.0a0-py3-none-any.whl", "has_sig": false, "md5_digest": "ec0480c6d06eeb4c917d0067c8c0266f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 323703, "upload_time": "2019-10-08T06:09:52", "url": "https://files.pythonhosted.org/packages/76/c4/1321c5c4b8aa81fa433d81ea8cd2eaea486438250ae6d5f7cf001af499d5/pyatv-0.4.0a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64f81d2eb0216d0413a3887d8063bb88", "sha256": "228b3cf0ef0cedb40f1a8a6c438ee8a88cf4a0e88eee4ba5cb7394f078f68035" }, "downloads": -1, "filename": "pyatv-0.4.0a0.tar.gz", "has_sig": false, "md5_digest": "64f81d2eb0216d0413a3887d8063bb88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 549268, "upload_time": "2019-10-08T06:09:56", "url": "https://files.pythonhosted.org/packages/1d/a9/77236e8b7556a77d48b185e4beafe2432af40dcadaee5cd46b4d4699de2d/pyatv-0.4.0a0.tar.gz" } ], "0.4.0a1": [ { "comment_text": "", "digests": { "md5": "1af46c8dfecc8c5f5518a50820f477cf", "sha256": "4b8defdc62be2f50c5f1ce033405d0bf63834f895fbf06e0e69d8337c05124a8" }, "downloads": -1, "filename": "pyatv-0.4.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "1af46c8dfecc8c5f5518a50820f477cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 324526, "upload_time": "2019-10-08T06:26:43", "url": "https://files.pythonhosted.org/packages/55/8e/12f833b751dc411ead08197c8ffc11662a7cecb242a5a204304458de430b/pyatv-0.4.0a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb79de5ba94566ebe07596d23bab94f0", "sha256": "17b084af487e2d4ae8bd368aae4c0b64709fa2a8bc5840542da9b56459a2fcf1" }, "downloads": -1, "filename": "pyatv-0.4.0a1.tar.gz", "has_sig": false, "md5_digest": "fb79de5ba94566ebe07596d23bab94f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 551159, "upload_time": "2019-10-08T06:26:47", "url": "https://files.pythonhosted.org/packages/92/28/31f56b127ce964eb64dc6cd1225d3095b220ab3eec501f4122daa762fadb/pyatv-0.4.0a1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5e1a55e73758511e6b1343d805b44649", "sha256": "64ba846f14cd5aceae277451c33e017e0a2b70558abb71a5d73df2c66abdfdf4" }, "downloads": -1, "filename": "pyatv-0.3.13-py2-none-any.whl", "has_sig": false, "md5_digest": "5e1a55e73758511e6b1343d805b44649", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 41467, "upload_time": "2019-08-26T04:22:53", "url": "https://files.pythonhosted.org/packages/86/a2/052f2c5bc346258e67f9864f9771f9802cd95e01bc1de12b8fc5b34157f0/pyatv-0.3.13-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "713643f05d7313fbb136f6befaa60a20", "sha256": "8fc1a903a9d666e4109127410d35a83458559a86bc0de3fe1ffb3f15d2d653b3" }, "downloads": -1, "filename": "pyatv-0.3.13.tar.gz", "has_sig": false, "md5_digest": "713643f05d7313fbb136f6befaa60a20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 412042, "upload_time": "2019-08-26T04:22:55", "url": "https://files.pythonhosted.org/packages/d7/9d/51f893772ae389f739f3767af075745e1d6e193a089e4a6cb21b9508f845/pyatv-0.3.13.tar.gz" } ] }