Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/provegard/airpnp

AirPlay to UPnP bridge written in Python
https://github.com/provegard/airpnp

Last synced: about 18 hours ago
JSON representation

AirPlay to UPnP bridge written in Python

Awesome Lists containing this project

README

        

airpnp 0.23b
1 Aug 2011
README
=================

Airpnp is a simple server that acts as a bridge between AirPlay devices (such as
the iPhone or the iPad) and regular UPnP media renderers. Its mode of operation
can be summarized as follows:

* When running, detects UPnP devices on the network through M-SEARCH discovery
and notification monitoring.
* For each MediaRenderer found, publishes an AirPlay service with the
corresponding name.
* Converts incoming AirPlay commands to UPnP control messages which are sent to
the media renderer.

The software is based on totem-plugin-airplay version 1.0.2, which is included.
The server parts have been rewritten to use Twisted-based networking. The
official home for the plugin is:

http://cgit.sukimashita.com/totem-plugin-airplay.git/.

The software also uses UPnP code from pyupnp, which is included. The official
home for pyupnp is:

http://code.google.com/p/pyupnp/

Dependencies
------------
The code has been tested with Python 2.7, but probably works with some earlier
2.x versions as well.

External dependencies include Twisted Web, Avahi, Mock and Lettuce (the last
two are only necessary for running tests). On a standard Ubuntu 11.04 server
setup, the following commands install the required dependencies:

sudo apt-get install python-twisted-web python-avahi

For running tests:

sudo apt-get install python-setuptools
sudo apt-get install python-nose
sudo easy_install mock
sudo easy_install lettuce

Version 0.7.0 of python-mock that exists in the Natty repositories is not
sufficient. As of this writing, easy_install provides version 0.8.0beta3.
If you use pip to install Python packages, use the following to get the
proper version:

sudo pip install mock==dev

The avahi daemon must be installed:

sudo apt-get install avahi-daemon

Installation
------------
There is currently nothing to install. See Running below.

Configuration
-------------
See the CONFIGURATION file.

Running
-------
You *may* need to add a route for the 239 net:

sudo route add -net 239.0.0.0 netmask 255.0.0.0 eth0

If avahi and dbus are not running, then:

sudo service dbus start
sudo service avahi-daemon start

To run airpnp, use the twistd runner. From the top-levl directory, issue the
following command:

twistd airpnp

To run in the foreground, use the following command:

twistd -n airpnp

To use a different configuration file than ~/.airpnprc:

twistd airpnp -c /path/to/config

To run a UPnP device discovery deamon in the foreground, use the following
command (uses ~/.airpnprc for configuration):

twistd -n upnpdisc

Running tests
-------------
To run unit tests, run the following from the top-level directory:

nosetests

To run integration tests, make sure Lettuce is installed and run the
following command from the top-level directory:

lettuce

Contact Information
-------------------
Author: Per Rovegård
Internet: http://www.airpnp.org
E-mail: [email protected]

Copyright and Licensing
-----------------------
Pyupnp is licensed using the 3-clause BSD license. Totem-plugin-airplay is
licensed using the MIT license. Airpnp as a whole is licensed using the
3-clause BSD license.

See the file LICENSE for the full license text.