从Soundcloud曲目资源中检索Soundcloud用户资源



我正在尝试从给定的Soundcloud曲目资源对象"回溯"到创建它的Soundcloud用户资源对象。鉴于我对Soundcloudneneneba API的理解,我已经这样做了。

第一:检索特定轨道

track = client.get('/tracks', title="White Lies (feat. Jenni Potts)",
                              limit=1)

这应该返回一个曲目的集合(由Odesza)。

第二:从轨道资源收集轨道用户信息

white_lies_perma = track[0].user["permalink"]
white_lies_uID = track[0].user["id"]

第三:让用户(希望)使用以上过滤器

users = client.get('/users',
                id=white_lies_uID,
                permalink=white_lies_perma)

这应该返回1个用户,但是资源集合的长度是50(API默认值)。这很奇怪。

打印值:

for user in users:
    print(user.id)

79582

2684450

3765692

9918957

12470953

等等。。。

这应该只是一个长度为1的集合,包含一个id为18604897的资源。

此外,这个代码应该合理地返回二十次以上的"俄克拉何马城"。然而,当运行时,它给了我"圣弗朗西斯角","奥古斯塔","英国伦敦大学"

client = soundcloud.Client(client_id='xxxxx')
okcUsers = client.get('/users',city="Oklahoma City",limit=20)
for okcUser in okcUsers:
    print okcUser.city

Soundcloud的API有问题吗?

不确定你是如何在第三次调用中实现这些过滤器的,但我认为如果你进行,你应该得到你需要的信息

users = client.get('/users/%d' % white_lies_uID)

因为您不需要进行搜索,只需调用正确的/users/endpoint即可。要查看特定用户可以使用哪些端点,请转到https://developers.soundcloud.com/docs/api/reference#users并向下滚动到用户包含的字段列表下方。在那里,您可以看到一个端点列表,一旦您有了用户id,就可以调用这些端点。

最新更新