I ran into the following issue when trying to setup spotify-skill for the first time on a headless server (not Mk. 1 or 2 hardware).
Steps to reproduce:
Install the skill and configure it on home.mycroft.ai with your Spotify Premium credentials
Start mycroft and utter "play something by "
Observed behavior:
spotify-skill attempts to start playback even when no devices are connected, which is the state my system was in, having not started Spotify on my PC and having not installed librespot or spotifyd.
It produces the following error:
20:04:56.269 - mycroft.skills.core:wrapper:607 - ERROR - An error occurred while processing a request in Spotify Skill
Traceback (most recent call last):
File "/home/user/mycroft-core/mycroft/skills/core.py", line 598, in wrapper
handler(message)
File "/opt/mycroft/skills/spotify-skill/__init__.py", line 580, in play_artist
return self.search(message.data['Artist'], 'artist')
File "/opt/mycroft/skills/spotify-skill/__init__.py", line 616, in search
self.spotify_play(dev['id'], context_uri=res['uri'])
TypeError: 'NoneType' object has no attribute '__getitem__'
Uttering "what spotify devices are available" produces:
Which seems to indicate that it's not yet configured to point to any devices.
Expected behavior:
The skill communicates the configuration state and suggests a solution for it, rather than attempting to play and throwing an error.
I ran into the following issue when trying to setup spotify-skill for the first time on a headless server (not Mk. 1 or 2 hardware).
Steps to reproduce:
Observed behavior: spotify-skill attempts to start playback even when no devices are connected, which is the state my system was in, having not started Spotify on my PC and having not installed librespot or spotifyd.
It produces the following error:
Uttering "what spotify devices are available" produces:
Which seems to indicate that it's not yet configured to point to any devices.
Expected behavior: The skill communicates the configuration state and suggests a solution for it, rather than attempting to play and throwing an error.