K Cartlidge

C#/DotNet. Go. Node. Python/Flask. Elixir.

Extracting a track listing from Google Play Music

Why I wanted a track listing

In an effort to tidy up my wife’s music, I needed a complete track listing from Google Play Music to help me track down duplicates and mis-labelled items. My first thought was a Google Apps Script, but there is no API for music. So I looked further and provided you are okay with running Python scripts (and have Python installed) there is an answer.

Pre-requisites to install

There are two things to get onto your computer. They are the PIP installer and the gmusicapi (unofficial) Python client for Play Music.

These done, you can see an example of usage at the top of this linked page.

In essence, create a Python script something like the following, which runs through all the tracks in your library and creates a tab-delimited listing:

from gmusicapi import Mobileclient
api = Mobileclient()
api.login('me@gmail.com', 'my-password')
library = api.get_all_songs()
print ('Artist\tAlbum\tAlbum Artist\tTitle')
for track in library:
    print (track['artist'] + '\t' + track['album'] + '\t' + track['albumArtist'] + '\t' + track['title']).encode('utf-8')

Obviously insert your own email address and password, and remember that in Python the indentation on the last line matters.

The final output for me is a complete listing – though strangely with five more entries than the web site shows (I haven’t narrowed them down as there are nearly 10,000 and I’m not scrolling through them all on the site).

Hopefully that helps someone else out there. Please don't abuse the 'API' as Google may break it for all of us.