Answers:
您可以使用软件包中的exiftool
命令,该命令libimage-exiftool-perl
使您可以从多媒体文件(包括mp3)读取(和写入)元数据。它可以输出为多种格式,包括键值,json,xml和用户定义的格式。您可以选择仅列出指定的标签。
% exiftool -json 09\ -\ \(Tom\ Waits\)\ -\ Walk\ Away.mp3
[{
"SourceFile": "09 - (Tom Waits) - Walk Away.mp3",
"ExifToolVersion": 7.82,
"FileName": "09 - (Tom Waits) - Walk Away.mp3",
"Directory": ".",
"FileSize": "2.5 MB",
"FileModifyDate": "2008:07:12 13:58:52+01:00",
"FileType": "MP3",
"MIMEType": "audio/mpeg",
"MPEGAudioVersion": 1,
"AudioLayer": 3,
"AudioBitrate": 128000,
"SampleRate": 44100,
"ChannelMode": "Stereo",
"MSStereo": "Off",
"IntensityStereo": "Off",
"Emphasis": "None",
"ID3Size": 1678,
"Title": "Walk Away",
"Album": "Dead Man Walking",
"Genre": "OST",
"Track": 9,
"Artist": "Tom Waits",
"Year": "",
"Comment": "",
"Duration": "02:42 (approx)"
}]
我将研究用于Python 的Mutagen标记库,其中包括一个基本的可编写脚本的命令行工具mid3v2。尽管mid3v2的输出主要是人类可读的,但该--list-raw
选项本身可能是合适的:
$ mid3v2 --list-raw 09_Walk\ Away.mp3
Raw IDv2 tag info for 09_Walk Away.mp3:
TDRC(encoding=3, text=[u'1996'])
TIT2(encoding=3, text=[u'Walk Away'])
TRCK(encoding=3, text=[u'9'])
TPE1(encoding=3, text=[u'Tom Waits'])
TALB(encoding=3, text=[u'Dead Man Walking'])
TCON(encoding=3, text=[u'Soundtrack'])
请注意,此工具仅列出ID3 标签,而不列出MP3文件的其他属性,例如exiftool。但是,如果您只想要一个特定的标签,则只需一个简单的grep即可作为您的标签名:
$ mid3v2 --list-raw 09_Walk\ Away.mp3 | grep TIT2
TIT2(encoding=3, text=[u'Walk Away'])
如果mid3v2本身还不能满足您的需求,并且您对Python感到满意,则可以编写自己的工具来与Mutagen库连接并直接读取或操作标签。