Google Music

Here's what I've been working on. I don't have everything implemented, but I think it's a pretty good start. Bug reports, feature requests and criticisms are welcome.

Developed and tested only on OS X Lion. Linux and Windows support is planned.

Enjoy biggrin.gif
 

 

Git repository: http://www.github.com/supermaik/GoogleMusic.bundle.git

Current git repo bundle status: WORKING

 

Last updated 20-Jun-2013

 

What Works

  • Linux
  • Browsing/playing user-created playlists
  • Shuffle all songs (currently pulls down entire library in one request, potentially tens of thousands of songs)
  • Browse by artist -> album; or browse by artist -> all songs
  • Browse by album

What Doesn't Work

  • Windows
  • Mac OS X

Hey,



Always great to see new plugins. I have a quick look at the code and found a possible issue which might result in this channel not working for iOS and probably Android based client. The ‘key’ of a TrackObject (or VideoClipObject, PhotoObject) is not meant to be the URL to the resource but actually a URL to a callback used to provide an ObjectContainer of all the associated information. There are various ways to do this. The simplest is to use a URL Service (as described here). It might be a little trickier because you have to handle authentication, but should still be possible.



If you’re keen to do everything manually inside the channel, an example of this being done can be seen in the Netflix plugin: https://github.com/plexinc-plugins/Netflix.bundle/blob/master/Contents/Code/US/init.py#L110



Ian

Oh, and another slightly different example is Live Music Archive: https://github.com/plexinc-plugins/LMA.bundle/blob/master/Contents/Code/init.py



It uses a AlbumObject, specifying the URL, and then allows the Internet Acrhive URL Service (here). Just thought i’d link you to them incase you find them useful…



Ian

Hey maik,



Have you worked on this at all? I was looking for a gmusic plugin to see if I should develop one or not and I see you have started one already.



Thanks,



Ryan

Google search returned.. works pretty well.

https://github.com/supermaik/GoogleMusic.bundle

Google search returned.. works pretty well.

https://github.com/supermaik/GoogleMusic.bundle

Can't seem to get it working in Plex/Web or PHT.  On Android it brings up a blank Preferences screen.

Hey guys.  I've been thinking about resurrecting this lately.  I'm likely going to do a rewrite since I think I just hodgepodged it together and didn't follow the coding guidelines.  Keep an eye on this thread and I'll try and keep it updated.

As far as getting the current version working I'm not really sure as it's been a while since I've messed with it.  I just opened it on my Roku this evening and to my surprise it actually still worked.

Hey maik,

Have you worked on this at all? I was looking for a gmusic plugin to see if I should develop one or not and I see you have started one already.

Thanks,

Ryan

Did you end up starting one?

Hey,

Always great to see new plugins. I have a quick look at the code and found a possible issue which might result in this channel not working for iOS and probably Android based client. The 'key' of a TrackObject (or VideoClipObject, PhotoObject) is not meant to be the URL to the resource but actually a URL to a callback used to provide an ObjectContainer of all the associated information. There are various ways to do this. The simplest is to use a URL Service (as described here). It might be a little trickier because you have to handle authentication, but should still be possible.

If you're keen to do everything manually inside the channel, an example of this being done can be seen in the Netflix plugin: https://github.com/plexinc-plugins/Netflix.bundle/blob/master/Contents/Code/US/__init__.py#L110

Ian

So in my case I'm using a third party library to get all of the information for me.  When implementing MetaDataObjectForURL() do I just make calls to the third party library for grabbing relevant metadata?

i just tried your plugin, unfortunately its not working for me, on my nexus 7  the directory is empty, on my iPad 3 it show my albums and artists but when I try to play something nothing happens and on the plexweb, in album or artist directory it says is unavailable. I try on my roku 2 later, but if you can get this plugin to work except for sports I can probably do all my media watching and listening within plex.

i just tried your plugin, unfortunately its not working for me, on my nexus 7  the directory is empty, on my iPad 3 it show my albums and artists but when I try to play something nothing happens and on the plexweb, in album or artist directory it says is unavailable. I try on my roku 2 later, but if you can get this plugin to work except for sports I can probably do all my media watching and listening within plex.

I didn't expect anything to work so it's a miracle you got any of that functionality out of it.  I'm just now picking up development again actively working on it but it's likely to be slow going.  As I mentioned I will keep this thread updated as best as I can, but if you're interested in following development check out the github page for it at https://github.com/supermaik/GoogleMusic.bundle

I tried to update the plugin by removing the old one, added new version, exited plex, restarted plex but googlemusic didn’t show up, I have restarted plex several times, removed the plugin several times as well, it is not showing up. Is there any other way to get plex to see it.

Did you end up starting one?

Hey maik, 

Sorry for late reply, I didn't get any notification.

No, i didn't start one.  I see that you have picked up the project again!  Let me know if you need any help.  I have some limited time, but I would love to see this take off.

I'm going to update the first post with the current status, at least to indicate whether or not I believe it to be functional.

I'm in very early stages of the re-write so it's definitely busted.  I'm glad to hear of the interest though and it will definitely keep me poking at it.  rymos, I will let you know if I need anything, thanks for the offer.

So it looks like attempting to update to the latest gmusicapi was futile.  My primary development has been on a Mac PMS which is stuck on the Python 2.5 framework.  The latest gmusicapi is 2.5-incompatible so that didn't work out.  I've rolled back the repo to the state of the original beta and as far as I can tell that's working still.  My current plan is the following:

Bring up a Linux PMS and do primary development on that, update gmusicapi and the relevant libraries and start working on the interface.

Once I've got a good handle on that I will attempt to use the older gmusicapi to satisfy the Mac users and, with any luck, the differences will be transparent to the users.

Finally, once Plex unifies the frameworks across the board to 2.7+ (I've been told "no ETA, but soonish") I will bring the Mac parts up to speed with the rest of the plugin and we should be good to go.

Alright.  I've done some work on stripping out the unnecessary (for our purposes) stuff that was preventing everything from loading properly.  I've also been talking with the primary gmusicapi developer and it sounds like they're going to attempt to draw a clearer line between the music side of things and the music manager side of things.  This means I'll be able to simply take the part I'm interested in using and use it

In any case, the most recent commit (https://github.com/supermaik/GoogleMusic.bundle/commit/92f598fd39dab9eeb700e764aa4c41097b86234d) is working and semi-stable.   

Worked on the interface a bit.  Now when you select an artist it gives you the options to play all of the artist's songs, see a list of the artist's albums or a see a list of the artist's songs.

https://github.com/supermaik/GoogleMusic.bundle/commit/33488588ab1856a005c1867cae7c95acb61a8c49

Fixed the problem where then next track wouldn't play automatically (gmusic object appears to get destroyed after a few minutes and the credentials weren't re-retrieved when the new instance was set up.  Borrowed heavily from the Pandora plugin which performs a login whenever data is requested from the server (in cases where multiple successive requests are performed the object is simply passed around).

Also removed the "Play all artist's songs" option because such a feature isn't possible.  No big deal though as "All songs" accomplishes the same thing, just without autoplay.

https://github.com/supermaik/GoogleMusic.bundle/commit/837d01b130167da524fad645f7702e6c2ef429e1

Added a "Shuffle All" top level option to shuffle all tracks.  This returns the entire track listing in one lump (potentially tens of thousands of tracks, depending on your library).

https://github.com/supermaik/GoogleMusic.bundle/commit/837d01b130167da524fad645f7702e6c2ef429e1

Hello!
 
   I´m tested the plugin on PMS in Windows 7 but it not work. Are you tested on this operative system? If not, Are you planning to do it soon?
 
Thanks in advance..
 
Jose Manuel