retry spotify token retrieval
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 2 Jun 2022 23:10:35 +0000 (01:10 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 2 Jun 2022 23:10:35 +0000 (01:10 +0200)
music_assistant/controllers/music/providers/spotify.py

index 9534833b8384f0bf3b5e11458c96df4720c7f065..1ea973815cce4b74e26494e4fc55bda04f081415 100644 (file)
@@ -446,7 +446,16 @@ class SpotifyProvider(MusicProvider):
         if not self.config.username or not self.config.password:
             return tokeninfo
         # retrieve token with librespot
-        tokeninfo = await self._get_token()
+        retries = 0
+        while retries < 4:
+            try:
+                tokeninfo = await asyncio.wait_for(self._get_token(), 5)
+                if tokeninfo:
+                    break
+                retries += 1
+                await asyncio.sleep(2)
+            except TimeoutError:
+                pass
         if tokeninfo:
             self._auth_token = tokeninfo
             self._sp_user = await self._get_data("me")