$npx skillfedfor your agent

soco

SoCo (Sonos Controller) is a simple library to control Sonos speakers.

Worth itPyPI Python ModulesReleased Jul 2026164.2K downloads / moMIT LicensePure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — soco-0.31.2-py3-none-any.whl
v0.31.2 · released 2026-07-29 · Python >=3.6 · 5 runtime deps: requests, xmltodict, ifaddr, appdirs, lxml

Yes. SoCo is actively maintained, has no known vulnerabilities, installs with low friction, and is released under a permissive MIT license. It is well-suited for anyone needing programmatic control of Sonos speakers. Be aware that some music services (Spotify, Apple Music, Amazon Music, Google Play Music, Napster) have known authentication issues; local library and TuneIn radio are more reliable. If your use case centers on those services, verify the current status of issue #557 before committing.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires a Sonos speaker reachable on the local network; discovery relies on network access to the Sonos device.
  • Installation is straightforward with low friction; the package is pure Python and pulls in five standard dependencies (requests, xmltodict, ifaddr, appdirs, lxml).
  • Maintenance is active with a recent release and ongoing development.

License · maintenance · safety

MIT License (permissive) — MIT License is permissive and imposes no significant restrictions on use, modification, or distribution for commercial or private projects.

last release 2026-07-29 (16 days) · last repo commit 2026-07-29 · 1,603 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 164,232 downloads/mo, #10,556 on PyPI

Verify before relying

pip install soco

from soco import discover
for zone in discover():
    print(zone.player_name)
    zone.volume = 10
  • Current status of music service authentication issues (Google Play Music, Apple Music, Amazon Music, Spotify, Napster) and whether v0.26.0+ fixes are stable.
  • Whether the nascent music service support mentioned in the description is production-ready or still experimental.
Same gist for agents: .md · .json

What it is and what it does

SoCo provides a Python interface to control Sonos speakers on your local network. It lets you discover speakers, adjust volume and playback, manage queues, group speakers, and retrieve track information—all programmatically rather than through the official app. The library communicates with Sonos devices via UPnP/SOAP protocols and exposes both high-level convenience methods (play, pause, volume) and lower-level access to Sonos services for advanced use cases.

The package depends on requests for HTTP communication, xmltodict and lxml for parsing Sonos XML responses, ifaddr for network interface discovery, and appdirs for configuration storage. It supports Python 3.6 and newer, including recent versions through 3.14. The library is actively maintained and has been in development since 2013, with a team of contributors managing the GitHub repository.

Use it for

  • Automate music playback across multiple Sonos speakers from a Python script or home automation system.
  • Build a custom web dashboard or mobile app to control Sonos speakers without relying on the official Sonos app.
  • Integrate Sonos control into a larger home automation workflow (e.g., play music when motion is detected).
  • Programmatically manage speaker groups and queue content based on time of day or external events.
  • Query current playback state and track information to log listening history or trigger actions based on what's playing.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

SoCo is actively maintained, has no known vulnerabilities, installs with low friction, and is released under a permissive MIT license. It is well-suited for anyone needing programmatic control of Sonos speakers. Be aware that some music services (Spotify, Apple Music, Amazon Music, Google Play Music, Napster) have known authentication issues; local library and TuneIn radio are more reliable. If your use case centers on those services, verify the current status of issue #557 before committing.

Install

soco on PyPI

Before you install

Installation is straightforward with low friction; the package is pure Python and pulls in five standard dependencies (requests, xmltodict, ifaddr, appdirs, lxml). Maintenance is active with a recent release and ongoing development.

Requires a Sonos speaker reachable on the local network; discovery relies on network access to the Sonos device.

License in practice

MIT License is permissive and imposes no significant restrictions on use, modification, or distribution for commercial or private projects.

Quickstart

pip install soco

from soco import discover
for zone in discover():
    print(zone.player_name)
    zone.volume = 10

Verify before relying

  • Current status of music service authentication issues (Google Play Music, Apple Music, Amazon Music, Spotify, Napster) and whether v0.26.0+ fixes are stable.
  • Whether the nascent music service support mentioned in the description is production-ready or still experimental.

Package facts

LicenseMIT License permissive
Python supportSupports the current Python release >=3.6
Install frictionLow. Pure-Python wheel
Runtime dependencies
5 packages
requestsxmltodictifaddrappdirslxml
MaintenanceActively maintained 16 days since the last release
Last repo commit
First released
Downloads164,232 / month, #10,556 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Home AutomationTopic :: Multimedia :: Sound/AudioTopic :: Multimedia :: Sound/Audio :: PlayersTopic :: Software Development :: Libraries :: Python Modules

Evidence: soco-0.31.2-py3-none-any.whl

Tags

Capabilities
sonos speaker control pythonsonos api librarycontrol sonos speakers programmaticallysonos zone player automationsonos music playback controlsonos home automationsonos queue managementsonos device discovery
Topics
home-automationsonosupnp

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “sonos speaker control python”

  • socoSoCo is a Python library for programmatic control of Sonos speakers…
  • sonos-websocketAsync Python library for communicating with Sonos devices over…
  • libsoundtouchControl Bose Soundtouch devices over the network, including playback,…

Give your agent the search over MCP, or paste the wish link into any chat.

More Python Modules packages

idna Worth it
PyPI · Python Modules · released Jun 2026

Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.

Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.

BSD-3-Clausepure Python · 3.9+
1.8Bdownloads / mo
setuptools Worth it
PyPI · Python Modules · released Aug 2026

Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.

MITpure Python · 3.10+
1.6Bdownloads / mo
PyYAML Worth it
PyPI · Python Modules · released Sep 2025

PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.

MITcompiled wheel · 3.8+
1.2Bdownloads / mo
pydantic Worth it
PyPI · Python Modules · released May 2026

Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.

MITpure Python · 3.9+
1.1Bdownloads / mo
annotated-types Worth it
PyPI · Python Modules · released Jul 2026

Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.

Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…

MITpure Python · 3.10+
871.3Mdownloads / mo
typing-inspection Worth it
PyPI · Python Modules · released Aug 2026

Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.

MITpure Python · 3.10+
783.0Mdownloads / mo

See also libsoundtouch · sonos-websocket · wiim · roonapi · python-songpal · aioslimproto · pysqueezebox · playsound · pyheos · SoundCard