Link Search Menu Expand Document

sonos-api-docs

Sonos api documentation for the local UPNP api and a generator to generate clients and documentation based on service discovery

Join us on Discord github issues Support me on Github

This library is in no way connected to Sonos. It’s just a set of text files to document a hidden and unsupported api.

Documentation

Check-out the (generated) documentation about all the SONOS UPNP services svrooij.io/sonos-api-docs/services/

Manual documentation file

We cannot get all the information by using service discovery, there is one file that we manually edit to document some the actions (accepting pull-request to improve).

This file has a documentation json schema which means VS Code will guide you when editing this file.

Update documentation

If you change the documentation file or if you did service discovery for a new device. You can update the documentation files with the following commands:

# Go to generation folder
cd generator/sonos-docs

# Generate intermediate file
npm run intermediate
# or ./bin/run combine --docsFile=../../docs/documentation.json --models=S1-1,S5-1,S9-1 --folder=data

# Generate documentation
npm run docs
# or ./bin/run generate docs ../../docs

Generator

You can find the generator here and use it to generate your own sonos client in your preferred language.

Device discovery files

You can use the generator to generate your own discovery files, but we also have the files available for download.

These files toghether with the documentation file, are combined to a extensive JSON file, that is used as an input for the generator.

Templates

The generator uses handlebars.js templates to generate the documentation/strong typed clients. Check-out the docs template as a sample to develop your own templates.

A template is a folder with a template.json file, that describes the template and specifies what templates should be used to either generate an index (all services in a single file), or a seperate file for each service. The template.json also has a json schema so VS Code will guide you when creating your own template.

Community

Join us on Discord

If you need help building an app that talks to your sonos speakers, or you want to share some of your findings. Join us on Discord.

Contributors ✨

All Contributors

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!