Инструмент командной строки для списка ID3 отмечает в соответствии с Linux

Я хочу записать сценарий, который управляет тегами ID3 mp3 файлов. Мне нужен инструмент, который читает теги и производит его в формате в машиночитаемом формате. Например, если я хочу, чтобы это произвело только заголовок, затем это производит заголовок, ничто иное. Я попробовал различные инструменты как id3 или eyeD3, но они могут только использоваться, чтобы записать теги или произвести их в человекочитаемом формате. Конечно, я мог просто отфильтровать тот вывод через sed, но это кажется излишне сложным мне.

24
задан 05.04.2010, 13:04

3 ответа

Вы могли использовать 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)"
}]
30
ответ дан 07.12.2019, 09:42

id3info в id3lib выводах ID3 отмечает на формате, это очень просто к машине синтаксическому анализу.

9
ответ дан 07.12.2019, 09:42

Я изучил бы библиотеку меток Мутагена для 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 и считать или управлять тегами непосредственно.

5
ответ дан 07.12.2019, 09:42

Теги

Похожие вопросы