Я хочу записать сценарий, который управляет тегами ID3 mp3 файлов. Мне нужен инструмент, который читает теги и производит его в формате в машиночитаемом формате. Например, если я хочу, чтобы это произвело только заголовок, затем это производит заголовок, ничто иное. Я попробовал различные инструменты как id3
или eyeD3
, но они могут только использоваться, чтобы записать теги или произвести их в человекочитаемом формате. Конечно, я мог просто отфильтровать тот вывод через sed
, но это кажется излишне сложным мне.
Вы могли использовать exiftool
команда от libimage-exiftool-perl
пакет, который позволяет Вам считать (и запись) метаданные из мультимедийных файлов, включая mp3s. Это может произвести ко множеству форматов включая значение ключа, 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)"
}]
id3info
в id3lib выводах ID3 отмечает на формате, это очень просто к машине синтаксическому анализу.
Я изучил бы библиотеку меток Мутагена для Python, который включает основной scriptable инструмент командной строки, 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 для tagname захватит это для Вас:
$ mid3v2 --list-raw 09_Walk\ Away.mp3 | grep TIT2
TIT2(encoding=3, text=[u'Walk Away'])
Если mid3v2 не достаточно для Вас отдельно, и Вы довольны Python, Вы могли написать сценарий своего собственного инструмента, чтобы взаимодействовать через интерфейс с библиотекой Mutagen и считать или управлять тегами непосредственно.