Ferramenta de linha de comando para listar tags ID3 no Linux

24

Quero escrever um script que manipule tags ID3 de arquivos mp3. Preciso de uma ferramenta que leia as tags e as produza em um formato legível por máquina. Por exemplo, se eu quiser que ele produza apenas o título, ele produzirá o título, nada mais. Tentei ferramentas diferentes como id3ou eyeD3, mas elas só podem ser usadas para escrever tags ou produzi-las em um formato legível por humanos. É claro que eu poderia filtrar essa saída sed, mas parece desnecessariamente complicado para mim.

petersohn
fonte

Respostas:

30

Você pode usar o exiftoolcomando do libimage-exiftool-perlpacote, que permite ler (e escrever) metadados de arquivos multimídia, incluindo mp3s. Ele pode produzir em uma variedade de formatos, incluindo formatos-chave, json, xml e formatos definidos pelo usuário. Você pode optar por listar apenas as 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)"
}]
Nagul
fonte
+1 "sudo port install p5.16-image-exiftool" - leva você a um Mac com MacPorts ... Apenas "exiftool-5.16 / Volumes / MMED / music / Esperanza \ Spalding / Esperanza / 02. \ I \ Know \ You \ Know.mp3 "e você obtém todos os metadados espalhados! Obrigado!
mimoralea
+1 Acabei de ter a mesma necessidade, mas com áudio FLAC. Funcionou como um encanto. Pena que o nome do programa não dá nenhuma dica como para a extensão de suas possibilidades ...
9

id3infono id3lib gera as tags ID3 em um formato simples de analisar pela máquina.

Ignacio Vazquez-Abrams
fonte
1
A página de manual diz o seguinte: Apenas as versões 1.0 e 1.1 do ID3 são suportadas.
Calimo 11/01
5

Eu procuraria na biblioteca de tags Mutagen para Python, que inclui uma ferramenta básica de linha de comando com script, mid3v2 . Enquanto a saída do mid3v2 é principalmente legível por humanos, a --list-rawopção 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'])

Observe que esta ferramenta lista apenas as tags ID3 , não atributos adicionais do arquivo MP3, como exiftool . Mas se você quisesse apenas uma tag específica, um grep simples para o tagname 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ê, por si só, e você se sentir confortável com o Python, você pode criar um script de sua própria ferramenta para interagir com a biblioteca Mutagen e ler ou manipular as tags diretamente.

charlatão quixote
fonte