在https://developers.soundcloud.com/docs/api/reference#tracks的SoundCloud API文档之后,我开始在我的一个项目中编写SoundCloud API的实现 . 我尝试使用以下代码获取50个特定类型的音轨,最小长度为120000ms:
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'参数或者我的代码中的过滤器中是否有错误?
Ps . :如果错误不在python代码中,可能与soundcloud search api ignoring duration filter?有关 .
1 回答
尝试通过对我的代码进行一些更改来解决此问题后,我终于找到了问题:
这是 NOT 一个错误 . 随着Soundcloud发布他们的"Go+"服务,一些官方曲目仅限于30秒的预览 . API过滤器似乎比较完整轨道的持续时间,而只是将预览版本发送回客户端(如果您没有订阅"Go+"和/或您的应用程序未登录) .
因此,按持续时间过滤的唯一方法是遍历所有收到的曲目: