Gibt es eine Möglichkeit, die MP3-Tags einer Datei aus der Shell zu lesen? Etwas wie:
mp3tags MyFile.mp3 author
sollte den Autor-Tag einer MP3-Datei ausgeben.
quelle
Gibt es eine Möglichkeit, die MP3-Tags einer Datei aus der Shell zu lesen? Etwas wie:
mp3tags MyFile.mp3 author
sollte den Autor-Tag einer MP3-Datei ausgeben.
Sie können auch verwenden, ffprobe
was ein Teil von ist ffmpeg
.
sudo apt-get install ffmpeg
ffprobe file.mp3
Wenn Sie keine weiteren Informationen, wie z. B. die Länge der Spur usw., wünschen, können Sie die Ausgabe mit grep kombinieren:
ffprobe file.mp3 2>&1 | grep -A90 'Metadata:'
Oder um nur den Autor zu bekommen:
ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 file.mp3
Sie können andere Tags auswählen, indem Sie sie durch Kommas trennen, z format_tags=title,album
.
Ich wollte in allen MP3-Dateien eines Ordners nach einem Schlüsselwort suchen. Der Ordner hatte 486 Dateien, daher wurde es interessant zu wissen, welche der hier genannten Lösungen die schnellste ist. Hier ist die Schleife, die ich verwendet habe:
# sudo apt-get install ffmpeg lltag eyed3 mp3info id3v2 libimage-exiftool-perl libid3-tools id3tool
keyword='fill_me_in'
getTitleFF() { ffprobe "$1" 2>&1 | sed -E -n 's/^ *title *: (.*)/\1/p'; }
getTitleLL() { lltag --show-tags title "$1" | sed -nE 's/^ TITLE=(.*)/\1/p'; }
getTitleEyed() { eyeD3 2>&1 "$1" | sed -n 's|\x1b\[[0-9;]*mtitle[^:]*: ||p'; }
getTitleInfo() { mp3info -p %t "$1"; }
getTitleId3() { id3v2 -l "$1" | sed -nE 's/^(TIT2 \([^)]*\)|Title *): (.*)/\2/p'; }
getTitleExif() { exiftool -title -b "$1"; }
getTitleId3i() { id3info "$1" | sed -nE 's/^=== TIT2 \([^)]*\): //p'; }
getTitleTool() { id3tool "$1" | sed -n 's|^Song Title:\t||p'; }
for prog in FF LL Eyed Info Id3 Exif Id3i Tool; do
echo "=== getTitle${prog} ==="
time \
for file in *.mp3; do
if "getTitle${prog}" "$file" | grep -q "$keyword"; then
echo "$file"
fi
done
done
Anmerkungen:
lltag
und mp3info
finde keinen Titel, weil die von mir verwendeten Dateien ID3v2-Tags hatten, siehe den Kommentar von @ s-prasanth: Wie lese ich MP3-Tags in der Shell?eyeD3
ist problematisch, programmgesteuert zu verwenden, da es Farbcodes (Fettdruck) verwendet.eyeD3
und auch id3v2
(aber nur für ID3 v1-Tags) geben Sie den Titel und den Interpreten in derselben Zeile zurück, was die Sache noch komplizierter macht. Geben Sie daher getTitleEyed
manchmal getTitleId3
sowohl den Titel als auch den Interpreten zurück. Bitte kopieren Sie diese Funktionen nicht und fügen Sie sie nicht ein.getTitleId3 funktioniert nur für ID3 v2-Tags, da id3v2
es unterschiedliche Formate für ID3v1- und ID3v2-Tags gibt, d. h
Title : Artist:
ID3v2:
TIT2 (Title/songname/content description):
Als einziges dieser 5 Programme wird eyeD3
eine rote Warnung für zwei der Dateien ausgegeben:
Invalid mode/bitrate combination for layer II
No ID3 v1.x/v2.x tag found!
Es scheint , wie diese beiden Dateien ID3v1 - Tags haben, weil diese beiden Dateien die einzigen, wo sind lltag
und mp3info
einen Titel bekommen. Ich frage mich, ob dies ein Fehler in ist, eyeD3
da kein anderes hier genanntes Programm ein Problem mit diesen Dateien hat ...
Ergebnisse (Echtzeit):
Program | Version | Time / s
----------+------------+-----------
exiftool | 10.25 | 49.5 ± 0.5
lltag | 0.14.5 | 41 ± 1.0
ffprobe | 3.1.3-1+b3 | 33 ± 0.5
eyeD3 | 0.6.18 | 24 ± 0.5
id3info | 3.8.3 | 4.2 ± 0.1
id3v2 | 0.1.12 | 2.9 ± 0.1
id3tool | 1.2a | 1.7 ± 0.1
mp3info | 0.8.5a | 1.4 ± 0.1
Zeitlich gesehen ist der Gewinner hier id3tool
(mp3info ist schneller, funktioniert aber nicht mit ID3 v2).
id3v2
ist auch ziemlich schnell, aber die getTitleId3
Funktion müsste angepasst werden, um auch mit ID3v1-Tags zu arbeiten, was sie im schlimmsten Fall um den Faktor 2 verlangsamen kann.
id3info
in Ihren Vergleich einbeziehen?ffmpeg
hat einen weiteren Vorteil: es funktioniert mitaac
/m4a
files. Andere Tools scheinen nicht zu funktionieren (oder wissen Sie etwas anderes?). Ich werde auch vorschlagen, denFORMAT
Abschnitt zu durchsuchen , um Fälle zu vermeiden, in denen ein Stream auch eintitle
etc .: hatffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'
.exiftool
oder gelesen werdenffprobe
. Das speziellere Werkzeug für diesen Job wäremetaflac --list
aus demflac
Paket. Bei ogg klappt dasexiftool
auch, es gibt aber auchvorbiscomment -l
aus demvorbis-tools
Paket. Seltsamvorbiscomment
undmetaflac
nicht austauschbar, obwohl sowohl FLAC als auch OGG vorbis coment Metadaten haben?Ok, ich habe selbst ein Programm gefunden. Es heißt mp3info und wird von installiert
Um einzelne MP3-Tags aus einer Datei zu erhalten, muss man anrufen
das gibt den Künstler der Datei. Das% a bedeutet, dass man den Interpreten holen möchte und es einige andere Schlüssel für die anderen Tags gibt.
quelle
mp3info
. Vielleicht möchten Sie sich ansehenid3v2
- Es kann v2 bearbeiten / hinzufügen und v1 und v2 anzeigen. Wenn Ihnen die Darstellung der Tags nicht gefällt, können Sie ein Skript schreiben, dasid3v2
die Ausgabe entsprechend ausführt und verarbeitet.-R
flag mitgrep
um die angegebene Ausgabe zu bekommen.Only ID3 versions 1.0 and 1.1 are supported
.Sie können eyed3 verwenden . Installieren Sie zunächst von einem Terminal aus:
Dann renne:
Kombinieren Sie dies mit
grep
, um bestimmte Tags in einer Zeile zu erhalten.(um alle mp3 Tags zu entfernen, siehe HIER )
quelle
eyeD3
nicht seineyed3
eyeD3 --plugin display -p "%t% by %a%" *
.Ich bevorzuge es, id3v2 zu verwenden, tippe einfach
id3v2 -l somefile.mp3
. Sie können auch die id3v2-Manpage für eine spezifischere Verwendung anzeigen.quelle
mid3v2
stattdessen wegen der mangelnden Unicode-Unterstützung empfohlen . Das letzte Update von id3v2 war 2013 .Sie können exiftool ausprobieren (Lesen und Schreiben von Metainformationen in Dateien).
Hier ist ein Beispiel für den Befehl:
quelle
Prüfen Sie,
lltag
ob Sie nach einer Lösung suchen, die mehr als nur MP3 / ID3 unterstützt.Installiere es mit:
um alle Tags damit anzuzeigen: (
-S
ist für Show)So zeigen Sie bestimmte Tags an:
quelle
Rüben
Sie können mit diesem Screencast und der Anleitung Erste Schritte beginnen
Installieren Sie entweder:
Ebenfalls:
exiftool -v3 *.mp3
mid3v2
from (python-mutagen
package) ( stattid3v2
, letztes Update war 2013 !)id3
- Editor für ID3-Tags (nicht identisch mit dieser ID3 )id3tool
- Befehlszeileneditor für ID3-Tagsid3ren
- ID3 Tagger und Renamerquelle