python - 如何计算 py-musicbrainz2 发行结果中的光盘编号?

标签 python musicbrainz

Python musicbrainz2 库的文档告诉我,这是我通过光盘 ID 搜索发行版的方式:

>>> import musicbrainz2.webservice as ws
>>> q = ws.Query()
>>> filter = ws.ReleaseFilter(discId='8jJklE258v6GofIqDIrE.c5ejBE-')
>>> results = q.getReleases(filter=filter)
>>> results[0].score
100
>>> results[0].release.title
u'Under the Pink'

但是对于双 CD,当我搜索两张 CD 的光盘 ID 时,我得到了相同的版本(应该如此)但不同的轨道。这也是应该的,但是我没有看到从查询结果中获取光盘编号的方法。它在某个地方吗?我认为它存在于 XML 中,作为“媒介”。

最佳答案

musicbrainz2包,尽管有它的名字,似乎只支持已弃用的 Web 服务架构版本 1,据我所知,该版本不提供媒体信息。

解决方案似乎是改用 musicbrainzngs包,支持 MusicBrainz NGS Web 服务(版本 2)。然后您只需执行以下操作(基于包源代码中提供的示例):

>>> from pprint import pprint
>>> import musicbrainzngs
>>> musicbrainzngs.set_useragent("application", "0.01", "http://example.com")
>>> pprint(musicbrainzngs.get_release_by_id("e94757ff-2655-4690-b369-4012beba6114",["media"]))
{'release': {'barcode': '9421021463277',
             'country': 'NZ',
             'date': '2008-07-04',
             'id': 'e94757ff-2655-4690-b369-4012beba6114',
             'medium-list': [{'format': 'CD',
                              'position': '1',
                              'track-list': []}],
             'quality': 'normal',
             'status': 'Official',
             'text-representation': {'language': 'eng', 'script': 'Latn'},
             'title': 'Affordable Pop Music'}}

瞧:medium-list 信息可用!

关于python - 如何计算 py-musicbrainz2 发行结果中的光盘编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12537544/

相关文章:

java - JavaEE 的 MusicBrainz 替代方案

python - 将列表的字符串表示形式转换为带引号和双引号的列表

python - 在 Python 中从 XML 打印数据以列表样式(表格)

java - 获取艺术家的唱片目录,就像 musicbrainz 上的概览页面一样

python - 按 Artist_id 过滤 browser_release_groups 的结果以获取唱片目录,python

javascript - 如何获取 Spotify 应用程序的专辑流派

mysql - SQL:从表中获取最早的日期,例如 [ date_year, date_month, date_day ]

python - 如何通过curl向couchDB中插入数百万文档?

python - 使用 np.matrix 数组的矩阵乘法和使用 np.arrays 的 dot()/tensor() 有什么区别?

python - Virtualenv 和源代码版本控制