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.
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.
Antworten:
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 mit aac
/ m4a
files. Andere Tools scheinen nicht zu funktionieren (oder wissen Sie etwas anderes?). Ich werde auch vorschlagen, den FORMAT
Abschnitt zu durchsuchen , um Fälle zu vermeiden, in denen ein Stream auch ein title
etc .: hat ffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'
.
exiftool
oder gelesen werden ffprobe
. Das speziellere Werkzeug für diesen Job wäre metaflac --list
aus dem flac
Paket. Bei ogg klappt das exiftool
auch, es gibt aber auch vorbiscomment -l
aus dem vorbis-tools
Paket. Seltsam vorbiscomment
und metaflac
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
sudo apt-get install mp3info
Um einzelne MP3-Tags aus einer Datei zu erhalten, muss man anrufen
mp3info -p %a file.mp3
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.
mp3info
. Vielleicht möchten Sie sich ansehen id3v2
- 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, das id3v2
die Ausgabe entsprechend ausführt und verarbeitet.
-R
flag mit grep
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:
sudo apt-get install eyed3
Dann renne:
eyeD3 song.mp3
Kombinieren Sie dies mit grep
, um bestimmte Tags in einer Zeile zu erhalten.
eyeD3 song.mp3 | grep artist
(um alle mp3 Tags zu entfernen, siehe HIER )
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.
Sie können exiftool ausprobieren (Lesen und Schreiben von Metainformationen in Dateien).
"ExifTool ist eine plattformunabhängige Perl-Bibliothek und eine Befehlszeilenanwendung zum Lesen, Schreiben und Bearbeiten von Metainformationen in einer Vielzahl von Dateien. ExifTool unterstützt viele verschiedene Metadatenformate, einschließlich EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP und ID3 sowie die Herstellerhinweise für viele Digitalkameras von Canon, Casio, FLIR, FujiFilm, GE, HP, JVC / Victor, Kodak, Leaf, Minolta / Konica-Minolta, Motorola, Nikon, Nintendo, Olympus / Epson, Panasonic / Leica, Pentax / Asahi, Phase 1, Reconyx, Ricoh, Samsung, Sanyo, Sigma / Foveon und Sony. " - ExifTool von Phil Harvey
Hier ist ein Beispiel für den Befehl:
exiftool test.mp3
ExifTool Version Number : 10.00
File Name : test.mp3
Directory : .
File Size : 8.2 MB
File Modification Date/Time : 2016:03:02 21:44:58+01:00
File Access Date/Time : 2016:04:06 21:34:01+02:00
File Inode Change Date/Time : 2016:03:02 21:45:36+01:00
File Permissions : rw-rw-r--
File Type : MP3
File Type Extension : mp3
MIME Type : audio/mpeg
MPEG Audio Version : 1
Audio Layer : 3
Sample Rate : 44100
Channel Mode : Stereo
MS Stereo : Off
Intensity Stereo : Off
Copyright Flag : False
Original Media : False
Emphasis : None
VBR Frames : 9544
VBR Bytes : 8467680
ID3 Size : 115419
Band : Tech N9ne Collabos
Album : Strangeulation (Deluxe Edition)
Composer : Tech N9ne Collabos
Genre : Rap & Hip-Hop
Copyright : 2014 Strange Music, Inc
Title : American Horror Story (feat. Ces Cru)
Artist : Tech N9ne Collabos
Track : 10
Year : 2014
Comment :
Lyrics :
Private : (Binary data 8192 bytes, use -b option to extract)
Picture MIME Type : image/jpeg
Picture Type : Front Cover
Picture Description :
Picture : (Binary data 104371 bytes, use -b option to extract)
Audio Bitrate : 272 kbps
Date/Time Original : 2014
Duration : 0:04:09 (approx)
Prüfen Sie, lltag
ob Sie nach einer Lösung suchen, die mehr als nur MP3 / ID3 unterstützt.
Installiere es mit:
sudo apt-get install lltag
um alle Tags damit anzuzeigen: ( -S
ist für Show)
lltag -S somefile.mp3
So zeigen Sie bestimmte Tags an:
lltag --show-tags artist,album,title,number somefile.mp3
Sie können mit diesem Screencast und der Anleitung Erste Schritte beginnen
Installieren Sie entweder:
pip install beets # latest version
apt install beets # repo version
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 Renamer