通过给定输入文本的名称查找歌曲是否存在

时间:2016-05-18 23:01:06

标签: python python-2.7 spotify

我正在开发一个应用程序,允许用户输入一些文本作为歌曲名称和另一个艺术家姓名输入,然后检查是否存在与输入参数匹配的歌曲。我目前正在使用Spotify的API,通过使用此端点查询歌曲“Get In The Game”:

| {R11 R21 R31 0} {R12 R22 R32 0} {R13 R23 R33 0} {Tx Ty Tz 1} |

但是,Spotify的API不允许同时使用歌曲名称和艺术家名称过滤结果。因此,上述查询会返回与https://api.spotify.com/v1/search?q=get%20in%20the%20game&type=track歌曲标题匹配的所有歌曲的列表。

如何根据歌曲和艺术家名称查找歌曲是否存在?

1 个答案:

答案 0 :(得分:0)

您可以使用last.fm API,特别是track.getInfo Endpoint。这样,您就可以同时指定artisttrack

成功之后(你也可以请求json响应)你会得到类似的东西:

<lfm status="ok">
    <track>
        <name>Shine on You Crazy Diamond</name>
        <mbid>cb20321d-ecda-4fc1-a32a-0439a096a1bc</mbid>
        <url>
            http://www.last.fm/music/Pink+Floyd/_/Shine+on+You+Crazy+Diamond
        </url>
        <duration>763000</duration>
        <streamable fulltrack="0">0</streamable>
        <listeners>256400</listeners>
        <playcount>1511578</playcount>
        <artist>
            <name>Pink Floyd</name>
            <mbid>83d91898-7763-47d7-b03b-b92132375c47</mbid>
            <url>http://www.last.fm/music/Pink+Floyd</url>
        </artist>
        ...
    </track>
</lfm>

找不到歌曲时:

<lfm status="failed">
    <error code="6">Track not found</error>
</lfm>