Bir dosyanın mp3 etiketlerini kabuktan okumak için bir yol var mı? Bir şey gibi:
mp3tags MyFile.mp3 author
bir mp3 dosyasının yazar-etiketini çıkarmalı.
Bir dosyanın mp3 etiketlerini kabuktan okumak için bir yol var mı? Bir şey gibi:
mp3tags MyFile.mp3 author
bir mp3 dosyasının yazar-etiketini çıkarmalı.
Yanıtlar:
Bunun bir ffprobe
parçası olanı da kullanabilirsiniz ffmpeg
.
sudo apt-get install ffmpeg
ffprobe file.mp3
İz uzunluğu ve benzeri başka bilgiler istemiyorsanız, çıktıyı grep ile birleştirebilirsiniz:
ffprobe file.mp3 2>&1 | grep -A90 'Metadata:'
Veya yalnızca yazarı almak için:
ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 file.mp3
Diğer etiketleri, örneğin virgül ile ayırarak seçebilirsiniz format_tags=title,album
.
Bir klasördeki tüm mp3 dosyalarında bir anahtar kelime aramak istedim. Klasör 486 dosyaya sahipti, bu yüzden burada belirtilen çözümlerden hangisinin en hızlı olduğunu bilmek ilginç bir hal aldı. İşte kullandığım döngü:
# 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
Notlar:
lltag
ve mp3info
bir başlık bulamıyorum, çünkü kullandığım dosyalar ID3v2 etiketlerine sahipti, @ s-prasanth yorumuna bakınız: mp3 etiketleri kabukta nasıl okunur?eyeD3
renk kodları (kalınlık) kullandığından programlı olarak kullanmak sorunludur.eyeD3
ve ayrıca id3v2
(ancak yalnızca ID3 v1 etiketleri için) başlığı ve sanatçıyı aynı satırda döndürür; bu, işleri daha da karmaşıklaştırır; bu nedenle getTitleEyed
ve bazen getTitleId3
hem başlığı hem de sanatçıyı döndürün, bu yüzden lütfen bu işlevleri kopyalayıp yapıştırmayın.getTitleId3 sadece ID3 v2 etiketleri için çalışacaktır, çünkü id3v2
ID3v1- ve ID3v2-etiketleri için farklı formatlar vardır.
Title : Artist:
ID3v2'ye karşı:
TIT2 (Title/songname/content description):
Bu 5 programın tek programı eyeD3
iki dosya için kırmızı bir uyarı oluşturuyor:
Invalid mode/bitrate combination for layer II
No ID3 v1.x/v2.x tag found!
Bu iki dosya ID3v1 etiketleri var gibi bu iki dosya nerede tek olanlar, çünkü görünüyor lltag
ve mp3info
bir başlık alabilirsiniz. Bunun bir hata olup olmadığını merak ediyorum, eyeD3
burada belirtilen başka hiçbir program bu dosyalarla ilgili bir sorun yaşamadığı için ...
Sonuçlar (gerçek zamanlı):
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
Zaman kazandıran kazanan burada id3tool
(mp3info daha hızlı, ancak ID3 v2 ile çalışmıyor).
id3v2
aynı zamanda oldukça hızlıdır, ancak getTitleId3
fonksiyonun ID3v1 etiketleri ile de çalışabilmesi için ayar yapılması gerekir, bu da en azından faktör 2 ile yavaşlatabilir.
id3info
karşılaştırmanıza dahil olabilir misiniz ?
ffmpeg
başka bir avantajı var: aac
/ m4a
files ile çalışıyor . Diğer araçlar görünmüyor (ya da başka türlü biliyor musunuz?). FORMAT
Bir akışın da title
vb ffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'
. Olduğu durumlardan kaçınmak için, onun bölümünü aramanızı da önereceğim .
exiftool
veya ile de okunabilir ffprobe
. Bu iş için daha özel bir araç olacağını metaflac --list
gelen flac
paketin. OGG için exiftool
de çalışır, ancak orada da vorbiscomment -l
gelen vorbis-tools
paketin. FLAC vorbiscomment
ve OGG'nin metaflac
her ikisi de vorbis kod meta verisine sahip olsa bile, tuhaf ve birbiriyle değiştirilemez mi?
Tamam, tek başıma bir program buldum. Bu mp3info denir ve tarafından yüklenir
sudo apt-get install mp3info
Bir dosyadan tek mp3 etiketlerini almak için, birinin araması gerekir.
mp3info -p %a file.mp3
Bu dosya sanatçısı verir. % A, birinin sanatçıyı almak istediği anlamına gelir ve diğer etiketler için başka anahtarlar da vardır.
mp3info
. Bakmak isteyebilirsiniz id3v2
- v2'yi düzenleyebilir / ekleyebilir ve v1 ve v2'yi görüntüleyebilir. Etiketleri görüntüleme şeklini beğenmiyorsanız id3v2
, çıktıyı uygun şekilde çalıştıran ve işleyen bir komut dosyası yazabilirsiniz .
-R
bayrak kullanıyorum grep
.
Only ID3 versions 1.0 and 1.1 are supported
.
Eyed3'ü kullanabilirsiniz . İlk önce, bir terminalden, kurun:
sudo apt-get install eyed3
O zaman koş:
eyeD3 song.mp3
grep
Bir satırda belirli etiketleri elde etmek için bunu birleştirin .
eyeD3 song.mp3 | grep artist
(tüm mp3 etiketlerini çıkarmak için BURAYA bakınız )
eyeD3
değileyed3
eyeD3 --plugin display -p "%t% by %a%" *
.
ID3v2 kullanmayı tercih ediyorum, sadece yazın id3v2 -l somefile.mp3
. Daha spesifik kullanım için id3v2 man sayfasını da görebilirsiniz.
mid3v2
yerine nedeniyle Unicode desteği eksikliği. Ayrıca id3v2 son güncelleme 2013 tarihinde yapıldı .
Exiftool'u deneyebilirsiniz (Dosyalara meta bilgileri okuyun ve yazın).
"ExifTool, platformdan bağımsız bir Perl kütüphanesi ve çok çeşitli dosyalarda meta bilgileri okumak, yazmak ve düzenlemek için kullanılan bir komut satırı uygulamasıdır. ExifTool, EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC dahil olmak üzere birçok farklı meta veri formatını destekler Profil, Photoshop IRB, FlashPix, AFCP ve ID3 ile Canon, Casio, FLIR, FujiFilm, GE, HP, JVC / Victor, Kodak, Yaprak, Minolta / Konica-Minolta, Motorola’nın birçok dijital fotoğraf makinesinin yapımcısı notları, Nikon, Nintendo, Olympus / Epson, Panasonic / Leica, Pentax / Asahi, Birinci Aşama, Reconyx, Ricoh, Samsung, Sanyo, Sigma / Foveon ve Sony. " - Phil Harvey'den ExifTool
İşte komutun bir örneği:
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)
Check out lltag
sadece mp3 / ID3 daha destekleyen bir çözüm arıyorsanız eğer.
Şununla yükleyin:
sudo apt-get install lltag
Tüm etiketleri onunla görüntülemek için: ( -S
göstermek içindir)
lltag -S somefile.mp3
bazı etiketleri onunla görüntülemek için:
lltag --show-tags artist,album,title,number somefile.mp3
Sen başlayabilir bu screencast ve Başlangıç kılavuzuna
İkisinden birini yükleyin:
pip install beets # latest version
apt install beets # repo version
Ayrıca:
exiftool -v3 *.mp3
mid3v2
from ( python-mutagen
paket) ( yerineid3v2
, son güncelleme 2013 tarihinde yapıldı !)id3
- ID3 etiketleri için düzenleyici ( bu id3 ile aynı değil )id3tool
- id3 etiketleri için komut satırı editörüid3ren
- id3 etiketleyici ve yeniden adlandırma