Python SoundCloudAPI忽略持续时间过滤器
在上的SoundCloudAPI文档之后,我开始在我的一个项目中编写SoundCloudAPI的实现。我尝试使用以下代码获得50首特定类型的曲目,最小长度为120000毫秒:Python SoundCloudAPI忽略持续时间过滤器,python,api,dictionary,soundcloud,Python,Api,Dictionary,Soundcloud,在上的SoundCloudAPI文档之后,我开始在我的一个项目中编写SoundCloudAPI的实现。我尝试使用以下代码获得50首特定类型的曲目,最小长度为120000毫秒: def get_starttracks(genres="Rock"): return client.get("/tracks", genres=genres, duration={ 'from': 120000 }, limit='50') SoundCloud会以有效的曲目列表进行响应,
def get_starttracks(genres="Rock"):
return client.get("/tracks", genres=genres, duration={
'from': 120000
}, limit='50')
SoundCloud会以有效的曲目列表进行响应,但它们的持续时间与给定的过滤器不匹配
例如:
print(get_starttracks(genres="Pop")[0].fields()['duration'])
> 30000
api是否忽略了“duration”参数,或者我的代码中的过滤器是否存在错误
注:如果python代码中没有错误,则可能与此相关。在尝试通过对代码进行几处更改来修复此问题后,我终于发现了问题: 这不是一个bug。随着Soundcloud发布他们的“Go+”服务,一些官方曲目的预览时间被限制在30秒。API过滤器似乎比较了完整曲目的持续时间,而只是将预览版本发送回客户端(如果您尚未订阅“Go+”和/或您的应用程序未登录) 因此,按持续时间过滤的唯一方法是迭代所有接收到的曲目:
for track in tracks:
if track.duration <= 30000:
tracks.remove(track)
对于轨道中的轨道:
如果跟踪。持续时间