我正在制作一个android应用程序,其中列出了流行歌曲。我正在通过LastFM接口获取歌曲的详细信息。我使用的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链接也会显示出来。开发人员是如何做到这一点的?
发布于 2019-05-22 03:17:32
在last.fm应用程序接口中没有直接链接到youtube视频。
您发布的网站直接在youtube上搜索链接,而不是在last.fm上搜索(参见脚本文件底部的javascript )。
我找到的最好的解决方案是:在last.fm API响应中得到一个页面歌曲url,
<url>
https://www.last.fm/music/Anathema/_/Fragile+Dreams
</url>
该页面包含youtube的url。如果你打开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
。您需要在匹配项之间添加新行,因为页面上似乎有两个这样的条目。最后一步,从两个相似的结果中选择一个(然后是end的uniq部分)。
祝你黑客快乐。
https://stackoverflow.com/questions/44720682
复制相似问题