gpt4 book ai didi

python - 从 MusicBrainz 获取轨道列表

转载 作者:行者123 更新时间:2023-11-30 23:35:17 25 4
gpt4 key购买 nike

我正在尝试学习Python,并且认为我可以通过编写我实际使用的东西来学习。所以我正在尝试编写一个小脚本来翻录一些音乐 CD。

我正在使用 musicbrainzngs 包。我想要获得 CD 的轨道列表。我当前的代码:

#! /usr/bin/env python

import argparse
import musicbrainzngs
import discid

musicbrainzngs.set_useragent("Audacious", "0.1", "https://github.com/jonnybarnes/audacious")

parser = argparse.ArgumentParser()
parser.add_argument("--cdrom", help="provide the source of the cd", default="/dev/cdrom")
args = parser.parse_args()

device = args.cdrom

print("device: %s" % device)
disc = discid.read(device)
print("id: %s" % disc.id)

try:
result = musicbrainzngs.get_releases_by_discid(disc.id, includes=["artists"])
except musicbrainzngs.ResponseError:
print("disc not found or bad response")
else:
if result.get("disc"):
print("artist:\t%s" %
result["disc"]["release-list"][0]["artist-credit-phrase"])
print("title:\t%s" % result["disc"]["release-list"][0]["title"])
elif result.get("cdstub"):
print("artist:\t" % result["cdstub"]["artist"])
print("title:\t" % result["cdstub"]["title"])

如何获取轨道列表,查看返回的完整结果,有一个 track-list 属性,但无论我尝试什么 CD,结果始终为空

最佳答案

通过discid获取版本is a lookup及其“支持的‘inc=’参数与发布的查找请求相同”,列于 earlier on that page 。要获得非空轨道列表,您只需添加“录音”即可:

result = musicbrainzngs.get_releases_by_discid(disc.id, includes=["artists", "recordings"])

关于python - 从 MusicBrainz 获取轨道列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com