Skip to main content

Sonos Command-Line Tools

Project description

Sonos command-line interface

Control your Sonos players from command-line. Uses Sonos Control API to control Sonos groups.

Build Status Deploy Status PyPI

Installation

Using Homebrew on OSX:

brew tap bwilczynski/tap
brew install sonos-cli

Using pip (requires Python 3):

pip install sonos-cli

Usage

$ sonos [OPTIONS] COMMAND [ARGS]

Get Started

Setup integration with Sonos API and run sonos config to provide your application's Client ID and Client Secret.

Make sure that:

  • Redirect URI is set to: http://localhost:5000
  • YOUR_CLIENT_ID: set to your Key (and not key name)
  • YOUR_CLIENT_SECRET: set to your Secret

Sonos Integration

Alternatively set the following environment variables before running sonos:

export SONOS_CLIENT_ID={YOUR_CLIENT_ID}
export SONOS_CLIENT_SECRET={YOUR_CLIENT_SECRET}

Login to your Sonos service (opens a web browser sending user to Sonos login service):

$ sonos login

Set active household:

$ sonos set household

For usage and help content, pass in the --help parameter, for example:

$ sonos --help
$ sonos get --help

Available commands

Get information from your Sonos:

$ sonos get [groups | households | playlists | tracks]

Format displayed result using --output option:

$ sonos get groups --output table

coordinatorId             id                                   name              playbackState
------------------------  -----------------------------------  ----------------  ----------------------
RINCON_B8E937E6D36202100  RINCON_B8E937E6D36202100:23          Bedroom.          PLAYBACK_STATE_PAUSED
RINCON_B8E937E6D40E02100  RINCON_B8E937E6D40E02100:128         Bathroom          PLAYBACK_STATE_IDLE
RINCON_B8E937DA7E6802100  RINCON_B8E937DA7E6802100:17          Bathroom 2.       PLAYBACK_STATE_PAUSED
RINCON_347E5C90FA9502100  RINCON_347E5C90FA9502100:4142323492  Living Room       PLAYBACK_STATE_PLAYING
$ sonos get groups --output json

[
  {
    "coordinatorId": "RINCON_B8E937E6D36202100",
    "id": "RINCON_B8E937E6D36202100:23",
    "name": "Bedroom",
    "playbackState": "PLAYBACK_STATE_PAUSED",
    ...
  }
  ...
}

Control playback:

$ sonos play
$ sonos pause
$ sonos next
$ sonos prev

Set active group / household:

$ sonos set [group | household]

Get playback status:

$ sonos status

Control group volume

$ sonos volume
20
$ sonos volume 25

The volume can also be set relative to its current value by prefixing it with + or -. To avoid the parameter being treated as a flag when setting a negative value, using -- before.

$ sonos volume +5
$ sonos volume -- -5

Project details


Download files

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

Source Distribution

sonos-cli-0.3.7.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

sonos_cli-0.3.7-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file sonos-cli-0.3.7.tar.gz.

File metadata

  • Download URL: sonos-cli-0.3.7.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.8.5

File hashes

Hashes for sonos-cli-0.3.7.tar.gz
Algorithm Hash digest
SHA256 c7b4438fbff7f0d17855d5d664c5dda0ea3b5f0861c53dbfa83601e8a66a4db2
MD5 a2647d0356a575bcc212d46c1335685a
BLAKE2b-256 3637bc869c0513420024399b28cd0ed1c7b51be4b80de5be28bed9d432f4a131

See more details on using hashes here.

File details

Details for the file sonos_cli-0.3.7-py3-none-any.whl.

File metadata

  • Download URL: sonos_cli-0.3.7-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.8.5

File hashes

Hashes for sonos_cli-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 9845b5bcf94b7cfddcbae36164760ae63009e2c6e26f92403d296b302e7be66c
MD5 94da450220b2521f4d638c1a9998d91b
BLAKE2b-256 f14f8dc09b21496a27e20f008a5c445e16af997c719dc1278d7f80a6189d7674

See more details on using hashes here.

Supported by

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