Befehlszeilentool zum Auflisten von ID3-Tags unter Linux

24

Ich möchte ein Skript schreiben, das ID3-Tags von MP3-Dateien manipuliert. Ich benötige ein Tool, das die Tags liest und in einem maschinenlesbaren Format ausgibt. Wenn ich zum Beispiel möchte, dass es nur den Titel ausgibt, gibt es den Titel aus, sonst nichts. Ich habe verschiedene Tools wie id3oder ausprobiert eyeD3, aber sie können nur zum Schreiben von Tags oder zum Ausgeben in einem für Menschen lesbaren Format verwendet werden. Natürlich könnte ich diese Ausgabe nur filtern sed, aber es erscheint mir unnötig kompliziert.

petersohn
quelle

Antworten:

30

Sie können den exiftoolBefehl aus dem libimage-exiftool-perlPaket verwenden, mit dem Sie Metadaten aus Multimediadateien, einschließlich MP3s, lesen (und schreiben) können. Es kann in einer Vielzahl von Formaten ausgegeben werden, einschließlich Schlüsselwert-, JSON-, XML- und benutzerdefinierten Formaten. Sie können festlegen, dass nur bestimmte Tags aufgelistet werden.

% 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
quelle
+1 "sudo port install p5.16-image-exiftool" - bringt Sie mit MacPorts auf den Mac ... Nur "exiftool-5.16 / Volumes / MMED / music / Esperanza \ Spalding / Esperanza / 02. \ I \ Know \ You \ Know.mp3 "und Sie bekommen alle Metadaten ausgespuckt! Vielen Dank!
Mimoralea
+1 Ich hatte gerade das gleiche Bedürfnis, aber für FLAC-Audio. Lief wie am Schnürchen. Schade, der Programmname gibt keinen Hinweis auf den vollen Umfang seiner Möglichkeiten ...
9

id3infoin id3lib gibt die ID3-Tags in einem Format aus, das maschinell sehr einfach zu analysieren ist.

Ignacio Vazquez-Abrams
quelle
1
Die Manpage sagt jedoch Folgendes: Es werden nur die ID3-Versionen 1.0 und 1.1 unterstützt.
Calimo
5

Ich würde in die Mutagen-Tagging-Bibliothek für Python schauen , die ein grundlegendes skriptfähiges Befehlszeilentool, mid3v2 , enthält . Während mid3v2 ‚s Ausgabe in erster Linie für Menschen lesbaren ist, das --list-rawkann Option für sich geeignet sein:

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

Beachten Sie, dass dieses Tool nur ID3- Tags auflistet , keine zusätzlichen Attribute der MP3-Datei wie exiftool . Aber wenn Sie nur einen bestimmten Tag, ein einfacher wollten grep für den Tag - Namen wird das für Sie greift:

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

Wenn Ihnen mid3v2 alleine nicht ausreicht und Sie mit Python vertraut sind, können Sie Ihr eigenes Tool für die Schnittstelle zur Mutagen-Bibliothek erstellen und die Tags direkt lesen oder bearbeiten.

Quacksalber
quelle