An excerpt from the repository, fetched Nov 13, 2026.
Read the project’s introduction
Shairport Sync
Shairport Sync is an AirPlay audio player for Linux, FreeBSD, macOS and OpenBSD. It plays audio streamed from Apple devices and from AirPlay sources such as OwnTone (formerly forked-daapd).
Shairport Sync can be built as an AirPlay 2 player (with some limitations) or as "classic" Shairport Sync – a player for the older, but still supported, AirPlay (aka "AirPlay 1") protocol.
When built for AirPlay 2, Shairport Sync can play stereo and multichannel (5.1 and 7.1) audio, including lossless 24-bit stereo at 48,000 frames per second.
Metadata such as artist information and cover art can be requested and provided to other applications. Shairport Sync can interface with other applications through MQTT, an MPRIS-like interface and D-Bus.
Shairport Sync does not support AirPlay video or photo streaming.
(Note that Macs based on Apple Silicon have built-in AirPlay facilities and so don't need Shairport Sync.)
Quick Start
If you are updating from a previous version of Shairport Sync, please visit the release notes for possible breaking changes.
A building guide is available here.
A Docker image is available on the Docker Hub. Also see docker/README.md.
Next Steps and Advanced Topics are here.
Runtime settings are documented here.
Build configuration options are detailed in CONFIGURATION FLAGS.md.
The man page, detailing command line options, is here.
Features
Outputs AirPlay audio to ALSA, sndio, PipeWire, PulseAudio, macOS, to a unix pipe or to STDOUT. It also has limited support for libao.
Metadata — Shairport Sync can deliver metadata supplied by the source, such as Album Name, Artist Name, Cover Art, etc. through a pipe or UDP socket to a recipient application program — see https://github.com/mikebrady/shairport-sync-metadata-reader for a sample recipient. Sources that supply metadata include iTunes and the Music app in macOS and iOS.
An interface to MQTT, a popular protocol for Inter Process Communication, Machine-to-Machine, Internet of Things and Home Automation projects. The interface provides access to metadata, including artwork, remote control.
Digital Signal Processing facilities – please see the DSP Wiki Page Guide. (Thanks to Yann Pomarède for the code and to Paul Wieland for the guide.)
An MPRIS-like interface, partially complete and very functional, including access to metadata, including artwork, and remote control.
A native D-Bus interface, including access to metadata, artwork and system settings. Remote control is also available.
Better Volume Control — Shairport Sync offers finer control at very top and very bottom of the volume range. See http://tangentsoft.net/audio/atten.html for a good discussion of audio "attenuators", upon which volume control in Shairport Sync is modelled. See also the diagram of the volume transfer function in the documents folder. In addition, Shairport Sync can offer an extended volume control range on devices with a restricted range.
Flexible output rates, formats and channels with built-in transcoding.
Remote Control – Remote control commands -- such as play, pause, and volume-setting commands -- can be sent to players via the D-Bus, MPRIS and MQTT interfaces.
Some features require configuration at build time – see CONFIGURATION FLAGS.md.
Status
Shairport Sync was designed to run best on stable, dedicated, stand-alone low-power "headless" systems with ALSA as the audio system and with a decent CD-quality Digital to Analog Converter (DAC).
Shairport Sync runs on recent (2018 onwards) Linux systems, FreeBSD from 12.1 onwards, macOS and OpenBSD. It requires a system with the power of a Raspberry Pi B or better.
Classic Shairport Sync runs on a wider variety of Linux sytems, including OpenWrt and Cygwin and it also runs on OpenBSD. Many embedded devices are powerful enough to power classic Shairport Sync.
Heritage and Acknowledgements
The functionality offered by Shairport Sync is the result of study and analysis of the AirPlay and AirPlay 2 protocols by many people over the years. These protocols have not been officially published, and there is no assurance that Shairport Sync will continue to work in future.
Shairport Sync is a substantial rewrite of the fantastic work done in Shairport 1.0 by James Wah (aka abrasive), James Laird and others —
please see here of the contributors to Shairport 1.x and Shairport 0.x. From a "heritage" point of view, Shairport Sync is a fork of Shairport 1.0.
For the development of AirPlay 2 support in Version 4.x, special thanks are due to:
JD Smith for really thorough testing, support and encouragement.
ejurgensen for advice and code to deal with pairing and encryption.
ckdo for pointing the way, particularly with pairing and encryption protocols, with a functional Python implementation of AirPlay 2.
invano for showing what might be possible and for initial Python development.
Charles Omer for Docker automation, repository management automation, testing, encouragement, enthusiasm.
Much of Shairport Sync's AirPlay 2 functionality is based on ideas developed at the openairplay airplay2-receiver repository. It is a pleasure to acknowledge the work of the contributors there.
Thanks to everyone who has supported and improved Shairport Sync over the years.
More about Shairport Sync
The audio that Shairport Sync receives is sent to the computer's sound system, to a named unix pipe or to STDOUT. By far the best sound system to use is ALSA. This is because ALSA can give direct access to the Digital to Analog Converter (DAC) hardware of the machine. Audio samples can be sent through ALSA directly to the DAC, maximising fidelity, and accurate timing information can be obtained from the DAC, maximising synchronisation.
Synchronised Audio
Shairport Sync offers full audio synchronisation. Full audio synchronisation means that audio is played on the output device at exactly the time specified by the audio source. To accomplish this, Shairport Sync needs access to audio systems – such as ALSA on Linux, CoreAudio o
Read the full README on GitHub