= Setting up Sonos Service

* Prerequisites
** In your Sonos App get your Sonos ID (About my Sonos System)
+ image::images/about.png

** Navidrome running and available from the Internet. E.g. via https://music.mydomain.com
** Bonob running and available from the Internet. E.g. via https://bonob.mydomain.com

You can use any method to make these URLs available. Cloudflare Tunnels, Pangolin, reverse proxy, etc.

* Log into https://play.sonos.com
* Once logged in go to https://developer.sonos.com/s/integrations

* Create a *New Content Integration*

** General Information
*** Service Name: Navidrome
*** Service Availability: Global
*** Checkbox checked
*** Website/Social Media URLs: https://music.mydomain.com (Some URL - e.g. your Navidrome server)

** Sonos Music API
*** Integration ID: com.mydomain.music (your domain in reverse)
*** Configuration Label: 1.0
*** SMAPI Endpoint: https://bonob.mydomain.com/ws/sonos
*** SMAPI Endpoint Version: 1.1
*** Radio Endpoint: empty
*** Reporting Endpoint: https://bonob.mydomain.com/report/v1
*** Reporting Endpoint Version: 2.3
*** Authentication Method: OAuth
*** Redirect: https://bonob.mydomain.com/login
*** Auth Token Time To Life: Empty
*** Browse/Search Results Page Size: 100
*** Polling Interval: 60

** Brand Assets

Just upload the various assets from the `sonos_artwork` directory.

** Localization Resources

Write something about your service in the various fields (except Explicit Filter Description).

** Integration Capabilities

Check the first two (*Enable Extended Metadata* and *Enable Extended Metadata for Playlists*) and nothing else.

** Image Replacement Rules

No changes

** Browse Options

No changes

** Search Capabilities

*** API Catalog Type: SMAPI Catalog
*** Catalog Title: Music
*** Catalog Type: GLOBAL

Add Three Categories with ID and Mapped ID:

Albums - albums
Artists - artists
Tracks - tracks

** Content Actions

No changes

** Service Deployment Settings

*** Sonos ID: Your Sonos ID (from About my system). This is how only your controller sees the new service.
*** System Name: Whatever you want

** Service Configuration

Click on *Refresh* and then *Send*. You should get a success message that you can dismiss with *Done*.

* In your app search for your service name and add Service in your app as usual.
