import requests import argparse import sys import json # LOCAL FUNCTIONS def encode_artist_name(value): return value.replace(' ', '+') # ARGUMENT parser = argparse.ArgumentParser(description='Python wrapper to get musical tags of an artist using MusicBrainz as a database') parser.add_argument('artists', type=str, nargs='+', help='Artists name') args = parser.parse_args() # MAIN CODE for artist in args.artists: try: response = requests.get("https://musicbrainz.org/ws/2/artist/?query={}&fmt=json".format(encode_artist_name(artist))) artist_data = json.loads(response.text)['artists'][0] if 'tags' in artist_data.keys(): tags = artist_data['tags'] if tags == []: print("Nobody has tagged {} yet".format(artist)) else: print(artist + ": " + ', '.join([tag['name'] for tag in tags])) else: print("Nobody has tagged {} yet".format(artist)) except: print(sys.exc_info()[0]) raise