Не выдаётся результат при использовании Spotify Api

Хочу сделать программку, которая может создавать чарты используя Spotify Api. Код вначале работал без авторизации и выдавал результат, но после стал выдавать ошибку 401. Я добавил авторизацию, однако перестал получать результат. Буду рад, если поможете. Ниже прилагаю код. (Некоторые значения под ### убраны ради безопасности)

import spotipy
from spotipy.oauth2 import SpotifyOAuth
import json

client_id = '###'
client_secret = '###'

# Инициализируем аутентификацию
scope = "user-library-read"
redirect_uri = "###"
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id=client_id, 
                                               client_secret=client_secret, 
                                               redirect_uri=redirect_uri,
                                               scope=scope))

def get_artist_id(artist_name):
    result = sp.search(q=artist_name, type='artist', limit=1)
    items = result['artists']['items']
    if items:
        return items[0]['id']
    else:
        return None

def load_artists_from_json(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        data = json.load(f)
        return data.get("artists", [])

def get_top_tracks_for_all_artists(artists):
    all_tracks = []
    for artist_name in artists:
        artist_id = get_artist_id(artist_name)
        if artist_id:
            top_tracks = get_top_tracks(artist_id)
            all_tracks.extend(top_tracks)
        else:
            print(f"Артист {artist_name} не найден.")
    return all_tracks

def get_top_tracks(artist_id):
    top_tracks = sp.artist_top_tracks(artist_id)
    return top_tracks['tracks']

def print_top_tracks(tracks):
    for i, track in enumerate(tracks, 1):
        print(f"{i}. {track['name']} ({track['artists'][0]['name']}) - {track['popularity']} прослушиваний")

def save_top_tracks_to_file(tracks, file_path):
    with open(file_path, 'w', encoding='utf-8') as f:
        for i, track in enumerate(tracks, 1):
            f.write(f"{i}. {track['name']} ({track['artists'][0]['name']}) - {track['popularity']} прослушиваний\n")

if __name__ == "__main__":
    try:
        current_user = sp.current_user()
        print("Подключение к Spotify API успешно.")
        print("Текущий пользователь Spotify:", current_user['display_name'])
    except Exception as e:
        print("Ошибка при подключении к Spotify API:", e)
        exit()

    artists = load_artists_from_json("artists.json")

    print("Отправлен запрос: получение топ-50 песен для всех артистов...")
    all_tracks = get_top_tracks_for_all_artists(artists)

    sorted_tracks = sorted(all_tracks, key=lambda x: x['popularity'], reverse=True)[:50]

    save_top_tracks_to_file(sorted_tracks, "final_chart.txt")

    print("Топ-50 песен успешно получен и сохранен в файле 'final_chart.txt'.")

Ответы (0 шт):