GMusic can't log in - extension is crashing


#1

Hi, I’m trying to install the gmusic extension. Here is whats in my config file:

[gmusic]
username = my_email@gmail.com
password = my_app_password

Funny thing is, google shows that my app password was last used when I use it (starting mopidy). But this is what I get when I start it:

INFO Starting Mopidy 2.2.0
INFO Loading config from builtin defaults
INFO Loading config from /home/my_username/.config/mopidy/mopidy.conf
INFO Loading config from command line options
INFO Enabled extensions: mpd, http, stream, m3u, softwaremixer, file, local, gmusic
INFO Disabled extensions: none
INFO Starting Mopidy mixer: SoftwareMixer
INFO Starting Mopidy audio
INFO Starting Mopidy backends: StreamBackend, M3UBackend, FileBackend, LocalBackend, GMusicBackend
INFO Audio output set to “autoaudiosink”
INFO Loaded 1365 local tracks using json
ERROR Failed to login to Google Music as "my_email@gmail.com"
ERROR There is no gmusic deviceid set. Registered devices are listed below.
ERROR Unhandled exception in GMusicBackend (urn:uuid:fae29fc2-8ca2-4d03-a689-c94ac026de3a):
Traceback (most recent call last):
File “/usr/lib/python2.7/site-packages/pykka/actor.py”, line 191, in _actor_loop
self.on_start()
File “/usr/lib/python2.7/site-packages/mopidy_gmusic/backend.py”, line 57, in on_start
for device in self.session.api.get_registered_devices():
File “/usr/lib/python2.7/site-packages/gmusicapi/clients/mobileclient.py”, line 824, in get_registered_devices
res = self._make_call(mobileclient.GetDeviceManagementInfo)
File “/usr/lib/python2.7/site-packages/gmusicapi/clients/shared.py”, line 84, in _make_call
return protocol.perform(self.session, self.validate, *args, **kwargs)
File “/usr/lib/python2.7/site-packages/gmusicapi/protocol/shared.py”, line 209, in perform
response = session.send(req_kwargs, cls.required_auth)
File “/usr/lib/python2.7/site-packages/gmusicapi/session.py”, line 84, in send
raise NotLoggedIn
NotLoggedIn
ERROR Actor died: GMusicBackend (urn:uuid:fae29fc2-8ca2-4d03-a689-c94ac026de3a) stopped before handling the message

I am leaving no deviceid because when I set it to “mac” it just has the:

ERROR Failed to login to Google Music as “my_email”

without any python stack trace.

Can anyone help?


#2

From the project readme

Google Play Music now requires all clients to provide a device ID. In the past, mopidy-gmusic generated one automatically from your MAC address, but Google seems to have changed their API in a way that prevents this from working. Therefore you will need to configure one manually. If no device ID is configured, mopidy-gmusic will output a list of registered devices and their IDs. You can either use one of those IDs in your config file, or use the special value mac if you want gmusicapi to use the old method of generating an ID from your MAC address.:


#3

So I have no idea why you see getting a stack trace but not setting an actual deviceid is not going to work.


#4

I read the readme. It does say it will output a list of device IDs if one is not input. That’s where the crash happens.

I do not know what exactly a device ID is, is it some ID I can get from my Android running gpm? The readme mentions none of that.


#5

I think there are apps you can get from the play store that will show it but I’m not sure. Best bet is to raise an issue at https://github.com/mopidy/mopidy-gmusic/issues since it shouldn’t be throwing an exception anyway. There does appear to be something up with some 2-factor application passwords on the gmusicapi issue tracker but I don’t know if it’s related. I no longer have a Gmusic account myself so I cannot test it.


#6

Not working for me either. I have the correct DeviceID of my android phone in the config and even got the Google alert that I signed in but Google Music doesn’t load at all.

I get the following error in the console when checking the status of mopidy:

Nov 03 11:51:41 mopidy mopidy[1670]: ERROR Actor died: GMusicBackend (urn:uuid:7b26d467-e1a0-4fd7-a297-2196b93a7434) not found

Now that UUID is not of my current phone but my old one. Perhaps I need to update that but I don’t see where. The config only has device id.