Code Monkey home page Code Monkey logo

shairport's Introduction

ShairPort

By James Laird (announcement)

What it is

This program emulates an AirPort Express for the purpose of streaming music from iTunes and compatible iPods and iPhones. It implements a server for the Apple RAOP protocol. ShairPort does not support AirPlay v2 (video and photo streaming).

Build Requirements

Required:

  • OpenSSL

Optionally:

  • libao
  • PulseAudio
  • avahi

Debian/Raspbian users can get the basics with apt-get install libssl-dev libavahi-client-dev libasound2-dev

Runtime Requirements

You must be running an mDNS (Bonjour) daemon. On a Mac, this will be running already. Otherwise, you must be running avahi-daemon or Howl. As an alternative, you may use the tinysvcmdns backend, which embeds a lightweight mDNS daemon. It is, however, way less robust than bonjour or avahi. Check the [mDNS Backends] section for more information.

How to get started

./configure
make
./shairport -a 'My Shairport Name'

The triangle-in-rectangle AirTunes (now AirPlay) logo will appear in the iTunes status bar of any machine on the network, or on iPod/iPhone play controls screen. Choose your access point name to start streaming to the ShairPort instance.

Audio Outputs

Shairport supports different audio backends. For a list of available backends and their options, run shairport -h. Note that options are supplied to backends at the end of the commandline, separated by --, for example:

shairport -o ao -- -d mydriver -o setting=thing

mDNS Backends

Shairport uses mDNS to advertise the service. Multiple backends are available to perform the task. For a list of available backends, run shairport -h. The backends prefixed by 'external' rely on external programs that should be present in your path. By default, shairport will try all backends, in the order they are listed by shairport -h, until one works. You can force the use of a specific backend using shairport -m tinysvcmdns for example.

Thanks

Big thanks to David Hammerton for releasing an ALAC decoder, which is reproduced here in full. Thanks to everyone who has worked to reverse engineer the RAOP protocol - after finding the keys, everything else was pretty much trivial. Thanks also to Apple for obfuscating the private key in the ROM image, using a scheme that made the deobfuscation code itself stand out like a flare. Thanks to Ten Thousand Free Men and their Families for having a computer and stuff. Thanks to wtbw.

Contributors to version 1.x

Contributors to version 0.x

Known Ports and Tools

shairport's People

Contributors

abrasive avatar albertz avatar plietar avatar toofishes avatar rjyo avatar mspasov avatar okertanov avatar splbio avatar mag- avatar mflint avatar andywebs avatar mrpippy avatar jclehner avatar mazdermind avatar srcshelton avatar dim13 avatar pepijndevos avatar ffainelli avatar patricks avatar wgoossens avatar bbhoss avatar mcoms avatar juhovh avatar grefab avatar erawk avatar alenichev avatar osheroff avatar sbleon avatar vincentgijsen avatar timdoug avatar

Watchers

James Cloos avatar Andy Bell avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.