gmusicapi: an unofficial API for Google Play Music
gmusicapi allows control of Google Music with Python.
from gmusicapi import Mobileclient api = Mobileclient() api.login('firstname.lastname@example.org', '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:
- alternate clients, including one designed for the visually impaired, a command line client and FUSE filesystem
- library management tools for syncing tracks, syncing playlists, and migrating to a different account
- proxies for media players, such as gmusicproxy and gmusicprocurator, as well as plugins for Mopidy and Squeezebox.
- enhancements like autoplaylists
Everything you need is at http://unofficial-google-music-api.readthedocs.org.
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
- 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.