使用诱变剂处理所有可接受的文件类型

2024-06-16 10:27:58 发布

您现在位置:Python中文网/ 问答频道 /正文

要处理诱变剂、.ogg、.apev2、.wma、flac、mp4和asf接受的每种文件类型,我需要做些什么?(我排除了mp3,因为它有最多的文档)

如果有人知道如何做到这一点,我会很感激的,可以提供一些伪代码来解释所使用的技术。我想提取的主要标签是标题,和艺术家的文件,相册如果可用。在

从哪里开始?在


Tags: 代码文档标题标签mp3技术文件类型mp4
1条回答
网友
1楼 · 发布于 2024-06-16 10:27:58

每种标记类型都有不同的字段名称,而且它们并不都能完全映射。在

如果你只是想要一些最重要的领域,诱变剂有“简单”包装ID3v2和MP4/ITMF。例如,您可以这样做:

>>> m = mutagen.File(path, easy=True)
>>> m['title']
[u'Sunshine Smile']
>>> m['artist']
[u'Adorable']
>>> m['album']
[u'Against Perfection']

但这只适用于这两种文件格式。Vorbis、Metaflac、APEv2和WMT标记基本上是自由格式的key:value或key:[list of values]映射。Vorbis确实有一组recommended公共注释字段的名称,WM有一组由WMP GUI和.netapi映射的字段,但是Metaflac和APEv2甚至没有。事实上,在Metaflac注释中可以看到来自旧ID3v1字段名的“Artist”和来自Vorbis的“Artist”。在

即使是对于ID3v2,映射也不是完美的iTunes将“TPE1”帧显示为“Artist”并将“TPE2”显示为“Album Artist”,而Foobar2000将TPE2显示为“Artist”和专辑艺术家作为“专辑艺术家”。在

所以,要正确地做这件事,你必须看一下iTMFVorbiscommentID3v2(或参见Wikipedia)和{a6},然后查看你拥有的文件,并添加一些启发来决定如何从你的文件中得到你想要的。在

例如,您可以尝试如下操作:

^{pr2}$

一个更好的解决方案是打开标记类型,只尝试格式的相应字段。在

幸运的是,其他人为你做了这项工作。您可以在Hydrogen Audio论坛和wiki上找到人们收集到的关于不同播放器/标记器如何将值映射到每种格式的几乎所有信息,其他各种项目都将这些信息转换为简单的标记映射表,您只需从MusicBrainz获取并借用这些表即可。MusicBrainz Picard甚至还有一个诱变剂包装器,它允许您对所有标记类型使用一组一致的元数据名称(即here)集。在

相关问题 更多 >