gitwtfhub

wtf is airplay2-receiver?

agg23/airplay2-receiver — explained in plain English

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

Audience · developerComplexity · 3/5DormantSetup · moderate

TL;DR

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

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

REASON 4

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

What's in the stack?

PythonAirPlay 2ALACAAC

How it stacks up

agg23/airplay2-receiver0verflowme/alarm-clock0xhassaan/nn-from-scratch
Stars0
LanguageCSSPython
Last pushed2021-01-192022-10-03
MaintenanceDormantDormant
Setup difficultymoderateeasymoderate
Complexity3/52/54/5
Audiencedevelopervibe coderdeveloper

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

How do you spin it up?

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.

Wtf does this do

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.

Yoink these 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

wtf 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.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.