尽管用户有曲目,但 SoundCloud API 返回 0 首曲目

SoundCloud API returning 0 tracks despite user having tracks

我正在尝试获取特定用户的曲目,但对于某些用户,即使他们有曲目,SoundCloud API return 也是一个空列表。

例如,从他的track_count

可以看出,以下用户有 17 首曲目
http://api.soundcloud.com/users/1250904?client_id=XXXXXX

如果我尝试获取他的踪迹,它return是一个空列表

http://api.soundcloud.com/users/1250904/tracks?client_id=XXXXXX

用户是否可以通过 API 设置他们的歌曲不可用? user上有字段可以区分这个吗?

这很有趣。使用我自己生成的正常 CLIENT_ID,我得到的结果与您相同。此外,如果我尝试点击 API 以获取有关特定曲目的信息,我会收到 403 Forbidden 错误:

HTTP GET https://api.soundcloud.com/tracks/149151252.json?client_id=XXXXXX

出现这种情况可能有以下几个原因:

  1. 用户已达到所有曲目的下载限制。
  2. 用户已禁用 oEmbed,导致 API 请求到 403(请参阅 this post)。
  3. 用户以某种方式设法阻止正常API访问他们的足迹。

我倾向于选择 3。我在 中对其他 CLIENT_ID 进行了一些测试,尝试使用 youtube-dl 应用程序使用的 CLIENT_ID。使用他们的 _IPHONE_CLIENT_ID,我能够看到所有 17 首曲目的信息。如果我对该密钥的理解是正确的,它是 SoundCloud 用于其 iOS 应用程序的主 API 密钥,这可以解释为什么该密钥有效而其他密钥无效。

此用户必须启用某些设置才能阻止标准 API 访问他们的曲目。