Skip to content

AirPlay 2 receiver - python implementation only for testing

Notifications You must be signed in to change notification settings

AlexMountainBN/airplay2-receiver

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Experimental

Very quick python implementation of AP2 protocol using minimal multi-room features without authentication/encryption.

This code is experimental. To use for debugging purposes only.

To run the receiver please use Python 3 and do the following:

  • Clone https://github.com/macosforge/alac.git somewhere to ALAC
  • Copy ap2/alac/apple_alac.cpp and ap2/alac/apple_alac.h inside ALAC/codec/
  • Apply ap2/alac/alac.patch to ALAC
  • build ALAC and copy the newly created libalac.dylib to ap2/alac/
  • Run the following commands
brew install portaudio
virtualenv proto
source proto/bin/activate
pip install -r requirements.txt
pip install --global-option=build_ext --global-option="-I/usr/local/Cellar/portaudio/19.6.0/include" --global-option="-L/usr/local/Cellar/portaudio/19.6.0/lib" pyaudio


python ap2-receiver.py -m myap2
  • the AirPlay 2 receiver is announced as myap2.

Tested on Python 3.7.5 / macOS 10.15.2 with iPhone X 13.3

Protocol notes

https://emanuelecozzi.net/docs/airplay2

About

AirPlay 2 receiver - python implementation only for testing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.3%
  • C++ 3.9%
  • C 0.8%