You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用requests库按艺人名称搜索Spotify歌曲并设置结果限制

使用requests库搜索Spotify平台指定艺人的曲目

完全可以通过requests库调用Spotify的Search API实现按艺人名称搜索曲目,以下是基于你已完成的认证代码的完整实现:

import requests

client_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
client_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'

auth_url = 'https://accounts.spotify.com/api/token'

data = {
    'grant_type': 'client_credentials',
    'client_id': client_id,
    'client_secret': client_secret,
}
auth_response = requests.post(auth_url, data=data)
access_token = auth_response.json().get('access_token')

base_url = 'https://api.spotify.com/v1/search'

headers = {
    'Authorization': 'Bearer {}'.format(access_token)
}
artist_name = "John"
limit = 10  # 设置你想要的结果数量

# 构造搜索参数
params = {
    'q': f'artist:{artist_name}',
    'type': 'track',
    'limit': limit
}

# 发送搜索请求
search_response = requests.get(base_url, headers=headers, params=params)
search_results = search_response.json()

# 提取并打印曲目信息
if 'tracks' in search_results and 'items' in search_results['tracks']:
    tracks = search_results['tracks']['items']
    print(f"找到{len(tracks)}首{artist_name}的曲目:")
    for idx, track in enumerate(tracks, 1):
        track_name = track['name']
        album_name = track['album']['name']
        artists = ', '.join([art['name'] for art in track['artists']])
        print(f"{idx}. {track_name} - {artists} | 专辑:{album_name}")
else:
    print("未找到相关曲目或请求失败")

关键说明:

  • 搜索参数构造:q参数使用artist:{artist_name}语法,精准限定搜索指定艺人的曲目;type设为track确保返回结果是曲目而非艺人或专辑;limit控制返回的最大结果数(Spotify API允许的最大值为50)。
  • 响应处理:API返回的结果中,曲目信息嵌套在tracks->items路径下,可从中提取曲目名称、所属艺人、专辑等核心信息。
  • 基础容错:代码中加入了结果存在性判断,避免因请求失败或无匹配结果导致的报错。

内容的提问来源于stack exchange,提问作者Tonin thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:34:59