Soundcloud锁定了他们的API,没有人能够请求新的客户端ID。在他们关闭之前,他们只是忽略了几个月的API密钥请求。他们显然有他们的理由,但现在已经很多年了,这真的很烦人。
有人知道从提供的用户名中检索跟踪数据的任何厚颜无耻的变通办法吗?
我已经尝试解析dom并抓取它但它不起作用,因为它们在抓取时返回“没有javascript”错误呈现主页而不是用户页面。
示例:
$url = "https://soundcloud.com/username/tracks";
$dom = new Dom;
$dom->loadFromUrl($url);
$dom = $dom->find('title',0)->text;
应该返回:
username | Free Listening on SoundCloud
但相反,我们得到:
SoundCloud - Hear the world’s sounds
我的建议是使用现有的公共API密钥,例如the CLIENT_ID youtube-dl uses to download SoundCloud tracks。
您首先需要从用户名获取ID。我们将使用/resolve
端点:
HTTP GET: http://api.soundcloud.com/resolve?url=http://soundcloud.com/{username}&client_id={CLIENT_ID}
然后,从/users/{id}/tracks
端点获取用户的轨道:
HTTP GET: https://api.soundcloud.com//users/{id}/tracks