#!/usr/bin/env python3 import json import pylistenbrainz import sys auth_token = sys.argv[1] client = pylistenbrainz.ListenBrainz() client.set_auth_token(auth_token) with open(sys.argv[2], "r") as read_file: data = json.load(read_file) for raw in data: listen = pylistenbrainz.Listen( track_name = raw['track_metadata']['track_name'], artist_name = raw['track_metadata']['artist_name'] ) if 'listened_at' in raw: listen.listened_at = raw['listened_at'] if 'user_name' in raw: listen.username = raw['user_name'] if 'release_name' in raw['track_metadata']: listen.release_name = raw['track_metadata']['release_name'] if 'additional_info' in raw['track_metadata']: listen.additional_info = raw['track_metadata']['additional_info'] if 'tracknumber' in raw['track_metadata']['additional_info']: listen.tracknumber = raw['track_metadata']['additional_info']['tracknumber'] if 'spotify_id' in raw['track_metadata']['additional_info']: listen.spotify_id = raw['track_metadata']['additional_info']['spotify_id'] if 'isrc' in raw['track_metadata']['additional_info']: listen.spotify_id = raw['track_metadata']['additional_info']['isrc'] if 'listening_from' in raw['track_metadata']['additional_info']: listen.listening_from = raw['track_metadata']['additional_info']['listening_from'] if 'mbid_mapping' in raw['track_metadata']: if 'recording_mbid' in raw['track_metadata']['mbid_mapping']: listen.recording_mbid = raw['track_metadata']['mbid_mapping']['recording_mbid'] if 'artist_mbids' in raw['track_metadata']['mbid_mapping']: listen.artist_mbids = raw['track_metadata']['mbid_mapping']['artist_mbids'] if 'release_mbid' in raw['track_metadata']['mbid_mapping']: listen.release_mbid = raw['track_metadata']['mbid_mapping']['release_mbid'] response = client.submit_single_listen(listen) assert response['status'] == 'ok'