EnigmaCurry / GMusicFS

A FUSE filesystem for Google Music
153 stars 36 forks source link

Use of the MobileClient api of gmusicapi #8

Closed karlak closed 10 years ago

karlak commented 11 years ago

This API allows to get size information of any track, to simplify the download of All Access tracks and is fully supported.

Although it requires the device Id of a phone bounded to your google music account. I've added an entry in the config file for providing this id, and an option to get this id with --deviceid

I don't know if it must be on the master branch cause it restricts to people who have an android phone with G-Music but it'll also extend the potential possibilities of your virtual file system.

Thanks for keeping this running ! ;-)

EnigmaCurry commented 11 years ago

Thanks for this, this sounds really useful. I haven't had the time recently to take a look at this yet, but I will soon!

vrusinov commented 10 years ago

Hey karlak,

I was having some problems with listing subdirectories of artists/ (I/O error returned), so I tried GMusicFS from your master.

Directory listing works great now, but it seems I can't read any file due to following:

DEBUG:fuse.log-mixin:<- open '[Unhandled Exception]' Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/fuse.py", line 414, in _wrapper return func(_args, _kwargs) or 0 File "/usr/lib/python2.7/site-packages/fuse.py", line 483, in open fi.flags) File "/usr/lib/python2.7/site-packages/fuse.py", line 881, in call ret = getattr(self, op)(path, _args) File "/usr/lib/python2.7/site-packages/GMusicFS-0.1-py2.7.egg/gmusicfs/gmusicfs.py", line 282, in open url = album.get_track_stream(track) File "/usr/lib/python2.7/site-packages/GMusicFS-0.1-py2.7.egg/gmusicfs/gmusicfs.py", line 76, in get_track_stream return self.library.api.get_stream_url(track['id'], deviceId) File "/usr/lib/python2.7/site-packages/gmusicapi/clients/mobileclient.py", line 216, in get_stream_url return self._make_call(mobileclient.GetStreamUrl, song_id, device_id) File "/usr/lib/python2.7/site-packages/gmusicapi/clients/shared.py", line 67, in _make_call return protocol.perform(self.session, self.validate, args, *_kwargs) File "/usr/lib/python2.7/site-packages/gmusicapi/protocol/shared.py", line 227, in perform raise CallFailure(err_msg, call_name) CallFailure: GetStreamUrl: 403 Client Error: Forbidden

I tried different device id's with no luck. Any idea what can be the cause?

thenktor commented 10 years ago

When will this be merged? :)

rjbell4 commented 10 years ago

@vrusinov Did you use the device ID without the leading "0x". I think that was my problem. I had the same issue, but it's remedied now.

+1 for pulling this code. GMusicFS is broken without it.

EnigmaCurry commented 10 years ago

Sorry I haven't been more on top of this, I haven't had any time to test this. Thanks for the confirmation Bob. Can someone rebase this branch to the changes on master (it's not merging cleanly)? Also, would anyone involved with this like to be a collaborator on gmusicfs, since I'm finding less time to caretake for this?

On Sun, May 18, 2014 at 10:32 PM, Bob Bell notifications@github.com wrote:

@vrusinov https://github.com/vrusinov Did you use the device ID without the leading "0x". I think that was my problem. I had the same issue, but it's remedied now.

+1 for pulling this code. GMusicFS is broken without it.

— Reply to this email directly or view it on GitHubhttps://github.com/EnigmaCurry/GMusicFS/pull/8#issuecomment-43461922 .