gmusicapi: an unofficial API for Google Play Music

gmusicapi allows control of Google Music <http://music.google.com>__ with Python.

.. code-block:: python

from gmusicapi import Mobileclient

api = Mobileclient()
# after running api.perform_oauth() once:
api.oauth_login('<a previously-registered device id>')
# => 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 <https://github.com/chrisnorman7/gmp3>, a web-based jukebox which ships with its own server <https://github.com/chrisnorman7/jukebox>, command line <https://github.com/christopher-dg/pmcli>__ clients <https://github.com/and3rson/clay>, a FUSE filesystem <https://github.com/EnigmaCurry/GMusicFS>, and an Alexa skill <https://github.com/stevenleeg/geemusic>__
  • library management tools for syncing tracks <https://github.com/thebigmunch/gmusicapi-scripts>, syncing playlists <https://github.com/soulfx/gmusic-playlist>, and migrating to a different account <https://github.com/brettcoburn/gmusic-migrate>__
  • proxies for media players, such as gmusicproxy <https://github.com/gmusicproxy/gmusicproxy>__ and gmusicprocurator <https://github.com/malept/gmusicprocurator>, as well as plugins for Mopidy <https://github.com/hechtus/mopidy-gmusic>, Squeezebox <https://github.com/squeezebox-googlemusic/squeezebox-googlemusic>__ and Tizonia <https://github.com/tizonia/tizonia-openmax-il>__.
  • enhancements like autoplaylists / smart playlists <https://autoplaylists.simon.codes>__

Getting started

Start with the usage docs <http://unofficial-google-music-api.readthedocs.io/en/latest/usage.html#usage>__, 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 http://unofficial-google-music-api.readthedocs.io.

If the documentation doesn't answer your questions, or you just want to get in touch, either drop by #gmusicapi on Freenode <http://webchat.freenode.net/?channels=gmusicapi>__ or shoot me an email.

Status and updates

|build_status|

.. |build_status| image:: https://travis-ci.org/simon-weber/gmusicapi.png?branch=develop :target: https://travis-ci.org/simon-weber/gmusicapi

  • January 2020: Python 2 support dropped.
  • November 2018: proper OAuth support for the mobileclient.
  • 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 <https://twitter.com/simonmweber>__.

GmusicAPI

An unofficial client library for Google Music.

GmusicAPI Info

⭐ Stars2540
🔗 Source Codegithub.com
🕒 Last Update10 months ago
🕒 Created11 years ago
🐞 Open Issues61
➗ Star-Issue Ratio42
😎 Authorsimon-weber