Sonos opens up the Sonos Sound Platform

by Volker Weber

IMG 6453

Starting today you will read in the press that Sonos will open up its Control API to everybody without requiring an invitation. This will let developers build Sonos control hardware and software without coordination with Sonos.

Before we get into this, let's step back for a minute:

In order to understand this Control API you need to know how Sonos works. Sonos players are smart speakers. They play multiple sound streams in multiple rooms, from multiple accounts, controlled by multiple users using multiple interfaces. You control Sonos speakers using the Sonos app, hardware buttons, third party apps or hardware, and voice. Because of the variety of controls, Sonos encourages continuity of control. No matter where you started the music, you can pause it, skip it, or change its volume without having to use the same device.

Continuity of control is a big thing. For example, you can ask Alexa to start playing your favorite track, turn the volume up with the Sonos app, skip the next song using a button on the speaker, and stop the music with a third-party hardware remote. Control of Sonos is seamless and integrated.

The first thing your integration needs is authorization from the user. Sonos provides a login service to authenticate with a Sonos user's household. The login service uses the OAuth 2.0 authorization framework and three-legged authentication. Three-legged authentication includes three participants, the user, your integration, and Sonos.

This separates the new Control API from the old LAN based method of just discovering players and taking control. And it's not entirely new. When you integrate your Sonos household with Alexa, then Amazon is using this Control API. The three legs in the OAuth scheme are yourself, Amazon Alexa and Sonos.

You will see a lot more third party controllers very soon. And to make them work, you do need to authorize them with a Sonos ID. And that is why Sonos has been pushing you to register one for a few months now.

Always remember: Sonos does not just build speakers. It makes players. And their API game is strong. Dozens of services integrate with their platform and provide steams. This will now expand from content to control. And it will work for you, even if you are not logged into your WLAN.

Comments

> This separates the new Control API from the old LAN based method of just discovering players and taking control.

Does the new Control API also mean that one day in the near future we will have secured Sonos boxes that require a login to view/edit the playlist and change volume?

Chris Rolle, 2018-08-29

I don't know. Sonos does not like to break things. It used to be that you need to push a button on a Sonos player to authorize a new controller. That's a barrier Sonos removed.

Authenticated access means you no longer have to make sure you are on the correct network. If you were on your own guest network, you could not talk to your Sonos player since you need to be able to discover them through multicasts.

I think it means something else: Sonos is getting ready to leave the local network.

Volker Weber, 2018-08-29

"Sonos is getting ready to leave the local network" I really hope that isn't going to open up the possibility of hackers blasting me out of my sleep at 4 a.m. by playing Black Sabbath or Nine Inch Nails at full volume on my Sonos speakers! ;-)

John Keys, 2018-08-29

I would like to play around. Can you get us Beta passes?

How far away are we from Assistant integration then? Days?

Johannes Koch, 2018-08-29

John, your friends who have Wifi access can do that today: https://youtu.be/oHg5SJYRHA0

Johannes, I can't get you anything. You will be able to get it yourself RSN. And you are guessing correctly. That is what Google will be using. But first Assistant needs to go into beta.

Volker Weber, 2018-08-29

Volker, why do SONOS players do not have a little bit of memory of what they played just played? Sometimes we listen to one of the hundreds "The Three Investigators" audio books. Each of these audio books contains 40 to 50 songs. Then we listen to news in the radio or something else and after that want to go back to the audiobook where we stopped before. Then we have to search thru hundreds of the audio books and locate the song where we stopped. It should not be this difficult to keep some memory of what has been played before, or is it?

Felix Binsack, 2018-08-29

Wo kommen die Hörbücher her? Audible weiß exakt, wo Du aufgehört hast zu hören. Overcast kann das auch mit Podcasts. Das ist Aufgabe des Service.

Aber wenn Du Dir eine eigene History zusammenstricken willst, dann kannst du nächste Woche damit anfangen.

Volker Weber, 2018-08-29

Volker, die Hörbücher kommen von Tidal. SONOS bietet aber gar kein UI für die Anzeige der zuletzt gespielten Lieder. Da nützt mir doch die Funktion des Service nicht viel, wenn ich sie aus SONOS nicht aufrufen kann. Es wäre für die User wohl auch sehr umständlich, für jeden Service ein eigenes UI zu erlernen. Eine generische, dienstübergreifende Lösung wäre sicher viel einfacher. Ich befürchte nur, dass es bei der Erstellung einer solchen Funktion für die gespielten Lieder ein Problem gibt, sonst hätte es SONOS doch sicher längst umgesetzt. Vielleicht weiss SONOS ganz einfach nicht, wo es diese Informationen ablegen sollte. Vielleicht reicht der Speicherplatz nur für die Ablage der Konfiguration? Vielleicht Gäbe es Probleme bei der Synchronisation der Information über mehrere Player hinweg?

Felix Binsack, 2018-08-29

Du kennst doch die Queue, oder? Da steht, was Du hören willst, was Du gerade hörst und was Du gehört hast. Und wenn Du in Apple Music schaust, dann siehst Du, was Du zuletzt gehört hast. Kann Tidal das nicht? Und was ist, wenn Du ein Buch auf dem iPhone hörst und dann auf Sonos weiterhören willst? Soll der Sonos Player irgendwie wissen, was Du in anderem Kontext gehört hast? Für mich gehört das in den Service, für Dich in den Player.

Du willst eine ganz bestimmte Lösung, die Dir vorschwebt. Und das Schöne ist, dass Du die bald exakt so bauen kannst. Du kannst Dir dann Gedanken machen, ob Du das an genau einen Player binden willst oder an alle in einem Household.

Volker Weber, 2018-08-30

@John Keys, if they play Closer of Nine Inch Nails, I wouldn't mind ;)

Nina Wittich, 2018-08-30

Volker,

>>Du kennst doch die Queue, oder?
>>Da steht, was Du hören willst, was
>>Du gerade hörst und was Du gehört hast.

Ne, also in meiner Queue steht nicht, was ich gehört habe. Hat da auch noch nie gestanden. Das wäre ja genau, was ich mir wünsche.

Bei manchen meiner Player ist die Queue komplett leer, als wenn ich noch nie irgendetwas dort gehört hätte. Bei anderen Playern beinhaltet die Queue gerade einmal ein Lied. Teilweise werden auch ein paar Songs angezeigt, es ist aber nicht erkennbar aus welchem Dienst oder aus welcher Playlist der Song stammt. Teilweise steht das "Queue (Not in use)".

Felix Binsack, 2018-08-30

Und schon haben wir die Lösung.

Felix (alt): "why do SONOS players do not have a little bit of memory of what they played just played?"

Felix (neu): "Wie kann ich die Sonos Queue nutzen?"

vowe: "Wähle im Sonos Controller aus, was Du gerne hören willst, klicke auf die drei Punkte dahinter und wähle die Option Add To End of Queue."

Problem gelöst.

Volker Weber, 2018-08-31

OK, wir spielen eigentlich immer alles direkt, d.h. ohne es erst der Queue hinzuzufügen. Das geht so:
a) Die Kinder suchen sich ein Hörspiel aus und spielen es direkt.
b) Wir essen gemeinsam und wollen währenddessen kein Hörspiel hören, ggf. lieber Radio
c) Wir ändern ggf. noch das Setup, trennen oder verbinden die Player
d) SONOS hat vergessen was vorher lief, die Kindern finden ihr Hörspiel nur noch umständlich.

Mir, den Kindern und meiner Frau beizubringen immer mit der Queue zu arbeiten wird eine Challenge.

Felix Binsack, 2018-08-31

Die Welt ist halt kompliziert, wenn man viele Optionen hat. Am Anfang ging alles über die Queue. Dann wollten einige User auch ohne Queue arbeiten und wenn man das macht, steht halt nichts drin.

Nächste Woche kannst Du anfangen, das so bauen, wie Du es brauchst. Inklusive Gruppierung von Playern, um Gruppierung etc. Als Developer registrieren, ein bisschen JSON und JavaScript. Kannst Du alles.

Volker Weber, 2018-08-31

Volker, Danke für die Blumen, aber ich war nie ein guter Programmierer. Deswegen habe ich 1996 mit Projektleitung angefangen und seit 1998 fast nichts mehr selber programmiert.

Felix Binsack, 2018-08-31

Old vowe.net archive pages

I explain difficult concepts in simple ways. For free, and for money. Clue procurement and bullshit detection.

vowe

Paypal vowe