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
之前有其他人遇到此问题吗?
答案 0 :(得分:3)
使用你的两个例子我得到了两个有效的结果
示例1:
返回
https://api.soundcloud.com/tracks/251164884?client_id=CLIENT_ID
示例2:
<强> 返回 强>
https://api.soundcloud.com/tracks/249638630?client_id=CLIENT_ID
答案 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。