SoCo (Sonos Controller) is a simple library to control Sonos speakers.
SoCo (Sonos Controller) is a simple Python class that allows you to programmatically control Sonos speakers. It was originally created at Music Hack Day Sydney by Rahim Sonawalla and is now developed by a team of people at its GitHub repository
For more background on the project, please see Rahim’s blog post.
Visit the SoCo documentation for a more detailed overview of all the functionailty.
SoCo requires Python 2.7, or 3.3 or newer.
pip install soco
SoCo depends on the Requests HTTP library. If you use pip to install Soco, Requests will be installed automatically for you. If not, you can use:
pip install requests
You can interact with a Sonos Zone Player through a SoCo object. If you know the IP address of a Zone Player, you can create a SoCo object directly:
>>> from soco import SoCo >>> my_zone = SoCo('192.168.1.101') >>> my_zone.player_name Kitchen >>> my_zone.status_light = True >>> my_zone.volume = 6
But perhaps the easiest way is to use the module-level discover function. This will find all the Zone Players on your network, and return a python set containing them:
>>> import soco >>> for zone in soco.discover(): ... print zone.player_name Living Room Kitchen
If you prefer a list to a set:
>>> zone_list = list(soco.discover()) >>> zone_list [SoCo("192.168.1.101"), SoCo("192.168.1.102")] >>> zone_list.mute = True
Of course, you can also play music!
#!/usr/bin/env python from soco import SoCo if __name__ == '__main__': sonos = SoCo('192.168.1.102') # Pass in the IP of your Sonos speaker # You could use the discover function instead, if you don't know the IP # Pass in a URI to a media file to have it streamed through the Sonos # speaker sonos.play_uri( 'http://archive.org/download/TenD2005-07-16.flac16/TenD2005-07-16t10Wonderboy_64kb.mp3') track = sonos.get_current_track_info() print track['title'] sonos.pause() # Play a stopped or paused track sonos.play()
To show off what can be made with SoCo, a simple web application is included in the examples folder.
Screenshot of web app
SoCo supports the following controls amongst others:
SoCo also supports lower level access from Python to all Sonos services (eg Alarms)
There is a Soco group over at Google Groups. Feel free to drop in.
SoCo is released under the MIT license.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|File Name & Checksum SHA256 Checksum Help||Version||File Type||Upload Date|
|soco-0.12-py2.py3-none-any.whl (107.4 kB) Copy SHA256 Checksum SHA256||3.4||Wheel||Oct 9, 2016|
|soco-0.12.tar.gz (638.7 kB) Copy SHA256 Checksum SHA256||–||Source||Oct 9, 2016|