- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我第一次使用 Python 和外部 API 的经历;我试图从 MP3/MP4 文件中获取艺术家姓名,但没有成功。在第一种情况(MP3)中,我收到以下错误:
HeaderNotFoundError: can't sync to an MPEG frame
在后者中,我的代码不打印任何内容。
这些是我处理文件的TEST函数:
1) MP3
from mutagen.mp3 import MP3
def mp3_reader(path):
track = MP3(path)
try:
print track['artist']
except SystemError:
print ("SYSTEM ERROR!")
2) MP4
from mutagen.mp4 import MP4
def mp4_reader(path):
track = MP4(path)
try:
print track.tags['artist']
except SystemError:
print ("SYSTEM ERROR!")
另一个与Python相关的问题:如何有效地使用try-catch表达式?我知道那些不起作用...
非常感谢!!
编辑代码:
def mp3_reader(path):
track = MP3(path)
try:
print ("Trying to print MP3 infos.")
track.pprint()
except Exception as err:
print (err)
处理 MP3 后的应用程序输出:
{'TMED': TMED(encoding=1, text=[u'CD']), u'TXXX:SCRIPT': TXXX(encoding=1, desc=u'SCRIPT', text=[u'Latn']), u'TXXX:MusicBrainz Album Type': TXXX(encoding=1, desc=u'MusicBrainz Album Type', text=[u'album']), u'TXXX:MusicBrainz Album Artist Id': TXXX(encoding=1, desc=u'MusicBrainz Album Artist Id', text=[u'122d63fc-8671-43e4-9752-34e846d62a9c']), u'TXXX:MusicBrainz Artist Id': TXXX(encoding=1, desc=u'MusicBrainz Artist Id', text=[u'122d63fc-8671-43e4-9752-34e846d62a9c']), u'TXXX:BARCODE': TXXX(encoding=1, desc=u'BARCODE', text=[u'5099964783024']), 'TDOR': TDOR(encoding=0, text=[u'2010']), 'TDRC': TDRC(encoding=0, text=[u'2010-08-27']), 'TSO2': TSO2(encoding=1, text=[u'Perry, Katy']), 'TPE2': TPE2(encoding=1, text=[u'Katy Perry']), 'TPE1': TPE1(encoding=1, text=[u'Katy Perry']), 'TALB': TALB(encoding=1, text=[u'Teenage Dream']), u"COMM:iTunNORM:'eng'": COMM(encoding=0, lang='eng', desc=u'iTunNORM', text=[u' 000016A6 00001768 0000BFFB 0000BE99 00032378 00032378 00009227 000093AF 0001FCAC 00034AC1']), 'TCMP': TCMP(encoding=1, text=[u'1']), u'TXXX:CATALOGNUMBER': TXXX(encoding=1, desc=u'CATALOGNUMBER', text=[u'509996 47830 2 4']), u'UFID:http://musicbrainz.org': UFID(owner=u'http://musicbrainz.org', data='8cf81f4a-05fd-4688-bb8c-eb59df2026a0'), u'TXXX:MusicBrainz Release Group Id': TXXX(encoding=1, desc=u'MusicBrainz Release Group Id', text=[u'e6f683c9-fc85-412c-a352-d6e411fc2603']), 'TSOP': TSOP(encoding=1, text=[u'Perry, Katy']), 'TRCK': TRCK(encoding=0, text=[u'1/12']), u"COMM:iTunPGAP:'eng'": COMM(encoding=0, lang='eng', desc=u'iTunPGAP', text=[u'0/']), 'TIT2': TIT2(encoding=1, text=[u'Teenage Dream']), 'TSRC': TSRC(encoding=1, text=[u'USCA21001255']), 'TCON': TCON(encoding=0, text=[u'Pop']), 'TENC': TENC(encoding=0, text=[u'iTunes 10.0.0.68']), u'TXXX:MusicBrainz Album Id': TXXX(encoding=1, desc=u'MusicBrainz Album Id', text=[u'8551cd49-7da6-3139-809d-e48f6f3453e8']), 'TPUB': TPUB(encoding=1, text=[u'Capitol Records']), 'TPOS': TPOS(encoding=0, text=[u'1/1']), u"COMM:iTunSMPB:'eng'": COMM(encoding=0, lang='eng', desc=u'iTunSMPB', text=[u' 00000000 00000210 00000B41 00000000009943AF 00000000 003792F1 00000000 00000000 00000000 00000000 00000000 00000000']), u'TXXX:MusicBrainz Album Release Country': TXXX(encoding=1, desc=u'MusicBrainz Album Release Country', text=[u'DE']), u'TXXX:MusicBrainz Album Status': TXXX(encoding=1, desc=u'MusicBrainz Album Status', text=[u'official'])}
最佳答案
那么,对于您的 MP3 文件,您是否使用实际的 MP3 作为路径
?
看来您没有,或者至少缺少 id3 标签 header 。但更有可能这不是 MP3 文件,或者它不会在异常中告诉您无法同步到 MPEG 帧
。
对于你的第二个问题:
how do I effectively use the try-catch expressions? I know that those do not work...
它们确实不起作用,因为您捕获的是SystemError
,这不是诱变剂引发的。如果您想捕获任何异常,您应该使用:
except Exception as err:
print(err)
如果您只想获取与标签相关的错误:
except HeaderNotFoundError as err:
print(err)
HTH
关于Python (Mutagen) - 无法从 MP4/MP3 文件中获取艺术家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093456/
我尝试用 mutagen 编辑 mp3 标签。现在我可以设置标题等标签了。但是 APIC 仍然不起作用。 我的代码: from mutagen.mp3 import MP3 from mutagen.
我需要做什么才能处理 mutagen、.ogg、.apev2、.wma、flac、mp4 和 asf 接受的每种文件类型? (我排除了 mp3,因为它有最多的文档) 如果知道这是如何完成的人可以提供一
我希望能够使用mutagen将专辑封面添加到文件中,但是当我将其添加为文件时,它会返回: File "D:\Download\pandora\renamingMETAEFF.pyw", line 71
我想使用函数 mutagen.mp4.MP4Cover(data, imageformat) ( direct link to documentation ),但是文档只指定了 imageformat
这是我第一次使用 Python 和外部 API 的经历;我试图从 MP3/MP4 文件中获取艺术家姓名,但没有成功。在第一种情况(MP3)中,我收到以下错误: HeaderNotFoundError:
在 Windows 上,当您查看 mp4 文件的“详细信息”选项卡时,有一个“家长评级”字段,该字段似乎是自由文本。我正在尝试将其设置为“PG”、“R”等,用于我的电影。 诱变Python模块有一个“
当我试图在 MP3 中嵌入专辑封面时,诱变剂将 ID3 标签更新为 2.4 版——我不想要,因为在 ID3v2.4 中,我的手机(运行 Windows Phone 8)和我的电脑不能无法识别标签。 显
我正在尝试使用 Mutagen用于通过以下方式更改一堆 MP3 文件的 ID3(版本 2.3)封面艺术: from mutagen.mp3 import MP3 from mutagen.id3 im
我已经在我的 Windows 7 机器上使用 Python 2.7 的 mutagen 包(版本 - mutagen-1.20)有一段时间了,不幸的是它今天早些时候停止工作了。 我重新安装了该软件包,
我想清除 MP3 文件中的所有元数据,并且我已经在我的项目中使用了 Mutagen。有没有一种方法可以简单地清除文件中的所有元数据? 最佳答案 看起来你可以使用 MP3 对象的 delete 方法:
我正在使用 mutagen 读取 mojibaked ID3 标签。我的目标是在学习编码和 Python 对其处理的同时修复 mojibake。 我正在处理的文件有一个 ID3v2 标签,我正在查看它
我正在改进一个开源音乐数据库,该数据库从我的收藏中读取歌曲并将它们存储到 SQLite 数据库中。反过来,我能够利用数据库查找重复项,对我的收藏运行查询,并且(如果我愿意的话)在该收藏中找到重复的
我正在尝试将图片分配给歌曲,并且我有一些可以在 Mac 上运行的代码,但不能在 PC 上运行。 from mutagen.easyid3 import EasyID3 from mutagen.id3
我有一个大型音乐库,我刚刚花了大约 30 个小时来整理它。对于某些 MP3 文件,我将封面图像嵌入为类型 0(其他),我想将其更改为类型 3(封面)。有没有办法在 Python 中执行此操作,特别是在
我在 OSX 上尝试使用 mutagen 同步 beta => alpha 时遇到问题 当在 beta(Docker 容器)上创建文件时,它不会同步到 alpha(主机)中,从而导致错误: publi
因此,我正在使用 mutagen 来获取有关我网站上上传的音乐的信息。我尝试了以下代码: import mutagen mutagen.File(filePath) 它显示以下消息: {'TXXX:c
下面的代码似乎没有更新 mp3 文件的插图。代码:- from mutagen.id3 import ID3, APIC audio = ID3(musicFilename) with open(co
有没有办法使用 Mutagen 库在 Python 中确定 MP3 文件的编码位深度(即 8、16、24、32)? 最佳答案 MP3 编码过程完成的转换完全放弃了“位深度”的概念。仅当源音频的位深度存
根据其他 StackOverflow 问题和 mutagen 文档的多项建议,我能够想出代码来获取和设置 MP3 和 MP4 文件中的每个 ID3 标签。我遇到的问题是为 M4B 文件设置封面。 我已
ID3 .这是 Python 3 API,我不确定如何嵌入图像,到目前为止我在更改标签的地方有这个, def addMetaData(url, title, artist, album, track)
我是一名优秀的程序员,十分优秀!