The artist background had been saving to the folder the script was run from. This has now been resolved.
53 lines
2.2 KiB
Python
53 lines
2.2 KiB
Python
import requests
|
|
import os
|
|
|
|
def get_mb_id(artist_name, mb_confidence):
|
|
artist_name = artist_name.strip('_')
|
|
mb_url = f'https://musicbrainz.org/ws/2/artist?query=artist:"{artist_name}"&fmt=json'
|
|
header = {'User-Agent': 'get_artist_art.py/1.0'}
|
|
response = requests.get(mb_url, headers=header)
|
|
if response.status_code == 200:
|
|
mb_data = response.json()
|
|
if mb_data['count'] > 0:
|
|
if mb_data['artists'][0]['score'] > mb_confidence:
|
|
return True, mb_data['artists'][0]['id']
|
|
else:
|
|
print("No artist found of hight enough confidance.")
|
|
else:
|
|
print("No artist found.")
|
|
return False, ""
|
|
else:
|
|
print(f"Error: {response.status_code}")
|
|
return False, ""
|
|
|
|
def get_image(mb_id, ftv_api_key, artist_path):
|
|
ftv_api_url = f'https://webservice.fanart.tv/v3/music/{mb_id}?api_key={ftv_api_key}'
|
|
response = requests.get(ftv_api_url)
|
|
ftv_data =response.json()
|
|
if not ('status' in ftv_data):
|
|
if ('artistthumb' in ftv_data):
|
|
art_url = ftv_data['artistthumb'][0]['url']
|
|
print(art_url)
|
|
response = requests.get(art_url)
|
|
if response.status_code == 200:
|
|
with open(os.path.join(artist_path, 'artist.jpg'), 'wb') as f:
|
|
f.write(response.content)
|
|
elif ('artistbackground' in ftv_data):
|
|
art_url = ftv_data['artistbackground'][0]['url']
|
|
response = requests.get(art_url)
|
|
if (response.status_code == 200):
|
|
with open(os.path.join(artist_path, 'artist.jpg'),'wb') as f:
|
|
f.write(response.content)
|
|
elif ('hdmusiclogo' in ftv_data):
|
|
art_url = ftv_data['hdmusiclogo'][0]['url']
|
|
response = requests.get(art_url)
|
|
if response.status_code == 200:
|
|
with open(os.path.join(artist_path, 'artist.png'), 'wb') as f:
|
|
f.write(response.content)
|
|
else:
|
|
print("Error downloading: ", response.status_code)
|
|
else:
|
|
print("Thumb not found.")
|
|
else:
|
|
error_msg = ftv_data['error message']
|
|
print(f"Error: {error_msg}") |