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


24

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

Ответы:


30

Вы можете использовать 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)"
}]

+1 "sudo port install p5.16-image-exiftool" - отправляет вас в Mac с MacPorts ... Просто "exiftool-5.16 / Volumes / MMED / музыка / Esperanza \ Spalding / Esperanza / 02. \ I \ Know \ You \ Know.mp3 ", и вы получите все метаданные! Благодарность!
Mimoralea

+1 У меня только что была такая же потребность, но для аудио FLAC. Работал как шарм. Жаль, что название программы не дает никаких намеков на полную степень ее возможностей ...

9

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


1
Хотя на странице man сказано следующее: Поддерживаются только версии ID3 1.0 и 1.1.
Calimo

5

Я хотел бы взглянуть на библиотеку тегов Mutagen для Python, которая включает в себя базовый инструмент командной строки с поддержкой сценариев , 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 и напрямую читать или манипулировать тегами.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.