:tv: Main Page

This is an asyncio python library for interacting with Apple TV and AirPlay devices. It mainly targets Apple TVs (all generations), but also support audio streaming via AirPlay to receivers like the HomePod, AirPort Express and third-party speakers. It can act as remote control to the Music app/iTunes in macOS.

Tests codecov Code style: black PyPi Package Language grade: Python Gitpod Ready-to-Code Downloads PyPI pyversions License: MIT

:satisfied: Features

Here is a short summary of supported features:

A complete list of supported features and limitations is available here.

There are also few utility scripts bundled with pyatv that makes it easy to try the library out. Check out atvremote, atvproxy, atvscript and atvlog.

:eyes: Where to start?

To get going, install with pip:

:tada: pip install pyatv :tada:

Head over to Getting started to see what you can do! There’s also a Tutorial if you want to get going faster!

As pyatv is a library, it is mainly aimed for developers creating applications that can interact with Apple TVs. However, pyatv ships with a few powerful command lines tools you can use to try the library without writing any code.

If you need help or have questions, check out the Support page instead.

In case you are upgrading from an earlier version of pyatv, make sure to check out the migration guide here that will help you port your existing code.

:cloud: In other the news…

As pyatv depends solely on private and reverse engineered protocols, things sometimes break because Apple changes something. Or because of other reasons. This section covers the major things that you need to be aware of.

:trophy: Who uses pyatv?

Here are a few projects known to use pyatv:

If you are maintaining a project using pyatv, feel free to add it to the list (open a PR or issue). You don’t need to provide a URL if you don’t want, just a short description of the use case is fine too!

:office: License

This library is licensed under the MIT license.

:person_with_blond_hair: Who is making this?

I, Pierre Ståhl, is the lead developer and maintainer of this library. It is a hobby project that I put a few hours in every now and then to maintain. If you find it useful, please consider to sponsor me! :heart:

Of course, this is an open source project which means I couldn’t do it all by myself. I have created dedicated page for acknowledgements!