我使用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}$
libspotify本身没有加载播放列表的超时时间。事实上,在一个完美的条件风暴(没有本地缓存,大帐户,播放列表服务动作缓慢),加载播放列表可能需要很多分钟。在
我不太熟悉libspotify的Python绑定,但是这里确实引入了超时。所以,要解决这个问题:
增加超时值
完全取消超时(或者,我猜,设置一个疯狂的高值)
有时Spotify播放列表服务的一天很糟糕,速度会减慢或者完全停止。如果你正在制作的应用程序是面向用户的,你应该告诉用户播放列表正在加载,而不是出错。在
至于时间,很可能你的缓存被破坏了,这导致libspotify需要更多的时间来加载播放列表。也许你正在加载的播放列表真的接近超时,现在它们触发了超时。也许你的libspotify连接被负载平衡到一个Spotify服务器上,这个服务器比以前离你的物理位置更远。除了删除缓存之外,你不能影响任何这些事情。在
相关问题 更多 >
编程相关推荐