Ferramenta de linha de comando para listar tags ID3 no Linux

23

Eu quero escrever um script que manipule tags ID3 de arquivos mp3. Eu preciso de uma ferramenta que leia as tags e as produza em um formato em um formato legível por máquina. Por exemplo, se eu quiser que ele gere apenas o título, então ele exibe o título, nada mais. Eu tentei ferramentas diferentes como id3 ou eyeD3 , mas elas só podem ser usadas para escrever tags ou para imprimi-las em um formato legível por humanos. É claro que eu poderia filtrar essa saída através de sed , mas parece desnecessariamente complicado para mim.

    
por petersohn 05.04.2010 / 12:04

3 respostas

29

Você pode usar o comando exiftool do pacote libimage-exiftool-perl , que permite ler (e gravar) metadados de arquivos multimídia, incluindo mp3s. Ele pode produzir em uma variedade de formatos, incluindo key-value, json, xml e formatos definidos pelo usuário. Você pode escolher listar apenas tags 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)"
}]
    
por 05.04.2010 / 14:28
9

id3info em id3lib exibe as tags ID3 em um formato que é simplesmente simples de analisar em máquina.

    
por 05.04.2010 / 12:21
4

Eu procuraria na biblioteca de tags do Mutagen para Python, que inclui uma ferramenta básica de linha de comando, mid3v2 . Enquanto a saída de mid3v2 é primariamente legível, a opção --list-raw pode ser adequada por si só:

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

Note que esta ferramenta apenas lista ID3 tags , não atributos adicionais do arquivo MP3 como exiftool . Mas se você quiser apenas uma tag em particular, um simples grep para o tagname irá pegar isso para você:

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

Se o mid3v2 não for suficiente para você sozinho, e você se sentir confortável com o Python, poderá criar scripts para sua própria ferramenta para interagir com a biblioteca Mutagen e ler ou manipular as tags diretamente. / p>     

por 05.04.2010 / 16:41