我需要做什么才能处理mutagen接受的每种文件类型,包括.ogg、.apev2、.wma、flac、mp4和asf?(我排除了mp3,因为它有最多的文档)
如果有人知道如何做到这一点,并能提供一些伪代码以解释使用的技术,我会很感激。我想要提取的主要标签是文件的标题和艺术家,如果有可用的话还有专辑。
从哪里开始?
我需要做什么才能处理mutagen接受的每种文件类型,包括.ogg、.apev2、.wma、flac、mp4和asf?(我排除了mp3,因为它有最多的文档)
如果有人知道如何做到这一点,并能提供一些伪代码以解释使用的技术,我会很感激。我想要提取的主要标签是文件的标题和艺术家,如果有可用的话还有专辑。
从哪里开始?
>>> m = mutagen.File(path, easy=True)
>>> m['title']
[u'Sunshine Smile']
>>> m['artist']
[u'Adorable']
>>> m['album']
[u'Against Perfection']
>>> m = mutagen.File(path)
>>> for tag in ('TPE1', 'TPE2', u'©ART', 'Author', 'Artist', 'ARTIST',
... 'TRACK ARTIST', 'TRACKARTIST', 'TrackArtist', 'Track Artist'):
... try:
... artist = unicode(m[tag][0])
... break
... except KeyError:
... pass
更好的解决方案是根据标签类型进行切换,并仅尝试适合该格式的字段。
幸运的是,其他人已经为您完成了这项工作。您可以在Hydrogen Audio论坛和维基以及其他各种项目中找到人们收集有关不同播放器/标记器如何将值映射到每个格式的几乎所有信息,并且各种其他项目已将该信息转换为简单的标记映射表,您可以只需获取并借用您的代码,例如来自MusicBrainz的此表。 MusicBrainz Picard甚至具有Mutagen的包装器,可让您使用一组一致的元数据名称(在此处描述)与所有标记类型一起使用。