【发布时间】:2020-04-04 11:56:03
【问题描述】:
我正在尝试使用 python 自动添加歌曲以进行 spotify。 在代码中,我尝试使用 song_name 和艺术家姓名搜索歌曲,并使用 spotify api 获取歌曲的 URI。 (https://developer.spotify.com/documentation/web-api/reference/search/search/)
但是我得到的响应是无效的,即它不返回带有 uris 的歌曲列表,它只是返回查询或我发送到 API 的请求。
例如 {'tracks': {'href': 'https://api.spotify.com/v1/search?query=track%3AYEAH+RIGHT+artist%3AJoji&type=track&offset=0&limit=20', 'items': [], 'limit': 20, 'next': None, 'offset': 0, 'previous': None , '总计': 0}}
def get_spotify_uri(self, song_name, artist):
"""Search For the Song"""
query = "https://api.spotify.com/v1/search?q=track:{}%20artist:{}&type=track".format(
song_name,
artist
)
response = requests.get(
query,
headers={
"Content-Type": "application/json",
"Authorization": "Bearer {}".format(spotify_token)
}
)
response_json = response.json()
print(response_json)
songs = response_json["tracks"]["items"]
# only use the first song
uri = songs[0]["uri"]
return uri
Error: response
{'tracks': {'href': 'https://api.spotify.com/v1/search?query=track%3ANext+%28Album+Version%29+artist%3AThe+Weeknd&type=track&offset=0&limit=20', 'items': [], 'limit': 20, 'next': None, 'offset': 0, 'previous': None, 'total': 0}}
Traceback (most recent call last):
File "/home/nikhil/Crypy/spotifyplaylist.py", line 149, in <module>
cp.add_song_to_playlist()
File "/home/nikhil/Crypy/spotifyplaylist.py", line 124, in add_song_to_playlist
self.get_liked_videos()
File "/home/nikhil/Crypy/spotifyplaylist.py", line 77, in get_liked_videos
"spotify_uri": self.get_spotify_uri(song_name, artist)
File "/home/nikhil/Crypy/spotifyplaylist.py", line 119, in get_spotify_uri
uri = songs[0]["uri"]
【问题讨论】:
-
编辑您的问题,在其中包含响应代码和文本,您是否首先从accounts.spotify.com/api/token 获得了
oAuth令牌? -
@αԋɱҽԃαмєяιcαη 我已添加错误响应,是的,我已从给定链接获取 oAuth 令牌
-
我现在注意到了您的编辑。您收到的回复不是因为没有找到与您的查询匹配的曲目吗?
-
嗨@user2464424,我在赛道上找到比赛后得到了这个回复。这个脚本的问题是它有时会起作用,而大多数时候它不起作用,我不知道。
-
您的示例仅在删除
(Album+Version)位时才有效:?q=track:Next+artist:The+Weeknd&type=track。我的印象是这个问题只是一个糟糕的搜索查询问题。我建议您收集一大堆查询示例,即使在 spotify 上存在这些曲目也不会给出任何结果,并创建一个算法来去除通常会妨碍搜索的搜索词。
标签: python python-requests spotify youtube-dl