Gmusicapi
An unofficial client library for Google Music.
Install / Use
/learn @simon-weber/GmusicapiREADME
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>, andan 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>, andmigrating to a different account <https://github.com/brettcoburn/gmusic-migrate>__ - proxies for media players, such as
gmusicproxy <https://github.com/gmusicproxy/gmusicproxy>__ andgmusicprocurator <https://github.com/malept/gmusicprocurator>, as well as plugins forMopidy <https://github.com/hechtus/mopidy-gmusic>,Squeezebox <https://github.com/squeezebox-googlemusic/squeezebox-googlemusic>__ andTizonia <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>__.
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
90.0kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
343.1kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
