GithubHelp home page GithubHelp logo

ninjaoxygen / pyatv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from postlund/pyatv

0.0 0.0 0.0 6.32 MB

A client library for Apple TV and AirPlay devices

Home Page: https://pyatv.dev

License: MIT License

Shell 0.12% Python 99.85% Dockerfile 0.03%

pyatv's Introduction

A client library for Apple TV and AirPlay devices

Tests pyatv Actions codecov Code style: black PyPi Package Gitpod Ready-to-Code Downloads PyPI pyversions License: MIT

This is an asyncio python library for interacting with Apple TV and AirPlay devices. It mainly targets Apple TVs (all generations, including tvOS 15 and later), but also supports 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.

All the documentation you need is available at pyatv.dev.

What can it do?

Some examples include:

  • Remote control commands
  • Metadata retrieval with push updates
  • Stream files via AirPlay
  • List and launch installed apps
  • List and switch user accounts
  • Add, remove or set audio output devices (e.g. HomePods)
  • Keyboard support
  • Persistent storage of credentials and settings

...and lots more! A complete list is available here.

Great, but how do I use it?

All documentation (especially for developers) are available at pyatv.dev. It is however possible to install with pip and set up a new device atvremote:

$ pip install pyatv
$ atvremote wizard
Looking for devices...
Found the following devices:
    Name                      Model                    Address
--  ------------------------  -----------------------  -----------
 1  Receiver+                 airupnp                  10.0.10.200
 2  Receiver                  RX-V773                  10.0.10.82
 3  Pierre's AirPort Express  AirPort Express (gen 2)  10.0.10.168
 4  FakeATV                   Unknown                  10.0.10.254
 5  Vardagsrum                Apple TV 4K              10.0.10.81
 6  Apple TV                  Apple TV 3               10.0.10.83
Enter index of device to set up (q to quit): 4
Starting to set up FakeATV
Starting to pair Protocol.MRP
Enter PIN on screen: 1111
Successfully paired Protocol.MRP, moving on...
Pairing finished, trying to connect and get some metadata...
Currently playing:
  Media type: Music
Device state: Playing
       Title: Never Gonna Give You Up
      Artist: Rick Astley
    Position: 1/213s (0.0%)
      Repeat: Off
     Shuffle: Off
Device is now set up!

After setting up a new device, other commands can be run directly:

$ atvremote -s 10.0.10.254 playing
  Media type: Music
Device state: Playing
       Title: Never Gonna Give You Up
      Artist: Rick Astley
    Position: 1/213s (0.0%)
      Repeat: Off
     Shuffle: Off
$ atvremote -s 10.0.10.254 pause
$ atvremote -n FakeATV play

You can also run it inside a container (x86_64, aarch64, armv7):

docker run -it --rm --network=host ghcr.io/postlund/pyatv:0.14.0 atvremote scan

The master tag points to latest commit on the master branch and can latest points to the latest release.

I need to change something?

Want to help out with pyatv? Press the button below to get a fully prepared development environment and get started right away!

Open in Gitpod

Shortcuts to the good stuff

To save you some time, here are some shortcuts:

pyatv's People

Contributors

postlund avatar dependabot[bot] avatar dependabot-preview[bot] avatar michalmo avatar bdraco avatar maxileith avatar robbiet480 avatar paxswill avatar ckeehan avatar jakobjjw avatar sy6sy2 avatar stackia avatar sebbo2002 avatar onkelbeh avatar xpnewmedia avatar stickpin avatar pranav767 avatar jdsnape avatar crxporter avatar acheronfail avatar schlaubischlump avatar robnee avatar shraymonks avatar pierrickrouxel avatar systemcrash avatar nebzhb avatar lucasec avatar kibosj avatar jlian avatar ehendrix23 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.