An unofficial client library for Google Music.


gmusicapi: an unofficial API for Google Play Music

gmusicapi allows control of Google Music with Python.

from gmusicapi import Mobileclient

api = Mobileclient()
api.login('', 'my-password', Mobileclient.FROM_MAC_ADDRESS)
# => True

library = api.get_all_songs()
sweet_track_ids = [track['id'] for track in library
                   if track['artist'] == 'The Cat Empire']

playlist_id = api.create_playlist('Rad muzak')
api.add_songs_to_playlist(playlist_id, sweet_track_ids)

gmusicapi is not supported nor endorsed by Google.

That said, it's actively maintained, and powers a bunch of cool projects:

Getting started

Start with the usage docs, which will guide you through installation and the available apis.

Once you're up and running, you can explore the rest of the docs at

If the documentation doesn't answer your questions, or you just want to get in touch, either drop by #gmusicapi on Freenode or shoot me an email.

Status and updates
  • February 2016: Python 3 support!
  • September 2015: Google switched to a new music uploading endpoint, breaking uploading for outdated versions of gmusicapi.
  • June 2015: Full mobileclient and webclient functionality was restored.
  • May 2015: Limited mobileclient functionality was restored.
  • April 2015: Google deprecated clientlogin, breaking both the webclient and mobileclient.
  • November 2013: I started working fulltime at Venmo, meaning this project is back to night and weekend development.

For fine-grained development updates, follow me on Twitter: @simonmweber.

Copyright 2015 Simon Weber. Licensed under the 3-clause BSD. See LICENSE.