gmusicapi allows control of Google Music with Python.
from gmusicapi import Mobileclient
api = Mobileclient()
api.login('user@gmail.com', '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.
- 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.