From a65dcbf204fdb6a21653cc81d3f42d42a2bdc606 Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Wed, 7 Oct 2020 00:15:09 +0200 Subject: [PATCH] Allow playing Spotify URLs with Sonos (#41366) --- homeassistant/components/sonos/manifest.json | 2 +- homeassistant/components/sonos/media_player.py | 12 ++++++++++-- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/sonos/manifest.json b/homeassistant/components/sonos/manifest.json index 0bb15d2949e..659d9bd1b1d 100644 --- a/homeassistant/components/sonos/manifest.json +++ b/homeassistant/components/sonos/manifest.json @@ -3,7 +3,7 @@ "name": "Sonos", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/sonos", - "requirements": ["pysonos==0.0.34"], + "requirements": ["pysonos==0.0.35"], "ssdp": [ { "st": "urn:schemas-upnp-org:device:ZonePlayer:1" diff --git a/homeassistant/components/sonos/media_player.py b/homeassistant/components/sonos/media_player.py index 307fee923a3..def71adc30d 100644 --- a/homeassistant/components/sonos/media_player.py +++ b/homeassistant/components/sonos/media_player.py @@ -1152,7 +1152,10 @@ class SonosEntity(MediaPlayerEntity): if media_type in (MEDIA_TYPE_MUSIC, MEDIA_TYPE_TRACK): if kwargs.get(ATTR_MEDIA_ENQUEUE): try: - self.soco.add_uri_to_queue(media_id) + if self.soco.is_spotify_uri(media_id): + self.soco.add_spotify_uri_to_queue(media_id) + else: + self.soco.add_uri_to_queue(media_id) except SoCoUPnPException: _LOGGER.error( 'Error parsing media uri "%s", ' @@ -1161,7 +1164,12 @@ class SonosEntity(MediaPlayerEntity): media_id, ) else: - self.soco.play_uri(media_id) + if self.soco.is_spotify_uri(media_id): + self.soco.clear_queue() + self.soco.add_spotify_uri_to_queue(media_id) + self.soco.play_from_queue(0) + else: + self.soco.play_uri(media_id) elif media_type == MEDIA_TYPE_PLAYLIST: if media_id.startswith("S:"): item = get_media(self._media_library, media_id, media_type) diff --git a/requirements_all.txt b/requirements_all.txt index 0532e7be406..c751c52dfce 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1674,7 +1674,7 @@ pysnmp==4.4.12 pysoma==0.0.10 # homeassistant.components.sonos -pysonos==0.0.34 +pysonos==0.0.35 # homeassistant.components.spc pyspcwebgw==0.4.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 31ff656e261..c361f3bf02c 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -812,7 +812,7 @@ pysmartthings==0.7.4 pysoma==0.0.10 # homeassistant.components.sonos -pysonos==0.0.34 +pysonos==0.0.35 # homeassistant.components.spc pyspcwebgw==0.4.0