“查询spotify元数据服务的库

spotimeta的Python项目详细描述


简介

spotimeta是一个从spotify的元数据api获取数据的简单库。 可用功能包括搜索艺术家、相册和曲目 基于spotifyuri查找相同的内容。数据返回为 简单的python字典。

注意:

本产品使用Spotify API,但未经认可、认证或其他 Spotify以任何方式批准。Spotify是 Spotify集团。

有关元数据API的详细信息,请参见
http://developer.spotify.com/en/metadata-api/overview/

示例

>>> import spotimeta

搜索曲目

>>> search = spotimeta.search_track("Trip back to childhood")
>>> search["total_results"]
1

打印该曲目的艺术家

>>> artist = search["result"][0]["artist"]
>>> artist["name"]
u'St-Petersburg Ska-Jazz Review'

查找有关该艺术家的详细信息:

>>> lookup = spotimeta.lookup(artist["href"], detail=1)
>>> for album in lookup["result"]["albums"]:
...     album["name"]
u'Too Good To Be True'
u'Too Good To Be True'
u'Live At The Red Club'

还可以使用spotify url查找元数据:

>>> track = spotimeta.lookup("http://open.spotify.com/track/3Z8cX6y0SeJIsI3yxoaQ8K")
>>> print track["result"]["artist"]["name"], "-", track["result"]["name"]
Kings Of Leon - Closer

对于除simples用例之外的任何情况,都应该使用缓存。 通过创建元数据实例并将其传递给 映射类型的东西。例如字典:

>>> metacache = {}
>>> metadata = spotimeta.Metadata(cache=metacache)

元数据实例与模块本身具有完全相同的方法。 只要存在缓存对象集,缓存就会自动发生。

>>> data = metadata.lookup("spotify:track:3kofFW93aMr28qx1BKps7A")
>>> data = metadata.lookup("spotify:track:3kofFW93aMr28qx1BKps7A")

这只会引起一个请求。数据被缓存了很长时间 正如第一个请求的到期头所说的那样。

待办事项

    Sphinxify博士
  • 用于搜索的测试用例,而不仅仅是搜索解析器
  • 处理所有修复程序

更改日志

请参见更改日志文件

联系人

作者是rune halvorsen<;runefh@gmail.com>;。项目位于 http://bitbucket.org/runeh/spotimeta。如果你发现了漏洞,或者有 请求,请在项目站点问题跟踪程序中报告它们。修补程序 非常欢迎。

此外,请参见authors文件以获取参与者的完整列表

许可证

此软件是根据New BSD License授权的。请参阅LICENCE 文件位于顶级分发目录中,以获取完整的许可证文本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java游戏!框架伪造应用程序它实际上做什么?   java如何在JavaFx中显示表视图中的即时更改?   对象类的equals()方法的java重载   xpages介绍如何部署java。IBM Notes中的策略更改   java如何访问侦听器中的另一个视图?   java getDefaultDisplay()的替代方法是什么   java opencv匹配模板   java Android Firebase写入数据时的常量超时   在Java中,如何将包含大量空格的数字字符串转换为一系列Int变量。   带有GUI的swing Java模拟无法运行模拟   java NoSuchElementException在特定的Web端上使用无头铬和硒   java对文件进行迭代,即使文件在目录中也会出现“未找到文件”异常。你能告诉我为什么吗?谢谢   递归Java 8,匿名递归嵌套方法   java为什么我看到枚举常量的字段值会被序列化/反序列化?在哪种情况下,枚举中哪些内容没有序列化?   java在运行sonar scanner和Spotbugs规则时出错,用于单片项目?   java如何检查硬件键盘是否可用?(黑莓)   tile游戏动作侦听器循环中的java错误   sockets Java线程池与高请求场景中的新线程   java如何使用Hibernate注释在联接表上创建索引?