在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是否忽略了'持续时间'参数?或者我的代码中的过滤器中是否有错误?
Ps。:如果错误不在python代码中,可能与soundcloud search api ignoring duration filter?有关。
答案 0 :(得分:0)
尝试通过对代码进行多处更改来解决此问题之后,我终于找到了问题:
不一个错误。随着Soundcloud发布他们的“Go +” - 服务,一些官方曲目仅限于30秒的预览。 API过滤器似乎比较完整轨道的持续时间,而只是将预览版本发送回客户端(如果您没有订阅“Go +”和/或您的应用程序未登录)。
因此,按持续时间过滤的唯一方法是遍历所有收到的曲目:
Rewrite Base /