Skip to main content

Sonos command line control utility, based on SoCo

Project description

Buy Me A Coffee

SoCo-CLI: Control Sonos from the Command Line

Overview

SoCo-CLI is a powerful command line wrapper for the popular Python SoCo library [1] for controlling Sonos systems. SoCo-CLI is written entirely in Python and is portable across platforms.

A simple sonos command is provided which allows easy control of a huge range of speaker functions, including playback, volume, groups, EQ settings, sleep timers, alarms, speaker settings, the playback queue, etc. Multiple commands can be run in sequence, including the ability to insert delays between commands, to wait for speaker states, and to create repeated action sequences using loops. Audio files from the local filesystem can be played directly on Sonos.

SoCo-CLI has an orderly command structure and consistent return values, making it suitable for use in automated scripts, cron jobs, etc.

For interactive command line use, SoCo-CLI provides a powerful Interactive Shell Mode that improves speed of operation and reduces typing.

SoCo-CLI can be imported as a streamlined, high-level API library by other Python programs, and acts as an intermediate abstraction layer between the client program and the underlying SoCo library, simplifying the use of SoCo.

SoCo-CLI can also run as a simple HTTP API server, providing access to a huge range of actions via simple HTTP requests. (Note that using this functionality requires Python 3.6 or above.)

Supported Environments

  • Requires Python 3.5+. (The HTTP API Server functionality requires Python 3.6 or above.)
  • Runs on all platforms supported by Python. Tested on various versions of Linux, macOS and Windows.
  • Works with Sonos 'S1' and 'S2' systems, as well as split S1/S2 systems.

Installation

Install from PyPI using pip install soco-cli.

User Guide

The installer adds the sonos command to the PATH. All commands have the form:

sonos SPEAKER ACTION <parameters>
  • SPEAKER identifies the speaker, and can be the speaker's Sonos Room name or its IPv4 address in dotted decimal format. Note that the speaker name is case sensitive (unless using alternative discovery, discussed in the full documentation).
  • ACTION is the operation to perform on the speaker. It can take zero or more parameters depending on the operation.

Actions that make changes to speakers do not generally provide return values. Instead, the program exit code can be inspected to test for successful operation (exit code 0). If an error is encountered, an error message will be printed to stderr, and the program will return a non-zero exit code.

Simple Usage Examples:

  • sonos "Living Room" volume Returns the current volume setting of the Living Room speaker.
  • sonos Study volume 25 Sets the volume of the Study speaker to 25.
  • sonos Study group Kitchen Groups the Study speaker with the Kitchen speaker.
  • sonos 192.168.0.10 mute Returns the mute state ('on' or 'off') of the speaker at the given IP address.
  • sonos 192.168.0.10 mute on Mutes the speaker at the given IP address.
  • sonos Kitchen play_favourite Jazz24 : wait 30m : Kitchen stop Plays 'Jazz24' for 30 minutes, then stops playback.

Please see https://github.com/avantrec/soco-cli for full documentation.

Links

[1] https://github.com/SoCo/SoCo

Acknowledgments

All trademarks acknowledged. Avantrec Ltd has no connection with Sonos Inc.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soco-cli-0.4.26.tar.gz (81.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

soco_cli-0.4.26-py3-none-any.whl (68.7 kB view details)

Uploaded Python 3

File details

Details for the file soco-cli-0.4.26.tar.gz.

File metadata

  • Download URL: soco-cli-0.4.26.tar.gz
  • Upload date:
  • Size: 81.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.9

File hashes

Hashes for soco-cli-0.4.26.tar.gz
Algorithm Hash digest
SHA256 f8d87999aa657a0a2de36d25dd0bbf5a3a2fef2e2f725870c36c5dd06c834ca7
MD5 1a2efa984366e1e6abb1ff0595966888
BLAKE2b-256 a0c81655895ce9b62d11f87579da17c6a548e492ffaf8cd0fd5a5fd7ec35d5fd

See more details on using hashes here.

File details

Details for the file soco_cli-0.4.26-py3-none-any.whl.

File metadata

  • Download URL: soco_cli-0.4.26-py3-none-any.whl
  • Upload date:
  • Size: 68.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.9

File hashes

Hashes for soco_cli-0.4.26-py3-none-any.whl
Algorithm Hash digest
SHA256 7eb76fb087a1456f3ac229055cc10a7c43fcfedb4e2342f1c4b1d4f72af03119
MD5 9ed123fb7d72b4a66f45d3ee448a38dd
BLAKE2b-256 bd410b5c36cea1b067dfc9a440156f3ea7adae7cb49e0427868ba5541969b809

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page