diff --git a/homeassistant/components/spotify/__init__.py b/homeassistant/components/spotify/__init__.py index fb66622d893..59ebf1ead55 100644 --- a/homeassistant/components/spotify/__init__.py +++ b/homeassistant/components/spotify/__init__.py @@ -107,6 +107,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: raise ConfigEntryNotReady async def _update_devices() -> list[dict[str, Any]]: + if not session.valid_token: + await session.async_ensure_token_valid() + await hass.async_add_executor_job( + spotify.set_auth, session.token["access_token"] + ) + try: devices: dict[str, Any] | None = await hass.async_add_executor_job( spotify.devices diff --git a/homeassistant/components/spotify/browse_media.py b/homeassistant/components/spotify/browse_media.py index ae7c24e80d2..efaa07b3172 100644 --- a/homeassistant/components/spotify/browse_media.py +++ b/homeassistant/components/spotify/browse_media.py @@ -172,7 +172,11 @@ async def async_browse_media_internal( partial(library_payload, can_play_artist=can_play_artist) ) - await session.async_ensure_token_valid() + if not session.valid_token: + await session.async_ensure_token_valid() + await hass.async_add_executor_job( + spotify.set_auth, session.token["access_token"] + ) # Strip prefix if media_content_type: diff --git a/homeassistant/components/spotify/media_player.py b/homeassistant/components/spotify/media_player.py index f6b229e99fd..2b62fdd78c4 100644 --- a/homeassistant/components/spotify/media_player.py +++ b/homeassistant/components/spotify/media_player.py @@ -7,7 +7,7 @@ from datetime import timedelta import logging import requests -from spotipy import Spotify, SpotifyException +from spotipy import SpotifyException from yarl import URL from homeassistant.components.media_player import BrowseMedia, MediaPlayerEntity @@ -367,7 +367,7 @@ class SpotifyMediaPlayer(MediaPlayerEntity): run_coroutine_threadsafe( self.data.session.async_ensure_token_valid(), self.hass.loop ).result() - self.data.client = Spotify(auth=self.data.session.token["access_token"]) + self.data.client.set_auth(auth=self.data.session.token["access_token"]) current = self.data.client.current_playback() self._currently_playing = current or {}