![](/img/trans.png)
[英]Is there a method to retrieve all tracks from a playlist using Spotipy?
[英]Getting tracks from a playlist using Spotipy is slow
我正在与django项目的Spotify Web API进行交互,该项目允许用户上传其播放列表,以便根据某些参数对它们进行排名,即Spotify将音频功能分配给所有曲目。
我正在使用Spotipy库以python查询Spotify API。 用户和播放列表数据的传输速度很快,但是按照Spotipy教程中有关如何从播放列表获取曲目的方式进行操作之后,我发现响应速度非常慢。
曲目的等待时间大约与曲目中播放列表的长度成正比。我认为这与Spotipy库打包和发送请求的效率低下有关。
有没有人遇到过类似的瓶颈以获取音轨和速度?
我将非常感激..目前我们的项目取决于此。
Spotipy
一点也不慢。
无论如何,您可以尝试自己提出请求。
import requests
import json
然后获取所需的终结点:(请参阅: Spotify Web API终结点参考 )
SEARCH_PLAYLIST_ENDPOINT ='https://api.spotify.com/v1/search?type=playlist'
AUDIO_FEATURES_ENDPOINT = 'https://api.spotify.com/v1/audio-features/{id}'
并提供访问令牌,并按名称过滤播放列表:
def search_playlist(name):
path = 'token.json'
with open(path) as t:
token = json.load(t)
myparams = {'type': 'playlilst'}
myparams['q'] = name
resp = requests.get(SEARCH_PLAYLIST_ENDPOINT, params=myparams, headers={"Authorization": "Bearer {}".format(token)})
return resp.json()
显然,查询播放列表项的响应时间取决于播放列表轨道的数量,其变化可能很大。
然后,您可以使用此功能获取音频功能:
# https://developer.spotify.com/web-api/get-related-artists/
def get_audio_features(track_id):
path = 'token.json'
with open(path) as t:
token = json.load(t)
url = AUDIO_FEATURES_ENDPOINT.format(id=track_id)
resp = requests.get(url, headers={"Authorization": "Bearer {}".format(token)})
return resp.json()
其他请求遵循相同的逻辑。 测试一下,并与Spotipy
速度进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.