क्या शेल से किसी फ़ाइल के एमपी 3 टैग को पढ़ने का एक तरीका है? कुछ इस तरह:
mp3tags MyFile.mp3 author
एमपी 3 फ़ाइल के लेखक-टैग का उत्पादन करना चाहिए।
क्या शेल से किसी फ़ाइल के एमपी 3 टैग को पढ़ने का एक तरीका है? कुछ इस तरह:
mp3tags MyFile.mp3 author
एमपी 3 फ़ाइल के लेखक-टैग का उत्पादन करना चाहिए।
जवाबों:
आप इसका उपयोग भी कर सकते हैं, ffprobe
जिसका हिस्सा है ffmpeg
।
sudo apt-get install ffmpeg
ffprobe file.mp3
यदि आप अन्य जानकारी नहीं चाहते हैं, जैसे ट्रैक की लंबाई और इसी तरह, आप आउटपुट को grep के साथ जोड़ सकते हैं:
ffprobe file.mp3 2>&1 | grep -A90 'Metadata:'
या केवल लेखक को पाने के लिए:
ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 file.mp3
आप अन्य टैग्स को कॉमा के साथ अलग करके चुन सकते हैं, जैसे कि format_tags=title,album
।
मैं एक फ़ोल्डर में सभी एमपी 3 फ़ाइलों में एक कीवर्ड की तलाश करना चाहता था। फ़ोल्डर में 486 फाइलें थीं, इसलिए यह जानना दिलचस्प हो गया कि यहां बताए गए समाधानों में से कौन सा सबसे तेज है। यहाँ मैं इस्तेमाल किया पाश है:
# 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
टिप्पणियाँ:
lltag
और mp3info
एक शीर्षक नहीं मिल रहा है, क्योंकि मैं जिन फाइलों का उपयोग कर रहा था, उनमें ID3v2 टैग थे, @ s-prasanth द्वारा टिप्पणी देखें: शेल में एमपी 3 टैग कैसे पढ़ें?eyeD3
प्रोग्रामेटिक रूप से उपयोग करने के लिए समस्याग्रस्त है, क्योंकि यह कलर कोड (बोल्डनेस) का उपयोग करता है।eyeD3
और भी id3v2
(लेकिन केवल ID3 v1 टैग के लिए) शीर्षक और कलाकार को उसी लाइन पर लौटाते हैं, जो चीजों को और जटिल करता है; इसलिए getTitleEyed
और कभी-कभी getTitleId3
शीर्षक और कलाकार दोनों को वापस करते हैं, इसलिए कृपया उन कार्यों को कॉपी-पेस्ट न करें।getTitleId3 केवल ID3 v2 टैग के लिए काम करेगा, क्योंकि id3v2
ID3v1- और ID3v2- टैग के लिए अलग-अलग प्रारूप हैं, अर्थात
Title : Artist:
बनाम ID3v2:
TIT2 (Title/songname/content description):
इन 5 प्रोग्रामों के एकमात्र प्रोग्राम में eyeD3
दो फाइलों के लिए लाल चेतावनी दी गई है:
Invalid mode/bitrate combination for layer II
No ID3 v1.x/v2.x tag found!
ऐसा लगता है कि उन दो फ़ाइलों में ID3v1 टैग हैं, क्योंकि वे दो फाइलें ही हैं, जहां lltag
और mp3info
एक शीर्षक प्राप्त कर सकते हैं। मैं सोच रहा था कि यह एक बग के eyeD3
रूप में कोई अन्य कार्यक्रम यहाँ उल्लेख इन फ़ाइलों के साथ एक समस्या है ...
परिणाम (वास्तविक समय):
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
समय के लिहाज से विजेता यहां id3tool
(MP3info तेज है, लेकिन ID3 v2 के साथ काम नहीं करता है)।
id3v2
यह भी काफी तेज है, लेकिन getTitleId3
फ़ंक्शन को ID3v1- टैग के साथ काम करने के लिए समायोजन की आवश्यकता होगी, जो कि कारक 2 से सबसे खराब रूप से धीमा हो सकता है।
id3info
अपनी तुलना में शामिल कर सकते हैं ?
ffmpeg
एक और फायदा है: यह aac
/ m4a
फाइलों के साथ काम करता है । अन्य उपकरण नहीं लगते (या क्या आप अन्यथा जानते हैं?)। मैं भी अपनी खोज का सुझाव देगा FORMAT
अनुभाग, ऐसे मामलों में जहां एक धारा यह भी एक है से बचने के लिए title
आदि .: ffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'
।
exiftool
या भी पढ़ा जा सकता है ffprobe
। इस नौकरी के लिए अधिक विशिष्ट उपकरण पैकेज metaflac --list
से होगा flac
। ओग के लिए exiftool
भी काम करता है, लेकिन पैकेज vorbiscomment -l
से भी है vorbis-tools
। अजीब vorbiscomment
और metaflac
इंटरचेंज नहीं किया जा सकता है, भले ही एफएलएसी और ओजीजी दोनों में वोरबिस कॉमन मेटाडेटा हो?
ठीक है, मुझे खुद से एक कार्यक्रम मिला। इसे mp3info कहा जाता है और इसके द्वारा स्थापित किया जाता है
sudo apt-get install mp3info
एक फ़ाइल से एकल एमपी 3 टैग प्राप्त करने के लिए, एक को कॉल करना होगा
mp3info -p %a file.mp3
जो फ़ाइल के कलाकार देता है। % का मतलब है कि एक कलाकार को प्राप्त करना चाहता है और अन्य टैग के लिए कुछ अन्य कुंजी हैं।
mp3info
। आप देखना चाह सकते हैं id3v2
- यह v2 को संपादित / जोड़ सकता है और v1 और v2 प्रदर्शित कर सकता है। यदि आपको वह टैग पसंद नहीं है जो आप टैग प्रदर्शित करते हैं तो आप एक स्क्रिप्ट लिख सकते id3v2
हैं जो आउटपुट को उचित रूप से चलाता और संसाधित करता है।
-R
ध्वज का उपयोग कर रहा हूं grep
।
Only ID3 versions 1.0 and 1.1 are supported
।
आप eyed3 का उपयोग कर सकते हैं । पहले, एक टर्मिनल से, स्थापित करें:
sudo apt-get install eyed3
तो भागो:
eyeD3 song.mp3
grep
एक पंक्ति में विशिष्ट टैग प्राप्त करने के लिए इसे मिलाएं ।
eyeD3 song.mp3 | grep artist
(सभी एमपी 3 टैग्स को हटाने के लिए, यहाँ देखें )
eyeD3
नहीं होना चाहिएeyed3
eyeD3 --plugin display -p "%t% by %a%" *
:।
मैं id3v2 का उपयोग करना पसंद करता हूं, बस टाइप करें id3v2 -l somefile.mp3
। आप अधिक विशिष्ट उपयोग के लिए id3v2 मैन पेज भी देख सकते हैं।
mid3v2
यूनिकोड समर्थन की कमी के कारण इसकी सिफारिश की गई है। इसके अलावा id3v2 आखिरी अपडेट 2013 को था ।
आप एक्सफ़िल्टूल (फ़ाइलों में मेटा जानकारी पढ़ें और लिखें) आज़मा सकते हैं।
"ExifTool एक प्लेटफ़ॉर्म-इंडिपेंडेंट पर्ल लाइब्रेरी प्लस है, जो विभिन्न प्रकार की फाइलों में मेटा जानकारी को पढ़ने, लिखने और संपादित करने के लिए एक कमांड-लाइन एप्लिकेशन है। ExifTool कई अलग-अलग मेटाडेटा प्रारूपों का समर्थन करता है, जिनमें EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC शामिल हैं। प्रोफाइल, फोटोशॉप IRB, FlashPix, AFCP और ID3, साथ ही Canon, Casio, FLIR, FujiFilm, GE, HP, JVC / Victor, Kodak, Leaf, Minolta (Konica-Minolta, Motorola) द्वारा कई डिजिटल कैमरों के निर्माता नोट निकॉन, निनटेंडो, ओलिंपस / एप्सों, पैनासोनिक / लेईका, पेंटाक्स / असही, फेज वन, रिकनीक्स, रिको, सैमसंग, सान्यो, सिग्मा / फव्वन और सोनी। " - फिल हार्वे द्वारा ExifTool
यहाँ आदेश का एक उदाहरण है:
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)
की जाँच करें lltag
आप देख रहे हैं एक समाधान जो सिर्फ एमपी 3 / ID3 की तुलना में अधिक का समर्थन करता है के लिए।
इसे स्थापित करें:
sudo apt-get install lltag
इसके साथ सभी टैग देखने के लिए: ( -S
दिखाने के लिए है)
lltag -S somefile.mp3
इसके साथ कुछ टैग देखने के लिए:
lltag --show-tags artist,album,title,number somefile.mp3
आप के साथ शुरू कर सकते हैं इस स्क्रीनकास्ट और प्रारंभ करना गाइड
या तो स्थापित करें:
pip install beets # latest version
apt install beets # repo version
इसके अलावा: