Інструмент командного рядка для переліку тегів 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 / Томи / MMED / музика / Esperanza \ Spalding / Esperanza / 02. \ I \ Know \ You \ Know.mp3 ", і ви отримаєте всі метадані виплюнуті! Спасибі!
mimoralea

+1 Я просто мав таку саму потребу, але для аудіо FLAC. Працював як шарм. Шкода, що назва програми не дає жодних натяків на всю її можливості ...


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 . Але якщо ви хотіли лише конкретного тегу, для вас це захопить проста помилка для імені тега :

$ 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.