Я пытаюсь получить идентификатор трека в Spotify (https://open.spotify.com/track/track_id) в Python после возврата результатов поиска для трека с использованием исполнителя и названия трека, но все равно получаю ключевые ошибки.
Я думаю, что мой запрос правильный, и если я просто возвращаю и распечатываю результат JSON, он, похоже, возвращает полезную информацию, но если я попытаюсь удалить идентификатор:
track_id = result["id"]
Тогда я получаю только ключевые ошибки. Я перепробовал все виды, но не могу понять. Использование "href" вместо "id" (track_id = result["href"]) — единственное, что возвращает что-либо, кроме ошибки ключа.
def search_for_track(token, artist_name, track_name):
url = "https://api.spotify.com/v1/search"
headers = get_auth_header(token)
query = f"?q=track:{track_name} artist:{artist_name}&type=track&limit=1"
query_url = url + query
result = get(query_url, headers=headers)
json_result = json.loads(result.content)["tracks"]
return (json_result)
ext = (".aiff", ".mp3", ".wma", ".ogg", ".flac", ".ape", \
".mpc", ".opus", ".tta", ".wv", ".ofr", ".ofs", \
".off", ".asf", ".vob", ".oga")
def open_dir():
dirname = filedialog.askdirectory()
for entry in os.scandir(dirname):
if entry.is_file() and entry.name.endswith(tuple(ext)):
#print(entry.path)
audio = mutagen.File(entry.path, easy=True)
artist = audio.get('artist', ['Unknown'])[0]
title = audio.get('title', ['Unknown'])[0]
#print(f"Artist: {artist}")
#print(f"Title: {title}")
token = get_token()
result = search_for_track(token, artist, title)
track_id = result["id"]
print(track_id)