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
答案 0 :(得分:2)
我的建议是使用现有的公共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