So I am an avid user of Google Play Music and have a subscription to their All Access service which is absolutely great. Whatever song I want, whenever I want to listen to it, but over time I was having one major problem.
I was getting fed up with searching for that one chrome tab with Google Music open or having to have the browser open just to play music. Chrome is not exactly resource efficient and having a tab consuming sometimes an entire gigabyte of RAM just to listen to my songs was unnacptable to me.
Some people had already attempted to make a stand alone solution for this but it was either a poorly implemented attempt or used an unofficial API that was now obsolete.
So I decided to man up, and make a stand alone application for Google Play Music. I had several requirements.
- It can't take more than 50MB of RAM at any point in time
- It must have full media control support
- Your experience should not be compromised (all functionality in the Web Browser must work or be replicated)
With these requirements in mind I decided to build it in C# using Visual Studio 2015. To be honest I only chose to do that because I had recently gotten a free copy in a Microsoft promotion and wanted to try and learn some C#.
After much trial and error, going through multiple different ways to render the Play Music page (IE7 - Default, IE10, GeckoFX) I finally settled on CefSharp which is a C# implementation of CEF (Chromium Embedded Framework). Then came the global media key recognition and garbage management issues that went with that. And now I have a fully working desktop client for Google Play Music that meets all of my requirements.
The whole thing is Open Source, if you are interested you can check out the releases section of my GitHub