Subsonic Integration

ffejeroni

Senior Member
Oct 19, 2008
55
3
0
Detroit
Anyone know of a way to get Google Home to play music from my local Subsonic server? I've searched for a few months and not been able to come up with anything. Any help or suggestions would be greatly welcomed!
 

ctrlaltca

Member
Mar 6, 2017
14
11
3
Short answer: nothing exists at the moment.
I just started working on an integration project using google actions + dialogflow + a php script + a plain subsonic installation.
By now I'm able to ask for a song by its title and artist, make a search on subsonic, make google home speech the song name and stream it.
It's very far from being something easy to setup and use, but if you're interested and want to get your hand dirty on some unfinished code, I can set up some instructions.
 
  • Like
Reactions: ShinikVeech

ShinikVeech

Member
Jun 15, 2010
5
0
0
@ctrlaltca I set everything up (and even went so far as to set up ssl with letsencrypt, in case that was my issue) but after the welcome message, I am not getting very far.

Is there supposed to be anything set in the Responses section of the make_query intent? It seems that when that is blank, I get a "MalformedResponse: 'final_response' must be set." from the simulator and the integration crashes.

Any help would be appreciated. Thanks for all that you have done! This looks great so far.

Mark

---------- Post added at 01:56 PM ---------- Previous post was at 01:48 PM ----------

Sorry; one more thing. I am not seeing any traffic on my webserver, so I have a feeling I might be missing something on the fulfillment configuration.

Thanks again!

Mark
 

ctrlaltca

Member
Mar 6, 2017
14
11
3
Is there supposed to be anything set in the Responses section of the make_query intent? It seems that when that is blank, I get a "MalformedResponse: 'final_response' must be set." from the simulator and the integration crashes.
The make_query intent should have no response set, but have the "Set this intent as end of the conversation" flag enabled.
Anyway, that error you receive is just a really developer-unfriendly way for the google server to tell you that it didn't receive a valid response from your server.

Sorry; one more thing. I am not seeing any traffic on my webserver, so I have a feeling I might be missing something on the fulfillment configuration.
This can be a valid symptom of problems.
I'd first check if the php script is able to query the subsonic server; here's a short writeup: https://github.com/ctrlaltca/google-home-subsonic/wiki/Test-invocation
Once that is confirmed to work, try to open the full url to index.php using a browser and ensure it replies correctly with something like
Code:
{"source":"subsonic","fulfillmentText":"Problema nella richiesta: nessuna azione"}
.
Once you have the full url to index.php, enable the "Webhook" switch in the Fulfillment page and insert that url as the Fulfillment Webhook URL; if i remember correctly, a valid https certificate is needed (you should be fine with letsencrypt, i'm using it, too).
 

ctrlaltca

Member
Mar 6, 2017
14
11
3
Glad to know you got it to work!
I had a look at your commits, I've tried using search3 in the past but found out it to be more confusing when searching big libraries, as it tends to mix up artist and song names.
Eg. if i want to play "like a rolling stone" by Bob Dylan, sometimes i get a random song from the "Rolling Stones" band or a song from an album called "Rolling Stone Magazine's 500 Greatest Songs Of All Time".
But i have to admin that sometimes it's easier to just search on all fields.. maybe a different intent can be added.
 

ShinikVeech

Member
Jun 15, 2010
5
0
0
I had a look at your commits, I've tried using search3 in the past but found out it to be more confusing when searching big libraries, as it tends to mix up artist and song names.
Eg. if i want to play "like a rolling stone" by Bob Dylan, sometimes i get a random song from the "Rolling Stones" band or a song from an album called "Rolling Stone Magazine's 500 Greatest Songs Of All Time".
But i have to admin that sometimes it's easier to just search on all fields.. maybe a different intent can be added.
Yeah, I'm going back and forth on that. I think I'm going to add intents for some other use cases (shuffle {artist}, e.g.) but I'm still deciding how I want to do that.

Thanks again for putting this together!

Mark
 

bobjackiewicz

New member
Dec 15, 2018
1
0
0
Yeah, I'm going back and forth on that. I think I'm going to add intents for some other use cases (shuffle {artist}, e.g.) but I'm still deciding how I want to do that.

Thanks again for putting this together!

Mark
Have you made any progress in the last few months? This sounds like an interesting idea.