Any chance that you could test the spotify Integration?
All above looks correct, the url works … At this point I’m pretty clueless what could be the problem.
I don’t have a sonos so I don’t know if play_media works with online stored media at all …
I will try to test the Spotify integration later. Waiting on the premium subscription to be active.
Tested some .mp3 files over the internet which works on my Sonos. Apart from that, I’m nowhere near a dev or anything like that, so if you are clueless, than I’m automatically too
Maybe, but you have the hardware on site
Have you tried to download a track from youtube to a local place like your www folder and send your sonos a link to that file?
E.g. test.mp3 in the www folder and send http://IP.8123/local/test.mp3 to the speaker
Jkw
Well, not on my own Home Assistant instance. I have SSL setup and it cried about an ssl issue or something. But I have found a link to a public MP3 files which plays without any issue.
“https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3”
Well basically the following thing can be the issue from my view:
1.) Sonos can’t play online stored files at all
2.) The media type has to be different from audio/mp3
3.) The youtube link are too long
4.) The youtube links are ssl
5.) The YouTube links don’t provide proper file type suffixes
6.) Something else in the file isn’t compatible with sonos
You’ve tested 1.) And 2.) And 4.)
The next logical step would be to grab the file from youtube and store/play it locally. Either with a shorter filename and with/without file type suffix
I have tried the Spotify integration but I’m a bit stuck.
I can use the integration, I can browse all the information through the media browser but there is no option from there to select a output device. It works with Spotcast, but that does not work for Sonos.
They made some progress on Spotify with Sonos, but as far as I know you are not able to browse using the media browser.
Here you can see that the correct uri from Sonos is used to make it work.
As said I am nowhere near a developer so I have no clue how to help any further for testing…
try the play_media url with the x-rincon-mp3radio prefix from edit3 below
download one song from youtube (just take the url from above) and store it to e.g. C:\temp\ with its original very long file name (or ‘a very long filename’ without suffix)
make a copy of the file with a way shorter filename e.g. test with no suffix
edit3: also try “x-rincon-mp3radio://YOURIP/test.mp3” instate of “http://YOURIP/test.mp3”
actually this might be a good idea upfront … try the original url from youtube and do the same replace there …
Simply do the same thing with this url:
x-rincon-mp3radio://r2—sn-5hne6nsr.googlevideo.com/videoplayback?expire=1608678376&ei=iCfiX7UjmtHXAu6tuZAL&ip=82.101.221.21&id=o-AJu9pHDJsPegnHiwZ4BoQ7XSsrKDfVyemEI36iA9SPyo&itag=140&source=youtube&requiressl=yes&mh=Br&mm=31%2C26&mn=sn-5hne6nsr%2Csn-4g5e6nlk&ms=au%2Conr&mv=m&mvi=2&pl=19&ctier=A&pfa=5&initcwndbps=1993750&hightc=yes&vprv=1&mime=audio%2Fmp4&ns=goTt-i2F5Wt6tkNLZjq8TM4F&gir=yes&clen=2736775&dur=169.041&lmt=1542338135916627&mt=1608656442&fvip=2&keepalive=yes&c=WEB_REMIX&txp=5432432&n=PqU0-uLypukRlye5&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cctier%2Cpfa%2Chightc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAKqdrFVZWwBYPtzoErxVfYNArxfn_a_m9H41g2xgR0Q2AiAbeTZAARfTxqEV04OoKnpmoGlGg0uNJGmI9loQbrRH4Q%3D%3D&sig=AOq0QJ8wRAIgV_y_-enNLZRo_tZ1yvUQpXLk9IRIJ-QuMTgdcgCAseACIG_Ndg8WcQanvXzcLdoOOBllRU4g-63f_S8BZ3SmmjsG
Edit although I don’t expect it to work due to the missing ssl
In the Sonos app I see that something wants to play but I get the message:
“cannot play videoplayback?expire= UNTIL BoQ7” (where UNTIL is everything in between) after that it also says cannot connect to r2--sn-5hne6nsr.googlevideo.com because the server is not found. Maybe the string is. indeed too long, because it looks like it caps the url at BoQ7…
I hit this error after updating (it’s fixed now so there is no issue)
2020-12-26 13:25:16 ERROR (SyncWorker_3) [custom_components.ytube_music_player.media_player] Exception during login, e.g. login data are NOT correct
2020-12-26 13:25:20 ERROR (SyncWorker_5) [custom_components.ytube_music_player.media_player]
============= ytube_music_player Integration Error ================
2020-12-26 13:25:20 ERROR (SyncWorker_5) [custom_components.ytube_music_player.media_player] unfortunately we hit an error in the sub api, please open a ticket at
2020-12-26 13:25:20 ERROR (SyncWorker_5) [custom_components.ytube_music_player.media_player] https://github.com/sigma67/ytmusicapi/issues
2020-12-26 13:25:20 ERROR (SyncWorker_5) [custom_components.ytube_music_player.media_player] and paste the following output:
2020-12-26 13:25:20 ERROR (SyncWorker_5) [custom_components.ytube_music_player.media_player] Traceback (most recent call last):
File "/home/homeassistant/homeassistant/custom_components/ytube_music_player/media_player.py", line 543, in _update_playlists
self._playlists = self._api.get_library_playlists(limit = 99)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/ytmusicapi/mixins/library.py", line 29, in get_library_playlists
results = find_object_by_key(nav(response, SINGLE_COLUMN_TAB + SECTION_LIST),
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/ytmusicapi/parsers/utils.py", line 167, in nav
raise err
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/ytmusicapi/parsers/utils.py", line 161, in nav
root = root[k]
KeyError: 'contents'
2020-12-26 13:25:20 ERROR (SyncWorker_5) [custom_components.ytube_music_player.media_player]
thanks, Kolja
2020-12-26 13:25:20 ERROR (SyncWorker_5) [custom_components.ytube_music_player.media_player] ============= ytube_music_player Integration Error ================
I just wanted to mention this in case it’s helpful to know - you did correctly catch the error on the first line.
2020-12-26 13:25:16 ERROR (SyncWorker_3) [custom_components.ytube_music_player.media_player] Exception during login, e.g. login data are NOT correct
I had forgotten that I recently cleared by browser cache.
I returned to YouTube Music and retrieved a new copy the cookie, which I was able to then reconfigure, using the integration’s OPTIONS. - Everything is back running now without error.
When detecting a login exception, it might be helpful to suggest for a user to obtain and reconfigure a fresh browser cookie.
I’ll add that, thanks for mentioning it. The login is still not “good” and that’s a known task for the underlying api. I’m very happy for all the great work they’ve done and I’m sure that they’ll find a proper way instead of the cookie - but until that: that’s what we have to deal with.
Jkw
Wow this is really amazing, love everything you have done! Trying to get the mini media player to work with my google home minis/nest minis. I cant seem to figure it out. Anyone have this working?
I walk down to the kitchen (an motion sensor detects me, turns on the lights and (within a certain time-window), starts playback of ytube_music in the kitchen)
Once the coffee is ready I walk over the my office (holding the kitchen lightswitch for 1s turns all lights etc off)
After arriving in my office I have to open homeassistant, turn off the ytube_music player, switch to the office player, turn it on again … sometime have to listen to the same song …
didn’t like that … so the new feature will help
The automation that turns off the kitchen light will (within a certain time-window) simply fire the media_player.select_source command
That will
grab the current media_position of the track on my kitchen player
stop the playback in the kitchen
turn off the kitchen player
start the same track (and playlist) on my office player
seek forward to the same position that the kitchen player was stopped at
Might be useful for any of you as well …
It works fine between my Google Home mini and my Chrome-cast and back, but I haven’t tested this on any other player … there is a little risk that the seek command arrives before the player started the playback (still loading the track). Never happened to me, but could be a potential weakness.