This is an asyncio python library for interacting with Apple TV and AirPlay devices. It mainly targets Apple TVs, but also support audio streaming via AirPlay to receivers like the HomePod as well.
Here is a short summary of supported features:
- Automatic device discovery with Zeroconf
- Device information, e.g. hardware model and operating system version
- Currently playing metadata, artwork and push updates
- Remote, navigation and volume control commands
- Basic support for streaming video and audio with AirPlay
- Listing installed apps, launching apps and currently playing app
- Power management, e.g. turn on or off
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.
Where to start?
To get going, install with
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.
Who uses pyatv?
Here are a few projects known to use pyatv:
- Home Assistant - The Apple TV integration is powered by 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!
This library is licensed under the MIT license.
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!
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!