{"id":13528144,"url":"https://github.com/postlund/pyatv","last_synced_at":"2026-01-21T21:12:28.993Z","repository":{"id":37828498,"uuid":"80614028","full_name":"postlund/pyatv","owner":"postlund","description":"A client library for Apple TV and AirPlay devices","archived":false,"fork":false,"pushed_at":"2025-04-22T04:26:43.000Z","size":7463,"stargazers_count":946,"open_issues_count":197,"forks_count":106,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-23T17:15:18.015Z","etag":null,"topics":["airplay","apple-tv","asyncio","hacktoberfest","home-automation","pypi","python3","raop"],"latest_commit_sha":null,"homepage":"https://pyatv.dev","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/postlund.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/support/acknowledgements.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["postlund"]}},"created_at":"2017-02-01T11:30:30.000Z","updated_at":"2025-04-23T02:21:31.000Z","dependencies_parsed_at":"2023-10-16T20:40:35.323Z","dependency_job_id":"0f7e526f-b113-44bc-8958-90556ed04430","html_url":"https://github.com/postlund/pyatv","commit_stats":{"total_commits":1686,"total_committers":45,"mean_commits":37.46666666666667,"dds":"0.36536180308422306","last_synced_commit":"49bd01d3032d18a797b67411041f8f284b4a37e3"},"previous_names":[],"tags_count":70,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/postlund%2Fpyatv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/postlund%2Fpyatv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/postlund%2Fpyatv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/postlund%2Fpyatv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/postlund","download_url":"https://codeload.github.com/postlund/pyatv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253764721,"owners_count":21960615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airplay","apple-tv","asyncio","hacktoberfest","home-automation","pypi","python3","raop"],"created_at":"2024-08-01T06:02:14.692Z","updated_at":"2026-01-21T21:12:28.979Z","avatar_url":"https://github.com/postlund.png","language":"Python","funding_links":["https://github.com/sponsors/postlund"],"categories":["Python","Awesome Tools"],"sub_categories":["Languages"],"readme":"A client library for Apple TV and AirPlay devices\n=================================================\n\n\u003cimg src=\"https://raw.githubusercontent.com/postlund/pyatv/master/docs/assets/img/logo.svg?raw=true\" width=\"150\"\u003e\n\n![Tests](https://github.com/postlund/pyatv/workflows/Tests/badge.svg)\n![pyatv Actions](https://api.meercode.io/badge/postlund/pyatv?type=ci-success-rate\u0026branch=master\u0026lastDay=30)\n[![codecov](https://codecov.io/gh/postlund/pyatv/branch/master/graph/badge.svg)](https://codecov.io/gh/postlund/pyatv)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![PyPi Package](https://badge.fury.io/py/pyatv.svg)](https://badge.fury.io/py/pyatv)\n[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/postlund/pyatv)\n[![Downloads](https://static.pepy.tech/badge/pyatv)](https://pepy.tech/project/pyatv)\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/pyatv.svg)](https://pypi.python.org/pypi/pyatv/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nThis is an asyncio python library for interacting with Apple TV and AirPlay devices. It mainly\ntargets Apple TVs (all generations, **including tvOS 15 and later**), but also supports audio streaming via AirPlay\nto receivers like the HomePod, AirPort Express and third-party speakers. It can act as remote control to the Music\napp/iTunes in macOS.\n\nAll the documentation you need is available at **[pyatv.dev](https://pyatv.dev)**.\n\n# What can it do?\n\nSome examples include:\n\n* Remote control commands\n* Metadata retrieval with push updates\n* Stream files via AirPlay\n* List and launch installed apps\n* List and switch user accounts\n* Add, remove or set audio output devices (e.g. HomePods)\n* Keyboard support\n* Persistent storage of credentials and settings\n\n...and lots more! A complete list is available [here](https://pyatv.dev/documentation/supported_features/).\n\n# Great, but how do I use it?\n\nAll documentation (especially for developers) are available at [pyatv.dev](https://pyatv.dev).\nIt is however possible to install with `pip` and set up a new device `atvremote`:\n\n```raw\n$ pip install pyatv\n$ atvremote wizard\nLooking for devices...\nFound the following devices:\n    Name                      Model                    Address\n--  ------------------------  -----------------------  -----------\n 1  Receiver+                 airupnp                  10.0.10.200\n 2  Receiver                  RX-V773                  10.0.10.82\n 3  Pierre's AirPort Express  AirPort Express (gen 2)  10.0.10.168\n 4  FakeATV                   Unknown                  10.0.10.254\n 5  Vardagsrum                Apple TV 4K              10.0.10.81\n 6  Apple TV                  Apple TV 3               10.0.10.83\nEnter index of device to set up (q to quit): 4\nStarting to set up FakeATV\nStarting to pair Protocol.MRP\nEnter PIN on screen: 1111\nSuccessfully paired Protocol.MRP, moving on...\nPairing finished, trying to connect and get some metadata...\nCurrently playing:\n  Media type: Music\nDevice state: Playing\n       Title: Never Gonna Give You Up\n      Artist: Rick Astley\n    Position: 1/213s (0.0%)\n      Repeat: Off\n     Shuffle: Off\nDevice is now set up!\n```\n\nAfter setting up a new device, other commands can be run directly:\n\n```raw\n$ atvremote -s 10.0.10.254 playing\n  Media type: Music\nDevice state: Playing\n       Title: Never Gonna Give You Up\n      Artist: Rick Astley\n    Position: 1/213s (0.0%)\n      Repeat: Off\n     Shuffle: Off\n$ atvremote -s 10.0.10.254 pause\n$ atvremote -n FakeATV play\n```\n\nYou can also run it inside a container (x86_64, aarch64, armv7):\n\n```raw\ndocker run -it --rm --network=host ghcr.io/postlund/pyatv:0.14.0 atvremote scan\n```\n\nThe `master` tag points to latest commit on the `master` branch and `latest`\npoints to the latest release.\n\n# I need to change something?\n\nWant to help out with `pyatv`? Press the button below to get a fully prepared development environment and get started right away!\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/postlund/pyatv)\n\n# Shortcuts to the good stuff\n\nTo save you some time, here are some shortcuts:\n\n* [Getting started](https://pyatv.dev/documentation/getting-started/)\n* [Documentation](https://pyatv.dev/documentation)\n* [Development](https://pyatv.dev/development)\n* [API Reference](https://pyatv.dev/api)\n* [Support](https://pyatv.dev/support)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpostlund%2Fpyatv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpostlund%2Fpyatv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpostlund%2Fpyatv/lists"}