Skip to content

Instantly share code, notes, and snippets.

@mmai
Last active December 14, 2015 04:39
Show Gist options
  • Save mmai/5030194 to your computer and use it in GitHub Desktop.
Save mmai/5030194 to your computer and use it in GitHub Desktop.
Update GMusic with new metadatas from a CSV file
#!/usr/bin/env python
from gmusicapi.api import Api
import csv
from settings import settings
def main():
api = Api()
api.login(settings['email'], settings['password'])
if not api.is_authenticated():
print "Sorry, those credentials weren't accepted."
return
print "Successfully logged in."
print
fieldnames = ['id', 'rating', 'name', 'album', 'albumArtist', 'artist', 'composer', 'disc', 'genre', 'playCount', 'totalDiscs', 'totalTracks', 'track', 'year', 'type', 'comment', 'durationMillis', 'creationDate', 'matchedId']
f = open('songs.csv', 'rb')
reader = csv.DictReader(f, fieldnames, delimiter='`')
songs = list(reader)
for song in songs:
song['rating'] = int(song['rating'])
song['type'] = int(song['type'])
song['playCount'] = int(song['playCount'])
song['disc'] = int(song['disc'])
song['year'] = int(song['year'])
song['track'] = int(song['track'])
song['totalTracks'] = int(song['totalTracks'])
song['totalDiscs'] = int(song['totalDiscs'])
song['durationMillis'] = int(song['durationMillis'])
song['creationDate'] = int(song['creationDate'])
song['title'] = song['name']
song['titleNorm'] = song['name'].lower()
song['artistNorm'] = song['artist'].lower()
song['albumArtistNorm'] = song['albumArtist'].lower()
song['albumNorm'] = song['album'].lower()
song['matchedId'] = ''
song['subjectToCuration'] = False
song['deleted'] = False
song['beatsPerMinute'] = 0
api.change_song_metadata(songs)
f.close()
api.logout()
print "All done!"
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment