我仍在尝试在JavaScript中编写一个用户可以输入艺术家的函数,它会返回该艺术家的SoundCloud页面的链接。
例如,
/artist beyonce --> https://soundcloud.com/beyoncemusic
但是SoundCloud URL并不都是一样的。例如,
/artist dave matthews band --> https://soundcloud.com/dave-matthews-band.
出于这个原因,我不能简单地输出scLink / artistName,因为它们都有不同的URL。我正在使用Node.js,所以我查看了很多npm包,但是无法弄清楚如何使用任何这个目的。也许Soundclouder会以某种方式工作(尽管我自己无法弄明白)。有谁知道我怎么能写这样的命令?
答案 0 :(得分:0)
我认为你无法可靠地获得完全匹配。您最好的选择是搜索具有您正在寻找的字符串的用户 - 例如:“beyonce”然后显示结果并让他们选择正确的链接。在从soundcloud中提取初始列表后,您可以使用关注者计数(高跟随者数)或某些内容过滤掉可能的结果。
搜索代码:
users = SC.get('/users', { q: 'beyonce' });
然后迭代用户并显示永久链接URL。希望这会有所帮助。
答案 1 :(得分:0)
您正在使用SoundCloud API,对吗?
对正确的API的简单HTTP请求应该返回您想要的数据。例如:
http://api.soundcloud.com/users.json?q=beyonce
[
{
"id": 4293843,
"kind": "user",
"permalink": "beyoncemusic",
"username": "Beyoncé",
"uri": "http://api.soundcloud.com/users/4293843",
"permalink_url": "http://soundcloud.com/beyoncemusic",
"avatar_url": "http://i1.sndcdn.com/avatars-000036935308-a2acxy-large.jpg?435a760",
"country": "United States",
"full_name": "Beyoncé",
"description": "",
"city": "New York",
"discogs_name": null,
"myspace_name": "beyonce",
"website": "http://www.beyonceonline.com",
"website_title": "",
"online": false,
"track_count": 33,
"playlist_count": 2,
"plan": "Pro Plus",
"public_favorites_count": 0,
"followers_count": 478783,
"followings_count": 0,
"subscriptions": [
{
"product": {
"id": "creator-pro-unlimited",
"name": "Pro Unlimited"
}
}
]
},
...
]
...所以你可以做results[0].permalink_url
。
您可以使用request模块手动发出HTTP请求,或使用soundclouder处理SoundCloud API的身份验证详细信息。
如果您想从浏览器发出实际请求,上述大部分内容都不适用。 (问题是标记为node.js,但听起来你想从网页上做这件事。)
如果您是从网页上执行此操作,请使用SoundCloud JS SDK。您获得的数据将类似于上面的示例。