Herramienta de línea de comando para enumerar etiquetas ID3 en Linux

24

Quiero escribir un script que manipule etiquetas ID3 de archivos mp3. Necesito una herramienta que lea las etiquetas y las muestre en un formato legible por máquina. Por ejemplo, si quiero que solo muestre el título, entonces muestra el título, nada más. Probé diferentes herramientas como id3o eyeD3, pero solo se pueden usar para escribir etiquetas o para generarlas en un formato legible para humanos. Por supuesto, podría filtrar esa salida sed, pero me parece innecesariamente complicado.

Petersohn
fuente

Respuestas:

30

Puede usar el exiftoolcomando del libimage-exiftool-perlpaquete que le permite leer (y escribir) metadatos de archivos multimedia, incluidos mp3. Puede emitir a una variedad de formatos, incluidos los valores clave, json, xml y formatos definidos por el usuario. Puede elegir enumerar solo las etiquetas especificadas.

% 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)"
}]
nagul
fuente
+1 "sudo port install p5.16-image-exiftool" - lo pone en marcha en una Mac con MacPorts ... Simplemente "exiftool-5.16 / Volumes / MMED / music / Esperanza \ Spalding / Esperanza / 02. \ I \ Know \ You \ Know.mp3 "y obtienes todos los metadatos que escupe! ¡Gracias!
mimoralea
+1 Acabo de tener la misma necesidad pero para audio FLAC. Trabajado como un encanto. Lástima que el nombre del programa no da pistas sobre el alcance de sus posibilidades ...
9

id3infoen id3lib genera las etiquetas ID3 en un formato que es muy simple de analizar por máquina.

Ignacio Vazquez-Abrams
fuente
1
Sin embargo, la página de manual dice lo siguiente: solo se admiten las versiones ID3 1.0 y 1.1.
Calimo
5

Buscaría en la biblioteca de etiquetado de Mutagen para Python, que incluye una herramienta básica de línea de comandos programable, mid3v2 . Si bien la salida de mid3v2 es principalmente legible por humanos, la --list-rawopción puede ser adecuada por sí misma:

$ 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'])

Tenga en cuenta que esta herramienta solo enumera etiquetas ID3 , no atributos adicionales del archivo MP3 como exiftool . Pero si solo desea una etiqueta en particular, un simple grep para el nombre de la etiqueta lo tomará por usted:

$ mid3v2 --list-raw 09_Walk\ Away.mp3 | grep TIT2
TIT2(encoding=3, text=[u'Walk Away'])

Si mid3v2 no es suficiente para usted por sí solo, y usted se siente cómodo con Python, puede crear su propia herramienta para interactuar con la biblioteca Mutagen y leer o manipular las etiquetas directamente.

quijote curandero
fuente