无法使用从 Spotify API 获取的 Spotify 来访问曲目音频功能

问题描述 投票:0回答:1

在大学数据科学课程中做一个项目,这是我第一次使用 API。我需要使用 Spotify API 获取有关曲目的不同数据,但我很早就遇到了问题。我可以访问一些有关曲目的受欢迎程度、持续时间等的基本数据,但在尝试获取音频功能时我也会收到

403
错误。据我在网上搜索的帮助,显然我在 Spotify 访问令牌范围内没有足够的权限。但我不知道如何解决这个问题。

我尝试使用 sp.audio_features(track_ids) 获取相同曲目的音频特征(例如节奏、可舞性、能量)。这就是问题出现的地方。 当我运行代码时,收到错误,并且未检索音频功能。 错误:“GET 到 https://api.spotify.com 时出现 HTTP 错误...参数:{} 由于无而返回 403”

from spotipy.oauth2 import SpotifyOAuth
import spotipy
from dotenv import load_dotenv
import os
import pandas as pd

load_dotenv()
client_id = os.getenv("SPOTIPY_CLIENT_ID")
client_secret = os.getenv("SPOTIPY_CLIENT_SECRET")
redirect_uri = os.getenv("SPOTIPY_REDIRECT_URI")

auth_manager = SpotifyOAuth(
    client_id=client_id,
    client_secret=client_secret,
    redirect_uri=redirect_uri,
    scope="user-top-read"
)
sp = spotipy.Spotify(auth_manager=auth_manager)

# Fetch data
top_tracks = sp.current_user_top_tracks(limit=10)
track_data = []
track_ids = []
for item in top_tracks['items']:
    track_ids.append(item['id'])
    track_data.append({
        'track_id': item['id'],
        'track_name': item['name'],
        'artists': ", ".join(artist['name'] for artist in item['artists']),
        'popularity': item['popularity'],
        'explicit': item['explicit'],
        'duration_ms': item['duration_ms']
    })

# Fetch audio features
try:
    audio_features = sp.audio_features(track_ids) # Causing errors
    audio_features_df = pd.DataFrame(audio_features)
    df = pd.DataFrame(track_data)
    df = pd.merge(df, audio_features_df, left_on='track_id', right_on='id')
except: 
    print("Can not access audio features")
    df = pd.DataFrame(track_data)

df.head(10)
jupyter-notebook fetch-api spotify http-status-code-403
1个回答
0
投票

Spotify 于 2024 年 11 月 27 日弃用了多个 API 端点

get-audio-features
是这些端点之一。

这反过来又影响了斑点

© www.soinside.com 2019 - 2024. All rights reserved.