La lecture d'une playlist Spotify ne fonctionne plus

Bonjour,

Je sais qu’il n’y a pas de support de la part de l’éditeur du plugin sur la fonctionnalité spotify mais cela est tellement pratique que je me permet de poster mon problème. La lecture fonctionnait correctement jusqu’a il y a quelques temps (je ne sais plus exactement si cela coïncide avec ma migration vers jeedom v4 ou pas)

J’utilisait le plugin pour caster vers une chromecast avec comme custom cmd ceci :
app=spotify|spdc=|spkey=*|value=playlist:37i9dQZF1E4yKIUO669suJ

je vois bien le logo spotify apparaitre dans le widget du chromecast sur mon dashboard puis il disparait après quelques secondes, dans les logs du plugin j’ai ce message :
ACTION------Error while playing action play_media on app spotify : ‹ SpotifyController › object has no attribute ‹ wait ›

Est-ce que ce message parlerai à quelqu’un ?

PS : au cas ou j’ai essayer également avec cette’ commande :
app=spotify|cmd=play_media|spdc=|spkey=*|value=playlist:37i9dQZF1E4yKIUO669suJ

Au cas ou j’ai également essayer de regénérer un nouveau cookie, rien y fait… je ne sais plus ou chercher.

Merci par avance pour vos réponse !

Bonsoir,
Pouvez vous donnez des logs plus complets en mode debug.
Cdt

Bonjour guirem,
Merci pour votre message.

Voici plus de log :

[2021-06-30 14:13:01][DEBUG] : SOCKETHANDLER------Client connected to [127.0.0.1:33024]
[2021-06-30 14:13:01][DEBUG] : SOCKETHANDLER------Message read from socket: {"apikey": "XXXXXXXXXXXXX", "cmd": "action", "device": {"uuid": "xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx", "source": "googlecast"}, "command": [{"app": "spotify", "cmd": "play_media", "spdc": "xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx", "spkey": "xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx", "value": "playlist:37i9dQZF1E4yKIUO669suJ"}]}
[2021-06-30 14:13:01][DEBUG] : SOCKETHANDLER------Client disconnected from [127.0.0.1:33024]
[2021-06-30 14:13:01][DEBUG] : SOCKET-READ------Message received in socket JEEDOM_SOCKET_MESSAGE
[2021-06-30 14:13:01][DEBUG] : SOCKET-READ------Received command from jeedom : action
[2021-06-30 14:13:01][DEBUG] : SOCKET-READ------Attempt an action on a device
[2021-06-30 14:13:01][DEBUG] : SOCKET-READ------Action Thread Launched
[2021-06-30 14:13:01][DEBUG] : ACTION------ action - play_media - xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx - playlist:37i9dQZF1E4yKIUO669suJ - spotify
[2021-06-30 14:13:04][DEBUG] : JEEDOMCHROMECAST------ Initiating player urn:x-cast:com.spotify.chromecast.secure.v1
[2021-06-30 14:13:04][DEBUG] : SENDER------Send to jeedom :  {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'nowplaying': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'online': True, 'friendly_name': 'Salle à manger', 'is_active_input': False, 'is_stand_by': False, 'volume_level': 75, 'volume_muted': False, 'app_id': None, 'icon_url': None, 'display_name': '', 'status_text': ' ', 'is_busy': False, 'title': None, 'album_artist': None, 'metadata_type': None, 'album_name': None, 'current_time': '0', 'artist': None, 'series_title': None, 'season': None, 'episode': None, 'image': None, 'stream_type': 'UNKNOWN', 'track': None, 'player_state': 'UNKNOWN', 'supported_media_commands': 0, 'supports_pause': False, 'duration': None, 'content_type': None, 'idle_reason': None}}
[2021-06-30 14:13:06][DEBUG] : SENDER------Send to jeedom :  {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'nowplaying': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'online': True, 'friendly_name': 'Salle à manger', 'is_active_input': False, 'is_stand_by': False, 'volume_level': 75, 'volume_muted': False, 'app_id': None, 'icon_url': None, 'display_name': '', 'status_text': ' ', 'is_busy': False, 'title': None, 'album_artist': None, 'metadata_type': None, 'album_name': None, 'current_time': '0', 'artist': None, 'series_title': None, 'season': None, 'episode': None, 'image': None, 'stream_type': 'UNKNOWN', 'track': None, 'player_state': 'UNKNOWN', 'supported_media_commands': 0, 'supports_pause': False, 'duration': None, 'content_type': None, 'idle_reason': None}}
[2021-06-30 14:13:06][DEBUG] : JEEDOMCHROMECAST------ Manage previous status : Removing previous playercmd!
[2021-06-30 14:13:06][DEBUG] : JEEDOMCHROMECAST------ Detected changes in status of Salle à manger
[2021-06-30 14:13:06][DEBUG] : SENDER------Send to jeedom :  {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'nowplaying': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'online': True, 'friendly_name': 'Salle à manger', 'is_active_input': False, 'is_stand_by': False, 'volume_level': 75, 'volume_muted': False, 'app_id': 'CC32E753', 'icon_url': 'https://lh3.googleusercontent.com/xxxxxxxxxxxxxxxxx', 'display_name': 'Spotify', 'status_text': 'Spotify', 'is_busy': True, 'title': None, 'album_artist': None, 'metadata_type': None, 'album_name': None, 'current_time': '0', 'artist': None, 'series_title': None, 'season': None, 'episode': None, 'image': None, 'stream_type': 'UNKNOWN', 'track': None, 'player_state': 'UNKNOWN', 'supported_media_commands': 0, 'supports_pause': False, 'duration': None, 'content_type': None, 'idle_reason': None}}
[2021-06-30 14:13:06][DEBUG] : SENDER------Send to jeedom : {'devices': {'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'status': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'uri': '192.168.xx.xx:xxxx', 'friendly_name': 'Salle à manger', 'is_active_input': False, 'is_stand_by': False, 'volume_level': 75, 'volume_muted': False, 'app_id': 'CC32E753', 'icon_url': 'https://lh3.googleusercontent.com/xxxxxxxxx', 'display_name': 'Spotify', 'status_text': 'Spotify', 'is_busy': True, 'title': '', 'artist': '', 'series_title': '', 'stream_type': 'UNKNOWN', 'player_state': 'UNKNOWN'}, 'typemsg': 'info', 'lastOnline': 1625032088, 'online': True, 'lastSent': 1625055186, 'lastOfflineSent': 0, 'options': {'ignore_CEC': '0'}, 'lastScan': 1625055135}}}
[2021-06-30 14:13:07][DEBUG] : JEEDOMCHROMECAST------ NOW PLAYING STATUS SEND {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'title': '', 'artist': '', 'series_title': '', 'player_state': 'UNKNOWN'}
[2021-06-30 14:13:07][DEBUG] : JEEDOMCHROMECAST------ NOW PLAYING STATUS SEND {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'title': '', 'artist': '', 'series_title': '', 'player_state': 'UNKNOWN'}
[2021-06-30 14:13:07][DEBUG] : SENDER------Send to jeedom : {'devices': {'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'typemsg': 'info', 'status': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'title': '', 'artist': '', 'series_title': '', 'player_state': 'UNKNOWN'}}}}
[2021-06-30 14:13:10][DEBUG] : Sending GET to https://api.spotify.com/v1/me/player/devices with Headers: {'Authorization': 'Bearer xxxxxxxxxxxxxxxxxxxxxxxx ', 'Content-Type': 'application/json'} and Body: None
[2021-06-30 14:13:11][DEBUG] : RESULTS: {'devices': []}
[2021-06-30 14:13:11][DEBUG] : ACTION------Spotify : device not found, wait for spotify to set an id...
[2021-06-30 14:13:11][ERROR] : ACTION------Error while playing action play_media on app spotify : 'SpotifyController' object has no attribute 'wait'
[2021-06-30 14:13:11][DEBUG] : Traceback (most recent call last):
File "/var/www/html/plugins/googlecast/resources/googlecast.py", line 988, in action_handler
device_id = player.wait()
AttributeError: 'SpotifyController' object has no attribute 'wait'
[2021-06-30 14:13:11][DEBUG] : JEEDOMCHROMECAST------ Managed exception but no forced disconnection for xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx
[2021-06-30 14:13:11][DEBUG] : JEEDOMCHROMECAST------ NOW PLAYING STATUS SEND {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'title': '', 'artist': '', 'series_title': '', 'player_state': 'UNKNOWN'}
[2021-06-30 14:13:11][DEBUG] : JEEDOMCHROMECAST------ Detected changes in status of Salle à manger
[2021-06-30 14:13:11][DEBUG] : SENDER------Send to jeedom : {'devices': {'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'typemsg': 'info', 'status': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'title': '', 'artist': '', 'series_title': '', 'player_state': 'UNKNOWN', 'uri': '192.168.xx.xx:xxx', 'friendly_name': 'Salle à manger', 'is_active_input': False, 'is_stand_by': False, 'volume_level': 75, 'volume_muted': False, 'app_id': 'CC32E753', 'icon_url': 'https://lh3.googleusercontent.com/xxxxxxxxxxx', 'display_name': 'Spotify', 'status_text': 'Spotify', 'is_busy': True, 'stream_type': 'UNKNOWN'}, 'lastOnline': 1625032088, 'online': True, 'lastSent': 1625055186, 'lastOfflineSent': 0, 'options': {'ignore_CEC': '0'}, 'lastScan': 1625055135}}}
[2021-06-30 14:13:17][DEBUG] : SCANNER------ Start scanning... (schedule)
[2021-06-30 14:13:17][DEBUG] :  MEMORY---- Total CPU time used : 104.851s (0.45%)  |  Last 62 sec : 0.488s (0.79%)  | Memory : 39 Mo
[2021-06-30 14:13:17][DEBUG] : SCANNER------No connection to device xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx
[2021-06-30 14:13:17][DEBUG] : SCANNER------No connection to device xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx
[2021-06-30 14:13:39][DEBUG] : JEEDOMCHROMECAST------ NOW PLAYING STATUS SEND {'uuid': 'xxxxxxxxxxxx', 'title': '', 'artist': '', 'series_title': '', 'player_state': 'UNKNOWN'}
[2021-06-30 14:13:39][DEBUG] : JEEDOMCHROMECAST------ Detected changes in status of Salle à manger
[2021-06-30 14:13:39][DEBUG] : SENDER------Send to jeedom :  {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'nowplaying': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'online': True, 'friendly_name': 'Salle à manger', 'is_active_input': False, 'is_stand_by': False, 'volume_level': 75, 'volume_muted': False, 'app_id': None, 'icon_url': None, 'display_name': '', 'status_text': ' ', 'is_busy': False, 'title': None, 'album_artist': None, 'metadata_type': None, 'album_name': None, 'current_time': '0', 'artist': None, 'series_title': None, 'season': None, 'episode': None, 'image': None, 'stream_type': 'UNKNOWN', 'track': None, 'player_state': 'UNKNOWN', 'supported_media_commands': 0, 'supports_pause': False, 'duration': None, 'content_type': None, 'idle_reason': None}}
[2021-06-30 14:13:39][DEBUG] : SENDER------Send to jeedom : {'devices': {''xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx: {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'typemsg': 'info', 'status': {'uuid': 'xxxxxx-xxxxxx-xxxxx-xxxx-xxxxxx', 'title': '', 'artist': '', 'series_title': '', 'player_state': 'UNKNOWN', 'uri': '192.168.xx.x:xxxx', 'friendly_name': 'Salle à manger', 'is_active_input': False, 'is_stand_by': False, 'volume_level': 75, 'volume_muted': False, 'app_id': None, 'icon_url': None, 'display_name': '', 'status_text': ' ', 'is_busy': False, 'stream_type': 'UNKNOWN'}, 'lastOnline': 1625032088, 'online': True, 'lastSent': 1625055191, 'lastOfflineSent': 0, 'options': {'ignore_CEC': '0'}, 'lastScan': 1625055197}}}

Hello @Gaume,
as-tu trouvé une solution ?
J’ai le même problème avec des logs légèrement différents:

[2021-08-22 10:44:42][ERROR] : ACTION------Error while playing action play_media on app spotify : Timeout when waiting for status response from Spotify app
[2021-08-22 10:44:42][DEBUG] : Traceback (most recent call last):
File "/var/www/html/plugins/googlecast/resources/googlecast.py", line 932, in action_handler
player.launch_app(access_token, expires)
File "/var/www/html/plugins/googlecast/resources/pychromecast/pychromecast/controllers/spotify.py", line 89, in launch_app
"Timeout when waiting for status response from Spotify app"
pychromecast.pychromecast.error.LaunchError: Timeout when waiting for status response from Spotify app

Mathieu

Bonjour @OUARZA, Malheureusement non. Ca ne fonctionne toujours pas …
Après de multiples essai j’en suis toujours au même point :frowning:

Je pense que je vais tenter de remettre une ancienne sauvegarde de jeedom en v3 pour voir si cela fonctionne.

C’est dommage ça fonctionnait tellement bien.

Y a t’il d’autres personnes chez qui cela fonctionne encore ? Est-ce une limitation du côté de Spotify ?

PS: je ne sais pas si cela a un rapport avec votre problème mais il me semble que les tokens sont valables pendant une certaine durée avez vous tenté de les renouvelé au cas ou ?

Hello @Gaume,
Oui j’ai renouvelé les Token, et même problème :frowning:

Mathieu

Hello,
Toujours pas de solution. :’(

[2021-10-31 09:43:56][DEBUG] : Traceback (most recent call last):
File "/var/www/html/plugins/googlecast/resources/googlecast.py", line 916, in action_handler
data = stoken.start_session(spdc, spkey)
File "/var/www/html/plugins/googlecast/resources/spotipy/spotify_token.py", line 18, in start_session
headers=headers, cookies=cookies)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 668, in send
history = [resp for resp in gen] if allow_redirects else []
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 668, in <listcomp>
history = [resp for resp in gen] if allow_redirects else []
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 165, in resolve_redirects
raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp)
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

Mathieu

Hello,
@guirem as tu trouvé une solution ?
Mathieu