Skip to main content
Contributor I
October 19, 2017
Question

How to get Alexa to tell Sonos to access my Local Music

  • October 19, 2017
  • 40 replies
  • 12947 views
All my music is stored on my computer, I don't use streaming services. The Sonos app is able to access my music and playlists, but using Alexa, all I can find are commands to access streaming services. How do I use Alexa to tell Sonos to access the music on my computer?
This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

40 replies

Prominent Collaborator I
October 23, 2017
Jgatie, you are correct, the index is indeed stored on the player.

However as I said, Amazon/Alexa must have access to this index to be able to know what track is playing.
Prominent Collaborator I
October 23, 2017
My post still appears to be correct though, except that we don't know if a copy of the index is stored online too.

I said 'possibly a local copy too' this may in fact be the only copy.

I also said that Amazon/Alexa must have access to this index, I assume you agree with me?
jgatie
October 23, 2017
I can tell you with 100% certainty there is no index in the cloud for local music on Sonos. Though not privy to the actual architecture, I know enough about it to state there is no need for Alexa to have direct access to this index because Alexa can tell us what is playing from all sorts of other services like Slacker, Google Play Music, Apple Music, etc. and Alexa doesn't have any access to those services. All that is needed is a basic ability for Alexa to real-time query the Sonos on what is playing, or (more simply) the Sonos player somehow updates Alexa when a song changes.

Incidentally, your experience with Alexa identifying the song as the last one played before the internet loss, instead of the current song, may point to the latter scenario; i.e. when there is a song change, Sonos simply pushes the current song to either it's own cloud for Alexa to access, or it actually sends it to Alexa/Amazon's cloud.

If above is true, it seems there is much less of a schema in place for Alexa to do the real-time direct queries on the local index necessary for initiating playback from the local library. Speculation of course (let's face it, that's what we are all doing here), but that means there is much more work to do on both the Sonos and the Amazon side to get local libraries fully supported.
Ryan S
Retired Sonos Staff
October 23, 2017
Also confirming that there's no cloud index for your local music. That's only stored on your Sonos players directly, nothing else.

However, when your players start playing something with the skill enabled, they tell the Sonos cloud what's on. So when you ask Alexa what's playing, the command goes to our cloud which looks up that room and what was last "advertised" as what's on. So if you're playing local tracks, the metadata for what's on is entirely dependent on what you called the track at home. Alexa and Sonos don't actually know what's on. They just have an artist name and track name. So if that track has no metadata, or bad metadata, you'll probably get some funny results.
Mark good posts by pressing the like button, and select the best answer on questions you've asked to help others find solutions.
jgatie
October 24, 2017
Ryan, thank you for confirming there is no cloud index, and it is Sonos pushing the metadata to the Sonos cloud upon a song change so Alexa can access that metadata when asked what is playing. Looks like my instincts were correct. As such, I assume that there is less of a infrastructure for Alexa to do the real-time direct queries on the local index necessary for initiating playback from the local library?

I understand if you do not wish to answer. If so, thanks for the insight you have given so far.
October 24, 2017

However, when your players start playing something with the skill enabled, they tell the Sonos cloud what's on.

Is this something that was not happening till now? And has started happening only after the Alexa integration is invoked on Sonos?
Prodigy II
October 24, 2017
This obviously has a ways to go before it's ready for prime time. You're basically saying that currently Sonos is nothing more than a really expensive set of external speakers for Alexa. For it to do what I want, Alexa doesn't need to have a way to query my local music or have a sophisticated back and forth between it and Sonos. It just needs to pass the request off to Sonos. "Alexa tell Sonos to play My Favorites in Living Room". Alexa doesn't need to know anything in request, other than to pass the command to my Sonos and potential receive a response back if Sonos is unable to do what is asked.

And how does it do that. The reason why it can’t has already been explained. In great detail.

Nope. You are saying that. Sonos remains, as always, an excellent multi-room wifi speaker system. Your expectation of miracles is what is at fault.
Lyricist II
October 24, 2017
Much of the above is well beyond my little brain. But as an end user I bought the dot and simply couldn't work out why it wouldn't play my local library. Not for one second did I think that functionality would not be present. I can't argue with the jargon, I can't argue with the figures for how much music is streamed but it most definitely stopped me going to buy some new sonos one speakers. The dot is now relegated to making fart noises for the kids.
Prominent Collaborator I
October 24, 2017
It seems to me that the only way that the Alexa functionality will ever be able to fully control local music is if a copy of your local library index is also uploaded to the Sonos cloud for Alexa to access.

I'm personally not bothered if an index of my local music is stored on the Sonos cloud, and maybe there could be an option added to the controller app that allows the index file to be uploaded to the cloud once an indexing procedure is completed if the user wishes to have Alexa control for their local music.

Maybe a dialog popup explaining that to enable this feature will require the user to agree to their music index being uploaded to the cloud?
Contributor III
November 12, 2017
I have a limited Amazon music library from the few CDs i've purchased as gifts in the past. A few minutes ago with no music playing i asked Alexa "what is playing" and 'she' told me it was Get Back by The Beatles. This is the last thing I streamed using my Echo Dot.

My Sonos system has London Grammar's Love is a Beautiful Thing queued up but not playing.
I have 3 Sonos devices (Bedroom, Living Room & Kitchen) and one Echo Dot (also called Bedroom). In the Alexa app it has renamed the Sonos "Bedroom" device to "Bedroom Sonos" which is quite clever as it solves the naming conflict.

The system is currently set to play through all 3 speakers.

If i give Alexa the command "Resume music" The Beatles track resumes.
If I give the command "Resume music in (Sonos Device Name)" London Grammar resumes playing on all 3 Sonos Devices.

Now when I ask Alexa "what is playing" 'she' tells me its London Grammar. Interestingly the name Alexa gives for the album is "love is a beautiful thing ninth of June twenty seventeen". This is interesting because in my local library I have saved the album names with the release date at the end (because Sonos doesn't support release date searching) so the album is stored as "Love is a Beautiful Thing (09/06/2017)".

So Alexa is directly reading and interpreting the album name when I ask whats playing. This could be coming from the Sonos player cache.

If I stop the music and ask Alexa to "play London Grammar in the (room)" it says it cannot find music from London Grammar. So although Alexa seems to have access to the current Sonos queue and song data for the current track, it doesn't have access to the local library.

The functionality is very close to what i (incorrectly) expected - and I can start/stop Sonos using my voice which is great.
This isn't new information as the previous posts in this thread have mentioned most of the above, but I thought i explain how my system is working in case it helps clear up any confusion about whats currently possible.