Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
S

shairplay

> 编程语言
Open source

Apple airplay and raop protocol server

1.4K stars0 likes1 views
WebsiteGitHub

About

Apple airplay and raop protocol server

Shairplay

Free portable AirPlay server implementation similar to ShairPort.

Currently only AirPort Express emulation is supported.

Disclaimer

All the resources in this repository are written using only freely available information from the internet. The code and related resources are meant for educational purposes only. It is the responsibility of the user to make sure all local laws are adhered to.

Installation

First you need to install some dependencies, for example on Ubuntu you would write:

bash
sudo apt-get install autoconf automake libtool
sudo apt-get install libltdl-dev libao-dev libavahi-compat-libdnssd-dev
sudo apt-get install avahi-daemon
bash
./autogen.sh
./configure
make
sudo make install

Notice that libao is required in order to install the shairplay binary, otherwise only the library is compiled and installed.

Fairplay handshake support

The library has experimental support for handling fairplay handshake (used in for example screen mirroring) using a playfair library that is licensed under GPLv3. This can be enabled by adding --with-playfair to the ./configure command above.

Usage

Check available options with shairplay --help:

Usage: shairplay [OPTION...]

  -a, --apname=AirPort            Sets Airport name
  -p, --password=secret           Sets password
  -o, --server_port=5000          Sets port for RAOP service
      --ao_driver=driver          Sets the ao driver (optional)
      --hwaddr=address            Sets the MAC address, useful if running multuple instances
      --ao_devicename=devicename  Sets the ao device name (optional)
      --ao_deviceid=id            Sets the ao device id (optional)
  -h, --help                      This help

Start the server with shairplay, if you are connected to a Wi-Fi the server should show as an AirPort Express on your iOS devices and Mac OS X computers in the same network.

Notice that you need to have the airport.key file in your working directory when starting the shairplay service. It is not included in the binary for possible legal reasons.

Multiple Instances

Shairplay advertises over mDNS in the form 485D607CEE22@Dining Room Speakers where 485D607CEE22 is a MAC address. This is hardcoded to a nonsense value, which is not a problem so long as it's unique. However, if you run multiple Shairplay instances, iOS devices will only recognize one of them. To fix this, supply the --hwaddr option with different values on each device.

Related software

  • ShairPort, original AirPort Express emulator
  • ALAC, ALAC decoder by David Hammerton

Description

Short description about what each file in the main library does:

…

Short description about what each file in the Qt application does:

AirTV-Qt/main.cpp                 - Initializes the application
AirTV-Qt/mainapplication.cpp      - Creates the tray icon and starts RAOP
AirTV-Qt/raopservice.cpp          - Handles all communication with the library
AirTV-Qt/raopcallbackhandler.cpp  - Converts C callbacks to Qt callbacks
AirTV-Qt/audiooutput.cpp          - Takes care of the actual audio output

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言