Soundcloud API在某些曲目上返回403

时间:2016-03-14 03:01:34

标签: python api soundcloud

Soundclouds API在某些音轨上为我返回403。我尝试过使用原始的http端点以及用于python的soundcloud api包装器,两者都有问题。

https://api.soundcloud.com/tracks/251164884.json?client_id=CLIENT_ID

上面的一个返回403错误,而低于一个工作,显然使用相同的CLIENT_ID

https://api.soundcloud.com/tracks/197355235.json?client_id=CLIENT_ID

我使用库包装器。 requests.exceptions.HTTPError:403客户端错误:禁止

    import soundcloud
    client = soundcloud.Client(client_id=CLIENT_ID)
    track = client.get('/resolve', url='https://soundcloud.com/mtarecords/my-nu-leng-flava-d-soul-shake') 

https://soundcloud.com/calyxteebee/nothing-left 另一条也无法解决的轨道。并非所有曲目都有这个问题,大多数曲目都是如此。

如果你去分享 - >嵌入Soundcloud的track_id将在那里,所以我知道我使用的是正确的track_id。

在浏览器中查看http端点我收到错误。

Failed to load resource: the server responded with a status of 401 (Unauthorized) - https://api.soundcloud.com/favicon.ico

之前有其他人遇到此问题吗?

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

使用这个网址,完美地工作先生。试试这个。 :d

https://api.soundcloud.com/tracks/TRACK_ID/stream?client_id=CLIENT_ID

答案 2 :(得分:0)

我一直在调查这个问题已经有一段时间了,我发现了一些至少可以解决我的情况的事情,不管它会解决你的问题。

启示录: 如果您使用curl(-I选项)执行 head 请求,则它似乎始终返回200/300范围响应。

为什么会有效:我使用FreeStreamer在iOS应用中使用https://api.soundcloud.com/tracks/TRACK_ID/stream?client_id=CLIENT_ID等网址发送Soundcloud曲目。该流正好在那些curl -v为轨道URL返回403的轨道上失败(它为流URL返回401)。因此,为了解决我的情况,我执行一个头部请求,它提供302 Found,提取mp3 URL,然后我使用它来流而不是原始URL。

我认为这是一个库的错误(因为它应该能够处理任何302)并且我为它创建了一个issue