explaingit

agg23/airplay2-receiver

Analysis updated 2026-07-10 · repo last pushed 2021-01-19

Audience · developerComplexity · 3/5DormantSetup · moderate

TLDR

A Python toolkit that turns a computer into an experimental AirPlay 2 speaker, letting you stream audio from Apple devices to study and test the AirPlay 2 protocol.

Mindmap

mindmap
  root((repo))
    What it does
      Receives AirPlay audio
      Handles security handshake
      Decodes ALAC and AAC
    Tech stack
      Python
      AirPlay 2 protocol
      Runs on Raspberry Pi
    Use cases
      Custom wireless speaker
      Protocol testing environment
      Turn Pi into speaker
    Audience
      Developers
      Hobbyists and tinkerers
    Limitations
      No audio sync
      Not production ready
      No iTunes on Windows
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Turn a Raspberry Pi into a custom wireless AirPlay 2 speaker.

USE CASE 2

Create a testing environment to observe how an iPhone communicates with an AirPlay 2 device.

USE CASE 3

Experiment with the AirPlay 2 pairing and authentication process on your local network.

USE CASE 4

Stream audio from an iPhone, iPad, or Mac to a macOS or Windows computer.

What is it built with?

PythonAirPlay 2ALACAAC

How does it compare?

agg23/airplay2-receiver0xhassaan/nn-from-scratch0xzgbot/hermes-comfyui-skills
Stars00
LanguagePython
Last pushed2021-01-19
MaintenanceDormant
Setup difficultymoderatemoderateeasy
Complexity3/54/51/5
Audiencedeveloperdeveloperdesigner

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires running Python with the right dependencies on your local network and ensuring your Apple device and the receiver are on the same network.

No license information is provided, so usage rights are unspecified.

In plain English

This project lets a computer act as an AirPlay 2 speaker, meaning you can stream audio to it from an iPhone, iPad, or Mac just like you would to an Apple TV or AirPods. It is written in Python and is designed as an experimental toolkit for understanding and testing how AirPlay 2 works under the hood. When you run the software, your computer announces itself on your local network as an available speaker. Once your Apple device sees it, the two go through a security handshake to verify the connection. After that, the software receives the audio stream from your phone, decodes it into playable sound, and plays it through your computer's speakers. The project handles the required pairing and authentication steps, and it can decode standard CD-quality audio formats like ALAC and AAC. The intended audience is developers, hobbyists, and tinkerers who want to experiment with the AirPlay 2 protocol rather than everyday users looking for a polished product. A practical use case would be someone who wants to turn a Raspberry Pi into a custom wireless speaker, or a developer who needs a testing environment to see how an iPhone communicates with an AirPlay 2 device. It can be run on a Raspberry Pi, macOS, or Windows. It is important to understand the tradeoffs here. The creator explicitly states this is not meant to be a fully functional, reliable speaker replacement. It currently lacks audio synchronization, which is what normally keeps multiple speakers playing in perfect time across different rooms. It also cannot connect to iTunes on Windows. If you need a robust, production-ready media receiver, this experimental toolbox will likely fall short.

Copy-paste prompts

Prompt 1
Help me set up this AirPlay 2 receiver on a Raspberry Pi. What dependencies do I need to install and how do I start the receiver so my iPhone can see it as a speaker?
Prompt 2
I am running this AirPlay 2 receiver on macOS but my iPhone does not show it as an available speaker. How do I troubleshoot the local network discovery and security handshake?
Prompt 3
Explain how the AirPlay 2 pairing and authentication steps work in this codebase and where I should look if I want to modify the handshake behavior for testing.
Prompt 4
I want to decode the incoming audio stream from this AirPlay 2 receiver and output it to a specific audio device instead of the default speakers. How do I configure that in Python?

Frequently asked questions

What is airplay2-receiver?

A Python toolkit that turns a computer into an experimental AirPlay 2 speaker, letting you stream audio from Apple devices to study and test the AirPlay 2 protocol.

Is airplay2-receiver actively maintained?

Dormant — no commits in 2+ years (last push 2021-01-19).

What license does airplay2-receiver use?

No license information is provided, so usage rights are unspecified.

How hard is airplay2-receiver to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is airplay2-receiver for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.