Gibt es ein gutes Befehlszeilen-ID3-Tool für OS X?


45

Kennt jemand ein Befehlszeilentool * ID3 mit Unterstützung für ID3v2 , mit dem man mit vertretbarem Aufwand an Mac OS X arbeiten kann? Es sollte sowohl das Lesen als auch das Schreiben von Tags unterstützen.

( * Ich möchte es zB von einigen Python-Skripten aus aufrufen können, damit ein GUI-Tool nicht funktioniert.)

Das Hilfsprogramm id3tool ist ansonsten gut, unterstützt jedoch ID3v2 nicht (und spielt sich daher mit iTunes nicht so gut ab). Ich musste es aus dem Quellcode kompilieren, aber das war auf einem Mac mit Xcode- und Entwicklertools (einschließlich insbesondere eines C-Compilers) ziemlich einfach. Jedenfalls hätte ich gerne etwas mit ähnlichen Befehlszeilenoptionen wie id3tool. Hier ist ein Beispiel für das Markieren einer Datei:

id3tool -t "Song Title" -r Artist -a "Album Name" -c 2 track-02.mp3

Ich habe daran gearbeitet, so etwas zu schreiben ... es gibt einige Bibliotheken in Python und es gibt ein Tool namens Rüben, das sie nutzt, also habe ich untersucht, wie es geschrieben ist.
Robert S Ciaccio

2
außerdem ... MusicBrainz Picard wurde in Python geschrieben und ist Open Source. Es gibt also wahrscheinlich auch viel zu lernen, was den Code und die Bibliotheksnutzung betrifft.
Robert S Ciaccio

Ich stimme zu, Picard ist einfach genial
Rohan Monga

Antworten:


48

Wenn Sie Homebrew installiert haben (sehr empfehlenswert), können Sie einfach Folgendes tun:

brew install id3lib

Dies installiert mehrere ıd3 Kommandozeilen - Tools, einschließlich id3tag, id3convert, id3cpund id3info. Keine Notwendigkeit für Python- oder Perl-Skripte; Verwenden Sie einfach reguläre Shell-Befehle.

Usage: id3tag [OPTIONS]... [FILES]...
   -h         --help            Print help and exit
   -V         --version         Print version and exit
   -1         --v1tag           Render only the id3v1 tag (default=off)
   -2         --v2tag           Render only the id3v2 tag (default=off)
   -aSTRING   --artist=STRING   Set the artist information
   -ASTRING   --album=STRING    Set the album title information
   -sSTRING   --song=STRING     Set the title information
   -cSTRING   --comment=STRING  Set the comment information
   -CSTRING   --desc=STRING     Set the comment description
   -ySTRING   --year=STRING     Set the year
   -tSTRING   --track=STRING    Set the track number
   -TSTRING   --total=STRING    Set the total number of tracks
   -gSHORT    --genre=SHORT     Set the genre
   -w         --warning         Turn on warnings (for debugging) (default=off)
   -n         --notice          Turn on notices (for debugging) (default=off)

Unterstützt es ID3v2?
Jonik

id3lib funktioniert auch in anderen Distributionen wie Macports. Apropos, gibt es irgendeinen Grund, von Ports zu Homebrew zu wechseln? Ich hatte so viele Schmerzen beim Wechsel von Fink ...
HiQ CJ

"Fehler: Keine Formel für mid3v2 verfügbar". Jemand, der eine Formel beisteuern möchte?
ManuelSchneid3r

3
@Jonik id3lib können sowohl ID3v1 und ID3v2 schreiben und manipulieren
jchook

1
Es wird auch mit id3v2dem Befehl "Alles tun" geliefert. Damit können Sie beliebige Tags in eine Datei schreiben.
Edward Falk

14

Es gibt eine OS X-kompatible Version der id3lib-Bibliothek, die hier auf GitHub verfügbar ist . Es wird behauptet, sowohl ID3v1 als auch ID3v2 zu unterstützen.


1
Vielen Dank! Dies beantwortet meine Frage vollständig. Es war nur ein Quellpaket verfügbar, aber die Installation von diesem Paket aus (auf einem Mac mit Entwicklertools) verlief ziemlich reibungslos: der Standard-Unix-Tarif von configure, makeund make install. id3lib besteht aus 4 separaten Binärdateien: id3info (zum Lesen von Tags), id3tag (zum Schreiben von Tags), id3convert und id3cp. Alles funktioniert einwandfrei (und iTunes erkennt die mit id3tag geschriebenen v2-Tags an).
Jonik

@ Jonik Was hast du benutzt, um die Bibliothek zu verpacken? Irgendeine Python, die du geschrieben hast?
Robert S Ciaccio

@calavera: Ja, ich habe einfache Skripte, mit denen versucht wird, die Titelnummer oder den Namen aus einem Dateinamen zu ermitteln (z. B. "Artist - 03 - Track.mp3"). Wenn sie gefunden werden, schreiben Sie sie auch in das ID3 - Tag.
Jonik

@ Jonk: Würdest du gerne teilen? Ich habe nicht viel Erfahrung mit Python, so etwas wäre großartig, um damit
herumzuspielen

@calavera: Hier gehts . Verwendung: add-track-names.py *mp3oder add-track-numbers.py *mp3. Allgemeines (der meiste Code) befindet sich in einer separaten .py-Datei. Ich bin auch kein wirklicher Python-Coder, daher ist der Code wahrscheinlich weit von "pythonic" entfernt. :) Aber ich habe (wieder) viel gelernt, als ich es geschrieben habe, und es ist wahrscheinlich einfach zu erweitern, wenn Ihre Tagging-Anforderungen in etwa meinen entsprechen.
Jonik

5

Das Python-Modul Mutagen wird mit dem Befehlszeilen-ID3-Tool namens mid3v2 replacement for id3lib's ausgeliefert.
Aus der Verwendungsdokumentation:

Sie können den Wert für jeden ID3v2-Frame festlegen, indem Sie '-' und dann eine Frame-ID verwenden.
Zum Beispiel:
mid3v2 --TIT3 "Monkey!" file.mp3 würde den Rahmen "Subtitle / Description" auf "Monkey!" setzen.


Mutagen kann sudo pip install mutagennach der Installation mit pip installiert werden sudo easy_install pip.
Lri

Sie können direkt laufen sudo easy_install mutagenzu
user1259710

4

Vielleicht möchten Sie id3v2 ausprobieren . Es basiert auf der von Huyz erwähnten id3lib, scheint aber ein besseres Kommandozeilen-Tool zu sein als die mit id3lib. Die ID3V2-Tags aus von iTunes produzierten MP3s werden problemlos ausgegeben, nicht jedoch von iTunes produzierte M4A-Dateien (wie bei Apple Lossless).

Wenn Sie M4A-Dateien benötigen, ist eine andere Option ffmpeg . Das Befehlszeilentool ffprobe druckt Metadaten in den Dateien aus, und ich glaube, Sie können Metadaten über ffmpeg schreiben. Es funktioniert sowohl mit MP3- als auch mit M4A-Dateien, die von iTunes erstellt wurden. ffprobe zeigt möglicherweise nicht alle Metadaten an. mp4v2 ist eine weitere gute Option.

Alle drei Programme lassen sich einfach über Homebrew installieren. Im Moment (Januar 2012) benötigt ffmpeg gcc, um kompiliert zu werden brew install --use-gcc ffmpeg.


danke, dass du mp4v2 für m4a vorgeschlagen hast! funktioniert wie ein Zauber, während id3v2 nicht :(
Ilias Karim

mp4v2 ist das einzige Programm, das Tags auf iTunes-kompatible Weise bearbeitet hat (macOS 10.13, iTunes 12.7).
ungültiger Zeiger

2

Dieser alte Thread unter Mac OS X Hinweise scheint ein guter Ausgangspunkt für Sie zu sein. Es ist aus dem Jahr 2003, daher bin ich mir nicht sicher, ob das Tool, über das sie sprechen, noch in der Entwicklung ist. Möglicherweise müssen Sie es auch selbst kompilieren.


2

Es gibt immer AppleScript. Ich bin kein großer Fan davon, aber iTunes ist skriptfähig und Sie können alle MP3-Tags von dort aus bearbeiten. Sie können Applescript über die Befehlszeile mit Hilfe von Javascript aufrufen.


2

Diese Website: http://dougscripts.com/itunes/ enthält viele gute Befehlszeilenskripte und Tools, die auf iTunes aufbauen, um Dinge mit Ihrer Musikbibliothek zu tun. Einige von ihnen können tun, was Sie wollen. Einige der Tools sind kostenlos und andere lizenziert.


2

Da Sie mit CLI und Python vertraut sind, kann ich einige Perl-Module für CPAN empfehlen. MP3 :: Tag (sowie MP3 :: Tag :: ID3v1 und :: ID3v2 und :: Utils), MP3 :: Info und MP3 :: ID3Lib stehen zum Lesen und Bearbeiten von ID3-Tags zur Verfügung.

Wenn Sie auf search.cpan.org nach "MP3" suchen, finden Sie eine Vielzahl von Optionen!

(* Wo "Welt" eine kleine, begrenzte Anzahl von Optionen ist ...)


1
CLI und Python ja, aber Perl-Module auf CPAN ... nicht so sehr :-) (Wenn Sie diese auch in Python verwenden können, war mir das nicht bewusst. Oder wollten Sie stattdessen Perl schreiben?) Persönlich habe ich das verstanden bereits gelöst , aber vielleicht ist dies hilfreich für andere.
Jonik

2

Nachdem ich mit id3v2 verschiedene Probleme mit dem Typ "Abort Trap" hatte, entdeckte ich eyeD3 , ein Python-Modul, das auch als Befehlszeilen-Tool existiert. Es scheint in jüngerer Zeit aktualisiert worden zu sein als einige der anderen oben genannten Programme.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.