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
信息可用!