Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Soundcloud API在某些曲目中返回403_Python_Api_Soundcloud - Fatal编程技术网

Python Soundcloud API在某些曲目中返回403

Python Soundcloud API在某些曲目中返回403,python,api,soundcloud,Python,Api,Soundcloud,Soundclouds API在一些曲目中为我返回403。我尝试过使用原始http端点和用于python的SoundCloudAPI包装器,两者都存在问题 https://api.soundcloud.com/tracks/251164884.json?client_id=CLIENT_ID 上面的一个返回403错误,而下面的一个工作,显然使用相同的客户端ID https://api.soundcloud.com/tracks/197355235.json?client_id=CLIENT_I

Soundclouds API在一些曲目中为我返回403。我尝试过使用原始http端点和用于python的SoundCloudAPI包装器,两者都存在问题

https://api.soundcloud.com/tracks/251164884.json?client_id=CLIENT_ID
上面的一个返回403错误,而下面的一个工作,显然使用相同的客户端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') 
另一条同样无法解决的轨迹。并不是所有的曲目都有这个问题,大多数曲目总是这样

如果你去Share->Embed on Soundcloud,曲目id就会在那里,所以我知道我使用的是正确的曲目id

在浏览器中查看http端点时出现错误

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

以前还有谁遇到过这个问题吗

使用此url,工作正常,先生。试试这个D

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

使用你的两个例子,我得到了这两个方面的有效结果

示例1:

返回

示例2:

返回


我调查这个问题已经有一段时间了,我发现了一些至少能解决我的问题的东西,不知道它是否能解决你的问题

启示录: 如果您使用curl(
-I
选项)执行head请求,那么它似乎总是返回200/300范围的响应

为什么它有效:我正在用
https://api.soundcloud.com/tracks/TRACK_ID/stream?client_id=CLIENT_ID
在iOS应用程序中使用。流正好在那些轨道上失败,
curl-v
为轨道URL返回403(为流URL返回401)。因此,为了解决我的问题,我执行了一个head请求,它给出了
302 Found
,提取mp3url,并使用它来流式传输,而不是原始URL


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

可能与这个项目有关吗?我也仍然有这个问题,你只是在一些轨道或所有轨道上的错误?我在四处搜索时遇到了另一个问题,似乎是在描述类似的行为。我认为,如果这个问题是如此广泛,它会引发一些失败的测试或其他一些事情。我想我们只需要玩等待游戏?示例URL返回的端点(替换了CLIENT_ID)都不适合我。它解析为正确的track_id/url,并尝试重定向/加载track api数据,但像以前一样抛出403。尝试使用不同的客户端ID/应用程序,甚至尝试一起创建新的开发人员帐户。尽管如此,这些曲目仍然存在问题。我只是在soundcloud上喜欢它们,然后去了一个我正在使用soundcloud API开发的网站,这些曲目没有显示在我的“收藏夹”提要中。我在之后添加了一些其他曲目,以查看更新通过API返回的数据时是否有延迟,但是您遇到问题的曲目都没有显示在调用me/favorites端点的结果中,并且在它们之后添加的曲目会毫不延迟地显示出来。它们在soundcloud上的显示与预期一致,因此我冒昧地猜测,通过API在某些曲目上存在权限/范围问题。我也遇到了同样的问题。URL从我的本地邮箱(澳大利亚)解析,而不是从我们的生产邮箱(亚利桑那州)解析。在过去三年中,我们已经在应用程序中进行了数千次这样的操作,这似乎是一种全新的行为。我可以使用curl从prod框中提取URL,但是使用ruby openuri会失败。很奇怪。我猜他们已经在一些边缘服务器上添加了用户代理阻塞。我改用Ruby的法拉第库,现在可以正常工作了。但愿我知道为什么。