gmusicapi: an unofficial API for Google Play Music

This library allows control of Google Music with Python.

from gmusicapi import Mobileclient

api = Mobileclient()
api.login('user@gmail.com', 'my-password')
# => 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)

This project is not supported nor endorsed by Google. Use common sense (protocol compliance, reasonable load, etc) and don’t ruin the fun for everyone else.

Features

All major functionality is supported:

  • Library management: list, create, delete, and modify songs and playlists
  • Streaming and single-song downloading
  • Music Manager uploading/scan-and-match and library downloading
  • Most All Access features

See the changelog for changes by version.

Using gmusicapi

Getting started

The usage section has installation instructions and some simple examples.

Api and data reference

The reference has details for all classes and functions, as well as information on the Google Music data you’ll encounter:

Making gmusicapi better

Contributions are always welcome! The contributing section has more details.

The code might also be useful.

Ports and other languages

The ports section lists known ports and information for making ports.

Getting help

Running into bugs? Have questions? Drop by #gmusicapi on Freenode. If you’ve never used IRC before, it’s easy: just fill in a nickname and captcha at this webchat link.

If IRC makes you uncomfortable, you can always email me directly: simon@simonmweber.com.