Server Version#: 1.43.0.10346
Player Version#: Web player 4.152.0
I used to be able to cast music just fine with the generic Plex android app before the release of Plexamp. However, since the release of Plexamp and removal of all music from the android Plex app, I’ve been unable to play directly from Plexamp to my Sonos speakers.
This morning I found this post and upon thorough testing I found that checking the Settings→Network→“Enable Relay” option allows the Sonos speakers to be used as an endpoint for Plexamp music! However, there is a noticeable delay between the UI and the speaker response which makes the experience quite poor. Also, starting the initial playback gets sketchy as the music starts and stops without user intervention until it has been playing a while. I’m pretty sure these artifacts are because of the relay.
I can see that the relay is being used for Plexamp because in the “Dashboard” view I can see a yellow exclamation point on the Sonos dashboard item the indicates “Indirect” - which I assume means the relay is being used.
I have Chromecasts and Smart TVs on my network as well and I use them both regularly to cast Plex content (WITHOUT USING A RELAY). So, why in the world would I need a relay to cast music to my Sonos speakers?
I’m thinking this is a problem inside the Plexamp app since this worked without a relay in the older music-enabled Plex app.
What’s worse? Without the relay enabled, I can use the Sonos app as the starting point to connect to Plex and play Plex media to the speakers. I just really dislike the Sonos app so I’d prefer to use the Plexamp app instead. FML, I guess.
Hi, I am also having trouble with casting, but I use Plexamp and it doesn’t seem to matter if I have relay on or not. I was able to cast a few days ago then it suddenly stopped working. I am able to use other apps to cast on the same network so it isn’t a phone or chromecast issue…seems to be isolated to plex.
Is this a thing? Do we have to have relay enabled to play music in Plexamp? I have a tailscale network which should make this dead simple for Plex to get to, and it works absolutely fine for all other media, but not Music, which is moved to a separate app.
I don’t know why we needed a separate app to do this.
I have the same issue, and I think I’ve narrowed it down to the “Custom server access URLs” in the advanced server networking settings. For reference, this is on server version 1.43.0.10467, Plex Web version 4.157.0, and Plexamp Android version 4.12.4.
I have custom server urls set to “https://plex.XXXXX.com,http://plex01.XXXX.lan:32400” (first resolves to Plex-via-traefik-proxy both internally and externally, second internally resolves to the actual Plex server IP address). I have the “Enable Relay” option disabled, Remote Access enabled, and port forwarding set up correctly in my router for external access.
First attempt
After connecting Sonos to my Plex account, I could see and select my speakers in the cast menu (both in Plexamp and Plex Web). However when I tried to play a song, I received an HTTP 500 error from the sonos.plex.tv/player/playback/playMedia endpoint. Checking the debug logs from Plexamp shows this also occurring on Android.
Enabling the Relay option fixed the issue, and the songs would start playing correctly on Sonos—the /player/playback/playMedia endpoint returns 204. The server dashboard shows that the song is playing indirectly, via the relay. So far so good.
But why?
Next I simplified the Network configuration by removing the Custom server access URLs, and tried playing a song with Relay disabled, and it still worked…
I added back in the internal/external URL (https://plex.XXXXX.com) and everything continued to work, and the server dashboard showed that it was playing directly! Finally I tried using just the local-only custom URL (http://plex01.XXXX.lan:32400) and it didn’t work—the exact same original issue.
thoughts
I think this is happening because one of the URLs is only accessible internally, and the Sonos service needs a remote one? I know this is listed in the Sonos requirements, but I (naively) assumed it would pick the remote access URL.
Perhaps this is a misconfiguration on my end; I’ve removed the internal-only URL and everything seems to be working (touch wood)