Czy istnieje sposób na odczytanie tagów mp3 pliku z powłoki? Coś w stylu:
mp3tags MyFile.mp3 authorpowinien wypisać znacznik autora pliku mp3.
Czy istnieje sposób na odczytanie tagów mp3 pliku z powłoki? Coś w stylu:
mp3tags MyFile.mp3 authorpowinien wypisać znacznik autora pliku mp3.
Odpowiedzi:
Możesz także użyć, ffprobektóry jest częścią ffmpeg.
sudo apt-get install ffmpeg
ffprobe file.mp3
Jeśli nie chcesz innych informacji, takich jak długość ścieżki itp., Możesz połączyć wyjście z grep:
ffprobe file.mp3 2>&1 | grep -A90 'Metadata:'
Lub w celu uzyskania tylko autora:
ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 file.mp3
Możesz wybrać inne tagi, oddzielając je przecinkami, np format_tags=title,album.
Chciałem wyszukać słowo kluczowe we wszystkich plikach mp3 w folderze. Folder miał 486 plików, dlatego zainteresowało Cię, które z wymienionych tutaj rozwiązań jest najszybsze. Oto pętla, której użyłem:
# 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
Uwagi:
lltagi mp3infonie znajduję tytułu, ponieważ pliki, których używałem, miały tagi ID3v2, patrz komentarz @ s-prasanth: Jak czytać tagi mp3 w powłoce?eyeD3 używanie programowe jest problematyczne, ponieważ wykorzystuje kody kolorów (pogrubienie).eyeD3a także id3v2(ale tylko w przypadku znaczników ID3 v1) zwracają tytuł i wykonawcę w tym samym wierszu, co dodatkowo komplikuje sytuację; dlatego getTitleEyedczasami getTitleId3zwracaj zarówno tytuł, jak i wykonawcę, więc nie kopiuj-wklej tych funkcji.getTitleId3 będzie działał tylko dla tagów ID3 v2, ponieważ id3v2ma różne formaty dla tagów ID3v1 i ID3v2, tj.
Title : Artist:
vs. ID3v2:
TIT2 (Title/songname/content description):
Jako jedyny program z tych 5 eyeD3drukuje czerwone ostrzeżenie dla dwóch plików:
Invalid mode/bitrate combination for layer II
No ID3 v1.x/v2.x tag found!
Wydaje się, że te dwa pliki mają tagów ID3v1, ponieważ te dwa pliki są jedynymi, gdzie lltagi mp3infomoże uzyskać tytuł. Zastanawiam się, czy to błąd, eyeD3ponieważ żaden inny program tutaj wymieniony nie ma problemu z tymi plikami ...
Wyniki (w czasie rzeczywistym):
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
Zwycięzcą jest id3toolczasowo (mp3info jest szybsze, ale nie działa z ID3 v2).
id3v2jest również dość szybki, ale getTitleId3funkcja wymagałaby dostosowania, aby działała również ze znacznikami ID3v1, co w najgorszym przypadku może spowolnić czynnik 2.
id3infodo swojego porównania?
ffmpegma jeszcze jedną zaletę: działa z aac/ m4afiles. Inne narzędzia nie wydają się (lub czy wiesz inaczej?). Zasugeruję również przeszukanie jego FORMATsekcji, aby uniknąć przypadków, w których strumień ma również titleitp ffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'.:
exiftoollub ffprobe. Bardziej wyspecjalizowane narzędzie do tego zadania byłoby metaflac --listz flacpakietu. Dla ogg exiftoolrównież działa, ale jest też vorbiscomment -lz vorbis-toolspakietu. Dziwnie vorbiscommenti metaflacnie można ich zamieniać, mimo że zarówno FLAC, jak i OGG mają metadane vorbis coment?
Ok, znalazłem program sam. Nazywa się mp3info i jest instalowany przez
sudo apt-get install mp3info
Aby uzyskać pojedyncze tagi mp3 z pliku, trzeba zadzwonić
mp3info -p %a file.mp3
co daje wykonawcę pliku. % A oznacza, że jeden chce uzyskać artystę i istnieją inne klucze do innych tagów.
mp3info. Możesz zajrzeć id3v2- może edytować / dodawać v2 i wyświetlać v1 i v2. Jeśli nie podoba ci się sposób wyświetlania tagów, możesz napisać skrypt, który odpowiednio uruchomi id3v2i przetwarza dane wyjściowe.
-Rflagi z, grepaby uzyskać określone dane wyjściowe.
Only ID3 versions 1.0 and 1.1 are supported.
Możesz użyć eyed3 . Najpierw zainstaluj z terminala:
sudo apt-get install eyed3
Następnie uruchomić:
eyeD3 song.mp3
Połącz to z, grepaby uzyskać określone tagi w jednym wierszu.
eyeD3 song.mp3 | grep artist
(aby usunąć wszystkie tagi mp3, czytaj TUTAJ )
eyeD3nieeyed3
eyeD3 --plugin display -p "%t% by %a%" *.
Wolę używać id3v2, po prostu wpisz id3v2 -l somefile.mp3. Możesz także wyświetlić stronę podręcznika id3v2, aby uzyskać bardziej szczegółowe informacje.
mid3v2zamiast z powodu braku wsparcia Unicode. Ostatnia aktualizacja id3v2 miała miejsce w 2013 roku .
Możesz wypróbować exiftool (Odczytywanie i zapisywanie meta informacji w plikach).
„ExifTool to niezależna od platformy biblioteka Perla oraz aplikacja wiersza poleceń do odczytu, zapisu i edycji meta informacji w wielu różnych plikach. ExifTool obsługuje wiele różnych formatów metadanych, w tym EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP i ID3, a także notatki producentów wielu cyfrowych aparatów Canon, Casio, FLIR, FujiFilm, GE, HP, JVC / Victor, Kodak, Leaf, Minolta / Konica-Minolta, Motorola, Nikon, Nintendo, Olympus / Epson, Panasonic / Leica, Pentax / Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma / Foveon i Sony. ” - ExifTool autorstwa Phila Harveya
Oto przykład polecenia:
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)
Sprawdź, lltagczy szukasz rozwiązania, które obsługuje więcej niż tylko mp3 / ID3.
Zainstaluj z:
sudo apt-get install lltag
aby wyświetlić wszystkie tagi z nim: ( -Sjest na pokaz)
lltag -S somefile.mp3
aby wyświetlić niektóre tagi:
lltag --show-tags artist,album,title,number somefile.mp3
Możesz zacząć od tego screencast i na PRZYGOTOWANIA przewodnika
Zainstaluj:
pip install beets # latest version
apt install beets # repo version
Również:
exiftool -v3 *.mp3mid3v2z ( python-mutagenpakietu) ( zamiastid3v2 , ostatnia aktualizacja była na 2013 !)id3- Edytor tagów ID3 ( inny niż ten id3 )id3tool - Edytor wiersza poleceń dla znaczników id3id3ren - Tagger id3 i zmiana nazwy