Kodi Community Forum

Full Version: Experimental Google Music Addon
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(2017-03-25, 23:52)aesalazar Wrote: [ -> ]I am getting the same error as Musculi. A 403 Forbidden URL exception in Python. It was working when I had the free google play music account. I recently started the 30 day trail for the full version which is when the problems started. I cleared my cache and cookies in the app for it to recognize the change and once it did it starts erroring. Could it be that? Or could it be a problem with 2 step authentication? (I also turned that on around the same time).

When using 2 step authentication, you need to generate an application specific password and use that password to login in the addon.
(2017-03-26, 18:52)foreverguest Wrote: [ -> ]When using 2 step authentication, you need to generate an application specific password and use that password to login in the addon.

Yep. Did that. I actually turned it off as an experiment and cleared the caches again. Didnt seem to make a difference. I then switched to an alternate google account which does not have the trial subscription - just the free version - and it works fine. Strange. I can only conclude that it has to do with the Trail subscription or it is something unique with my account not having a non-free version?

@Musculi: What kind of account do you have?

Thanks
Ernie
Have you cleared cookies too?
(2017-03-26, 19:21)foreverguest Wrote: [ -> ]Have you cleared cookies too?

Yes. Always do both.
using on Kodi Krypton 17.1 and works perfect. using version 1.10 Never had any problems with this version so i just stay with what work.
I've just come back to using this addon but I'm getting errors on signin...

SNIMissingWarning
Cannot import name


I have turned off 2-Step, etc. I've tried fresh installs, tried two different machines...
i have a (probably) a silly question. is there a way to enable visualization while using he addon?
(2017-04-27, 22:48)mrShpak Wrote: [ -> ]i have a (probably) a silly question. is there a way to enable visualization while using he addon?
press tab to go to full screen.
The Leia nightly from April 28 changed something, now there's no song info, no artist, album, year, genre or playcount, just the song name, album art and the background with the artist picture
I'm suddenly getting the below error. Tried two different logins. Tried remove clearing cache. Tried move all the files out of the addon folder so that it forced them to be recreated (and so they weren't "locked"). Any ideas?
Code:
23:45:36.296 T:11256  NOTICE: [GoogleMusicEXP-1.11.1] Chunk Size: 1000
23:45:38.925 T:11436  NOTICE: Previous line repeats 1 times.
23:45:38.925 T:11436   ERROR: Control 50 in window 10502 has been asked to focus, but it can't
23:45:38.983 T:9124  NOTICE: [GoogleMusicEXP-1.11.1]  ARGV: ['plugin://plugin.audio.googlemusic.exp/', '5', '']
23:45:39.469 T:9124  NOTICE: [GoogleMusicEXP-1.11.1] Initing addon data
23:45:39.503 T:9124  NOTICE: [GoogleMusicEXP-1.11.1] Error trying to delete database WindowsError(32, 'The process cannot access the file because it is being used by another process')
23:45:41.524 T:11256  NOTICE: [GoogleMusicEXP-1.11.1] Chunk Size: 1000
23:45:42.392 T:11436   ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.audio.googlemusic.exp/
23:45:42.392 T:11436   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.audio.googlemusic.exp/) failed
23:45:57.203 T:8260  NOTICE: [GoogleMusicEXP-1.11.1]  ARGV: ['plugin://plugin.audio.googlemusic.exp/', '-1', '?action=clear_cookie']
23:45:57.470 T:8260  NOTICE: [GoogleMusicEXP-1.11.1] Initing addon data
23:45:57.470 T:8260  NOTICE: [GoogleMusicEXP-1.11.1] Error trying to delete database WindowsError(32, 'The process cannot access the file because it is being used by another process')
23:46:00.546 T:2864  NOTICE: [GoogleMusicEXP-1.11.1]  ARGV: ['plugin://plugin.audio.googlemusic.exp/', '-1', '?action=clear_cache']
23:46:00.812 T:2864  NOTICE: [GoogleMusicEXP-1.11.1] Initing addon data
23:46:00.813 T:2864  NOTICE: [GoogleMusicEXP-1.11.1] Error trying to delete database WindowsError(32, 'The process cannot access the file because it is being used by another process')
23:46:02.705 T:8260  NOTICE: [GoogleMusicEXP-1.11.1] Cache database error, clear OperationalError('database is locked',)
23:46:02.705 T:8260  NOTICE: [GoogleMusicEXP-1.11.1] Error trying to delete database WindowsError(32, 'The process cannot access the file because it is being used by another process')
23:46:02.706 T:8260  NOTICE: [GoogleMusicEXP-1.11.1] Loading library
23:46:02.707 T:8260  NOTICE: [GoogleMusicEXP-1.11.1] Loading auth from cache
23:46:04.548 T:8260  NOTICE: [GoogleMusicEXP-1.11.1] Chunk Size: 1000
23:46:06.048 T:2864  NOTICE: [GoogleMusicEXP-1.11.1] Cache database error, clear OperationalError('database is locked',)
23:46:06.049 T:2864  NOTICE: [GoogleMusicEXP-1.11.1] Error trying to delete database WindowsError(32, 'The process cannot access the file because it is being used by another process')
23:46:06.074 T:2864  NOTICE: [GoogleMusicEXP-1.11.1] Loading library
23:46:06.076 T:2864  NOTICE: [GoogleMusicEXP-1.11.1] Loading auth from cache
23:46:08.310 T:2864  NOTICE: [GoogleMusicEXP-1.11.1] Chunk Size: 1000
23:46:09.790 T:8260   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <class 'sqlite3.OperationalError'>
                                            Error Contents: database is locked
                                            Traceback (most recent call last):
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\default.py", line 30, in <module>
                                                utils.initAddon()
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\utils.py", line 149, in initAddon
                                                GoogleMusicApi.GoogleMusicApi().loadLibrary()
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\GoogleMusicApi.py", line 66, in loadLibrary
                                                storage.storeInAllSongs(chunk)
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\GoogleMusicStorage.py", line 184, in storeInAllSongs
                                                self.curs.executemany("INSERT OR REPLACE INTO artists VALUES (:artist_id, :artistart)", artists())
                                            OperationalError: database is locked
                                            -->End of Python script error report<--
23:46:17.443 T:11444   ERROR: Previous line repeats 1 times.
23:46:17.443 T:11444   ERROR: CPythonInvoker(15, C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\default.py): script didn't stop in 5 seconds - let's kill it
I never posted anything here with everything just working. But this is crazy easy AND it works. Without doing anything. Installed, created pwd, entered it and poof... magic.

The only question is, why is this not in the regular repository? Google allows to use it on other devices (up to the max devices).

In any way, brilliant and thank you!
Hi, thank for excelent addon.
I'd like to ask where I can find the latest source code in git or in some other vcs. The code which in the reporsitoy (https://github.com/vially/googlemusic-xbmc) mentioned on the first page is from October 2016. I cannot find any with search history changes.
I continually get this error
Code:
13:39:22.015 T:15336  NOTICE: [GoogleMusicEXP-1.11.1]  ARGV: ['plugin://plugin.audio.googlemusic.exp/', '6', '']
13:39:22.308 T:15336  NOTICE: [GoogleMusicEXP-1.11.1] Initing addon data
13:39:22.309 T:15336  NOTICE: [GoogleMusicEXP-1.11.1] Error trying to delete database WindowsError(32, 'The process cannot access the file because it is being used by another process')

Thinking I'll just delete and reinstall the addon, but seems strange as I've not done anything different to get this as far as I'm aware
Deleting and reinstalling didn't work. I even tried using a different Google Account. Nothing works. This is driving me crazy. Every time I get this addon working when I have spare time, go to actually use it and it doesn't work.
This is what I'm getting whenever I try to play a song (going via Stations):
Code:
14:14:13.994 T:2440  NOTICE: [GoogleMusicEXP-1.11.1] Loading auth from cache
14:14:14.274 T:12060  NOTICE: [GoogleMusicEXP-1.11.1]  ARGV: ['plugin://plugin.audio.googlemusic.exp/', '45', '?action=play_song&song_id=Tkguqqdxeccivpzouon3bdiyj74&title=Mood Indigo&artist=Thelonious Monk&albumart=http://lh3.googleusercontent.com/1t_rPU0vu0nZ1OMP53F9hX_nvHoRa8UiZavc0ZdSmEm50oJ-T07uzGTtkgbdRK2vK5f-DBZVJQ&tracknumber=5&album=Thelonious Monk Plays Duke Ellington (Remastered)&year=1955&rating=0&artistart=http://lh3.googleusercontent.com/hnPxE-sNEDqknOvAgRuX2Ie0tbVvpCgYkWkzdAgJFc96JsLH_Kyg0q8Sl1nUH1f32SoS1BrgUg']
14:14:14.471 T:12060  NOTICE: [GoogleMusicEXP-1.11.1] Loading auth from cache
14:14:14.471 T:12060  NOTICE: [GoogleMusicEXP-1.11.1] getStreamUrl songid: Tkguqqdxeccivpzouon3bdiyj74 device:  quality: hi
14:14:14.963 T:12060   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <class 'gmusicapi.exceptions.CallFailure'>
                                            Error Contents: GetStreamUrl: 403 Client Error: Forbidden for url: https://mclients.googleapis.com/music/mplay?opt=hi&mjck=Tkguqqdxeccivpzouon3bdiyj74&pt=e&slt=1496549654491&tier=fr&sig=pgyW_mJUq_R-QPfBnFVql6Pbc_o&hl=en_US&dv=0&net=mob
                                            (requests kwargs: {'url': 'https://mclients.googleapis.com/music/mplay', 'headers': {'X-Device-ID': '', 'Authorization': '<omitted>'}, 'allow_redirects': False, 'params': {'opt': 'hi', 'mjck': 'Tkguqqdxeccivpzouon3bdiyj74', 'pt': 'e', 'slt': '1496549654491', 'tier': 'fr', 'sig': 'pgyW_mJUq_R-QPfBnFVql6Pbc_o', 'hl': 'en_US', 'dv': 0, 'net': 'mob'}, 'method': 'GET'})
                                            (response was: u'<HTML>\n<HEAD>\n<TITLE>Forbidden</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>Forbidden</H1>\n<H2>Error 403</H2>\n</BODY>\n</HTML>\n')
                                            Traceback (most recent call last):
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\default.py", line 13, in <module>
                                                GoogleMusicPlaySong.GoogleMusicPlaySong().play(params)
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\GoogleMusicPlaySong.py", line 13, in play
                                                params = self.__getSongStreamUrl(song_id, params)
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\GoogleMusicPlaySong.py", line 65, in __getSongStreamUrl
                                                params['url'] = self.api.getSongStreamUrl(song_id, session_token=params.pop('sessiontoken',None), wentry_id=params.pop('wentryid',None))
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\GoogleMusicApi.py", line 85, in getSongStreamUrl
                                                stream_url = self.getLogin().getStreamUrl(song_id, session_token=session_token, wentry_id=wentry_id)
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\GoogleMusicLogin.py", line 42, in getStreamUrl
                                                return self.gmusicapi.get_stream_url(song_id, device_id, quality, session_token, wentry_id)
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\gmusicapi\clients\mobileclient.py", line 369, in get_stream_url
                                                return self._make_call(mobileclient.GetStreamUrl, song_id, device_id, quality)
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\gmusicapi\clients\shared.py", line 81, in _make_call
                                                return protocol.perform(self.session, self.validate, *args, **kwargs)
                                              File "C:\Users\Abba\AppData\Roaming\Kodi\addons\plugin.audio.googlemusic.exp\gmusicapi\protocol\shared.py", line 225, in perform
                                                raise CallFailure(err_msg, call_name)
                                            CallFailure: GetStreamUrl: 403 Client Error: Forbidden for url: https://mclients.googleapis.com/music/mplay?opt=hi&mjck=Tkguqqdxeccivpzouon3bdiyj74&pt=e&slt=1496549654491&tier=fr&sig=pgyW_mJUq_R-QPfBnFVql6Pbc_o&hl=en_US&dv=0&net=mob
                                            (requests kwargs: {'url': 'https://mclients.googleapis.com/music/mplay', 'headers': {'X-Device-ID': '', 'Authorization': '<omitted>'}, 'allow_redirects': False, 'params': {'opt': 'hi', 'mjck': 'Tkguqqdxeccivpzouon3bdiyj74', 'pt': 'e', 'slt': '1496549654491', 'tier': 'fr', 'sig': 'pgyW_mJUq_R-QPfBnFVql6Pbc_o', 'hl': 'en_US', 'dv': 0, 'net': 'mob'}, 'method': 'GET'})
                                            (response was: u'<HTML>\n<HEAD>\n<TITLE>Forbidden</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>Forbidden</H1>\n<H2>Error 403</H2>\n</BODY>\n</HTML>\n')
                                            -->End of Python script error report<--

The account has an Android device registered to it and isn't open on any other computers etc

EDIT: I've noticed it still doesnt have a Device ID, so I made sure that my device was registered in my play account - and it wasn't, so I readded it to phone, cleared app data etc until it showed. Now it shows in Play Devices but still giving the same error in Kodi

EDIT2: Just tried with a second Google Play Account (the one I use on my phone) and it works fine. It seems that this is a device_ID issue, however the Account I'm trying to use has been enabled on an Android device (my old phone), and it shows as a device under the Android Account's settings.

EDIT3: So after unadding the account, clearing cache, clearing cookies, changing the DB file (it was saying it was locked), deleting the account, readding the account, deleting the addon, manually deleting the DB files after deleting the addon....ALL not working, it suddenly started working. The only difference I can see that I made, was when I installed the add-on, rather htan going straight to settings to add my account, I launched it - and had the addon pop up and ask for my login details/settings. Now seems to be working!