python-snapcast
python-snapcast copied to clipboard
Python API for controlling Snapcast, a multi-room synchronous audio solution.
python-snapcast
Control Snapcast in Python 3. Reads client configurations, updates clients, and receives updates from other controllers.
Supports Snapcast 0.15.0.
Install
pip install snapcast
Usage
Control
import asyncio
import snapcast.control
loop = asyncio.get_event_loop()
server = loop.run_until_complete(snapcast.control.create_server(loop, 'localhost'))
# print all client names
for client in server.clients:
print(client.friendly_name)
# set volume for client #0 to 50%
client = server.clients[0]
loop.run_until_complete(server.client_volume(client.identifier, {'percent': 50, 'muted': False}))
Client
Note: This is experimental. Synchronization is not yet supported. Requires GStreamer 1.0.
import snapcast.client
client = snapcast.client.Client('localhost', snapcast.client.SERVER_PORT)
client.register()
client.request_start() # this blocks