libSpotifySDK:加载playlis时超时

2024-10-01 00:23:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用libspotify12.1.51(linux-libc6 x86_64)和pyspotify从python请求spotify。在

我们已经使用这个代码很长一段时间了,但是突然的超时在几周前就开始了。每次尝试加载播放列表时,都会超时(我尝试过许多播放列表)

下面是一些复制该问题的代码:

import spotify
import logging
import os

class SpotifyClient(object):
    def __init__(self):
        config = spotify.Config()
        config.load_application_key_file(filename=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'spotify_appkey.key'))
        if spotify.session_instance:
            self.session = spotify.session_instance
        else:
            self.session = spotify.Session(config=config)
        if not self.session.connection_state == spotify.ConnectionState.LOGGED_IN:
            self.session.login('OUR_USERNAME', 'OUR_PASSWORD')
        while not self.session.user:
            self.session.process_events()

    def load_playlist(self, playlist_uri):
       self.playlist = spotify.Link(playlist_uri).as_playlist()
       self.playlist.load(timeout=20)

if __name__ == '__main__':

   logging.basicConfig(level=logging.DEBUG)

   client = SpotifyClient()
   client.load_playlist('spotify:user:melek136:playlist:32Gl8vkJmvJCHejGTEgM1t')

我只是从列表中随机选择了一个。在

以下是将输出输出到控制台的内容:

^{pr2}$

Tags: path代码importselfconfigifossession
1条回答
网友
1楼 · 发布于 2024-10-01 00:23:19

libspotify本身没有加载播放列表的超时时间。事实上,在一个完美的条件风暴(没有本地缓存,大帐户,播放列表服务动作缓慢),加载播放列表可能需要很多分钟。在

我不太熟悉libspotify的Python绑定,但是这里确实引入了超时。所以,要解决这个问题:

  1. 增加超时值

  2. 完全取消超时(或者,我猜,设置一个疯狂的高值)

有时Spotify播放列表服务的一天很糟糕,速度会减慢或者完全停止。如果你正在制作的应用程序是面向用户的,你应该告诉用户播放列表正在加载,而不是出错。在

至于时间,很可能你的缓存被破坏了,这导致libspotify需要更多的时间来加载播放列表。也许你正在加载的播放列表真的接近超时,现在它们触发了超时。也许你的libspotify连接被负载平衡到一个Spotify服务器上,这个服务器比以前离你的物理位置更远。除了删除缓存之外,你不能影响任何这些事情。在

相关问题 更多 >