Skip to content
A command line tool for streaming to airplay-devices
Branch: master
Clone or download
unused Merge pull request #39 from xkpd3/master
Adding FreeBSD "dns_sd.h not found" solution
Latest commit 62300fb Dec 28, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
features spell fix in fixtures Aug 4, 2013
lib update version May 1, 2016
.gitignore player refactored May 10, 2013
Gemfile fix missing gem for tests May 1, 2016


A command line tool for sending videos and images to airplay-compatible devices (like AppleTV).

Gem Version Build Status Code Climate Coverage Status Dependency Status

The airplay protocol can basically play videos in mpeg-4 (mp4, mov, ts, m4v) format that are accessible via http. Thus for sending a local file a webserver will be created, see below.

Local or remote images can be sent directly to an airplay-device.

Playing audio or offering a stream to an airplay device is not yet implemented but is planned to. Do not hesitate to send me any ideas or bug informations.


gem install airstream

See Troubleshooting below, if you experience any problems while installing.

Basic Usage

Use the output argument to specify the ip-address of the remote device. Remote files will be played directly, local files are hosted with a small webserver (webrick). Check your firewall settings, port 7000 is used to host the file.

airstream -o
airstream /home/me/sample.mp4 -o

You can also use wildcards and handle files as usually...

airstream /home/me/*.mp4 -o
airstream /home/me/my-birthday-20{08,10,12}.mov -o

Use airimg to send images to the airplay device.

airimg -o
airimg ~/Pictures/photo.png

Use -n option to set the interval between switching to the next picture.

airimg ~/Pictures/*.png -n 8

See the help for further command line options. To specify default options use the configuration file initial generated in ~/.airstreamrc.


airstream only while playing a video file:

q ... quit
> ... skip to next file
< ... skip to prev file
. ... +30 seconds
, ... -30 seconds
space ... pause/resume


Missing ruby development libraries


ERROR:  Error installing airstream:
	ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
	from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
	from extconf.rb:1:in `<main>'


Install ruby development packages:

For Ubuntu/Debian:

sudo apt-get install ruby-dev

Missing dnssd headers


ERROR:  Error installing airstream:
	ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
checking for dns_sd.h... no
unable to find dnssd header


For Ubuntu/Debian:

sudo apt-get install libavahi-compat-libdnssd-dev

For FreeBSD:

sudo pkg install avahi-libdns
gem install airstream -- --with-dnssd-lib=/usr/local/lib/ --with-dnssd-include=/usr/local/include/avahi-compat-libdns_sd/


  • current
    • fix progressbar fails on broken input
    • fix some dependencies
  • v0.4.0
    • Finally added tests
    • Improved stability
    • Major Bugfixes
  • v0.1.0 - v0.3.7
    • Added usage examples
    • Refactored structure
    • More input controls
    • Added basic input controls
    • Extended Readme
    • Dependency fixes
    • Changing format of progress bar
    • Hosting local file directly using webrick
    • Play remote files
    • Play local video files with local webserver
    • Sending Images


Thanks to Bruno Aguirre ( for rubys airplay gem and Clément Vasseur for the Unofficial AirPlay Protocol Specification (

You can’t perform that action at this time.