lastFM api是否提供youtube链接?

时间:2017-06-23 11:45:02

标签: api last.fm

我正在制作一个列出热门歌曲的Android应用程序。我通过LastFM API获取歌曲详细信息。我使用的API方法是http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=YOUR_API_KEY&artist=cher&track=believe&format=json

但是,这并没有像LastFM在其网站上所做的那样为我提供YouTube链接。有没有办法让我复制这个功能?我应该使用另一种我不知道的API方法,还是应该完全依赖其他方法?

我进行了一些搜索,但我遇到http://downloadmarkt.be/lastfm-musicengine/example-search.php在搜索结果中,还会显示YouTube链接。开发人员如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

last.fm API中没有指向YouTube视频的直接链接。

您发布的网站直接在youtube上而不是在last.fm上搜索链接(请参见该脚本文件底部的javascript)。

我找到的最佳解决方案:您在last.fm API响应中确实获得了页面歌曲的网址,

<url>
   https://www.last.fm/music/Anathema/_/Fragile+Dreams
</url>

该页面包含youtube网址。如果打开html页面,则会在其中看到类似的内容

data-youtube-id="CsHYSvlsDWw"
data-youtube-url="https://www.youtube.com/watch?v=CsHYSvlsDWw"

使用您喜欢的方法来解析网页以获取该信息,

$ curl -sL https://www.last.fm/music/Anathema/_/Fragile+Dreams |
  hxnormalize -x 2> /dev/null |
  hxselect -s '\n' -c 'a::attr(data-youtube-id) |
  uniq
$ CsHYSvlsDWw

,即,您得到页面,摆脱了所有不一致之处,然后选择了data-youtube-id。您需要在匹配项之间添加新行,因为页面上似乎有两个这样的条目。最后一步,您将获得两个相似结果之一(然后是uniq部分)。

黑客很开心。