获取SoundCloud艺术家页面? (第2轮)

时间:2014-02-11 16:40:33

标签: javascript node.js soundcloud

我仍在尝试在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会以某种方式工作(尽管我自己无法弄明白)。有谁知道我怎么能写这样的命令?

2 个答案:

答案 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。您获得的数据将类似于上面的示例。