Python libSpotifySDK:加载播放列表时超时
我使用libSpotify 12.1.51(linux-libc6 x86_64)和pyspotify从python向spotify发出请求 我们已经使用这段代码很长时间了,但是几周前突然出现了超时。每次尝试加载播放列表时,都会出现超时(我尝试了许多播放列表) 下面是一些复制问题的代码:Python libSpotifySDK:加载播放列表时超时,python,spotify,libspotify,Python,Spotify,Libspotify,我使用libSpotify 12.1.51(linux-libc6 x86_64)和pyspotify从python向spotify发出请求 我们已经使用这段代码很长时间了,但是几周前突然出现了超时。每次尝试加载播放列表时,都会出现超时(我尝试了许多播放列表) 下面是一些复制问题的代码: import spotify import logging import os class SpotifyClient(object): def __init__(self): con
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')
这个播放列表只是我从我正在尝试的列表中随机选择的一个
以下是将输出到控制台的内容:
DEBUG:spotify.session:Notify main thread
DEBUG:spotify.session:Log message from Spotify: 16:18:40.516 E [ap:4172] ChannelError(0, 1, playlist)
DEBUG:spotify.session:Notify main thread
DEBUG:spotify.playlist:Playlist state changed
DEBUG:spotify.session:Notify main thread
DEBUG:spotify.session:Notify main thread
DEBUG:spotify.session:Notify main thread
DEBUG:spotify.session:Notify main thread
DEBUG:spotify.session:Notify main thread
DEBUG:spotify.session:Notify main thread
Traceback (most recent call last):
File "x.py", line 27, in <module>
client.load_playlist('spotify:user:melek136:playlist:32Gl8vkJmvJCHejGTEgM1t')
File "x.py", line 20, in load_playlist
self.playlist.load(timeout=20)
File "/home/entura/env/lib/python2.7/site-packages/spotify/playlist.py", line 103, in load
return utils.load(self, timeout=timeout)
File "/home/entura/env/lib/python2.7/site-packages/spotify/utils.py", line 222, in load
raise spotify.Timeout(timeout)
spotify.error.Timeout: Operation did not complete in 20.000s
调试:spotify.session:通知主线程
调试:spotify。会话:来自spotify的日志消息:16:18:40.516 E[ap:4172]频道错误(0,1,播放列表)
调试:spotify。会话:通知主线程
调试:spotify。播放列表:播放列表状态已更改
调试:spotify。会话:通知主线程
调试:spotify。会话:通知主线程
调试:spotify。会话:通知主线程
调试:spotify。会话:通知主线程
调试:spotify。会话:通知主线程
调试:spotify。会话:通知主线程
回溯(最近一次呼叫最后一次):
文件“x.py”,第27行,在
client.load_playlist('spotify:user:melek136:playlist:32Gl8vkJmvJCHejGTEgM1t')
加载播放列表中第20行的文件“x.py”
self.playlist.load(超时=20)
文件“/home/entura/env/lib/python2.7/site packages/spotify/playlist.py”,第103行,已加载
返回utils.load(self,timeout=timeout)
加载文件“/home/entura/env/lib/python2.7/site packages/spotify/utils.py”,第222行
提升spotify.Timeout(超时)
spotify.error.Timeout:操作未在20.000秒内完成
libspotify本身没有加载播放列表的超时时间。事实上,在一个完美的风暴条件下(没有本地缓存、大帐户、播放列表服务运行缓慢),加载播放列表可能需要很多分钟 我对libspotify的Python绑定不太熟悉,但是这里肯定引入了超时。因此,要解决这个问题:
至于时间安排,很可能是缓存被破坏,导致libspotify需要更多时间加载播放列表。也许你正在加载的播放列表非常接近超时,现在它们触发了超时。也许您的libspotify连接正被负载平衡到比以前更远离您的物理位置的Spotify服务器。除了删除缓存外,您不能影响这些操作。谢谢您的回答。缓存位于文件系统(Linux)的何处,以便我可以删除它?另外-我尝试了10000秒的超时,但仍然达到了超时。(我确实得到了Notify main thread)整个期间的回调,但它永远不会返回:(缓存位于您告诉它去的任何地方-它是libspotify的init方法的参数。这可能相关吗?