繁体   English   中英

使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM