api_calls.py had been emptied for some reason. Probably an acidential deletion. The old code has now been placed in the file.
47 lines
1.9 KiB
Python
47 lines
1.9 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 ('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}") |