शेल में एमपी 3 टैग कैसे पढ़ें?


53

क्या शेल से किसी फ़ाइल के एमपी 3 टैग को पढ़ने का एक तरीका है? कुछ इस तरह: mp3tags MyFile.mp3 authorएमपी 3 फ़ाइल के लेखक-टैग का उत्पादन करना चाहिए।

जवाबों:


47

आप इसका उपयोग भी कर सकते हैं, 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 टैग के लिए काम करेगा, क्योंकि id3v2ID3v1- और 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 से सबसे खराब रूप से धीमा हो सकता है।


1
वाह। मैं वर्षों से एक एक्सफ़ॉल्टल पॉवर उपयोगकर्ता हूँ और मुझे नहीं पता था कि यह साउंड फ़ाइलों के लिए मेटाडेटा भी पढ़ सकता है! Ffprobe (या मेरे मामले में avprobe) समाधान भी महान है, धन्यवाद। यह सबसे अच्छा जवाब है!
marlar

1
आप के लिए धन्यवाद विशाल काम! इनमें से कुछ उपकरण फेडोरा में मेरे पैकेज मैनेजर से उपलब्ध नहीं हैं। क्या आप id3infoअपनी तुलना में शामिल कर सकते हैं ?
व्येनतिस बिवाइनेस

ffmpegएक और फायदा है: यह aac/ m4aफाइलों के साथ काम करता है । अन्य उपकरण नहीं लगते (या क्या आप अन्यथा जानते हैं?)। मैं भी अपनी खोज का सुझाव देगा FORMATअनुभाग, ऐसे मामलों में जहां एक धारा यह भी एक है से बचने के लिए titleआदि .: ffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'
जोनाथन वाई।

@JonathanY। आप सही हैं, M4A- युक्त फ़ाइल में संग्रहीत AAC एन्कोडेड ऑडियो में गैर-ID3 मेटाडेटा है और इसलिए इसे केवल ffmpeg द्वारा पढ़ा जा सकता है और इसके अतिरिक्त, मेरे उत्तर में चयन से बाहर हो सकता है।
mxmlnkn

FLACs का एक अन्य मेटाडेटा प्रारूप है जो MP4 / M4A से अलग है, अर्थात् vorbis टिप्पणी मेटाडेटा है, लेकिन टैग के साथ exiftoolया भी पढ़ा जा सकता है ffprobe। इस नौकरी के लिए अधिक विशिष्ट उपकरण पैकेज metaflac --listसे होगा flac। ओग के लिए exiftoolभी काम करता है, लेकिन पैकेज vorbiscomment -lसे भी है vorbis-tools। अजीब vorbiscommentऔर metaflacइंटरचेंज नहीं किया जा सकता है, भले ही एफएलएसी और ओजीजी दोनों में वोरबिस कॉमन मेटाडेटा हो?
mxmlnkn

26

ठीक है, मुझे खुद से एक कार्यक्रम मिला। इसे mp3info कहा जाता है और इसके द्वारा स्थापित किया जाता है

sudo apt-get install mp3info

एक फ़ाइल से एकल एमपी 3 टैग प्राप्त करने के लिए, एक को कॉल करना होगा

mp3info -p %a file.mp3

जो फ़ाइल के कलाकार देता है। % का मतलब है कि एक कलाकार को प्राप्त करना चाहता है और अन्य टैग के लिए कुछ अन्य कुंजी हैं।


20
अतिरिक्त जानकारी: mp3 टैग id3v1, id3v2.2 (अप्रचलित), id3v2.3, id3v2.4 en.wikipedia.org/wiki/ID3 के 4 अलग-अलग मानक हैं । फ़ाइल में v1 और / या v2 टैग हो सकते हैं (Yes v1 और v2 सह-अस्तित्व में हो सकते हैं, लेकिन v2.x और v2.y सह-अस्तित्व नहीं कर सकते हैं)। मेरा मानना ​​है कि v2.3 सबसे व्यापक रूप से इस्तेमाल किया जाने वाला एक है। Ibiblio.org/mp3info के अनुसार (देखें टोडो) v2 टैग द्वारा समर्थित नहीं हैं mp3info। आप देखना चाह सकते हैं id3v2- यह v2 को संपादित / जोड़ सकता है और v1 और v2 प्रदर्शित कर सकता है। यदि आपको वह टैग पसंद नहीं है जो आप टैग प्रदर्शित करते हैं तो आप एक स्क्रिप्ट लिख सकते id3v2हैं जो आउटपुट को उचित रूप से चलाता और संसाधित करता है।
एस प्रशांत

@SPrasanth विशिष्ट टैग प्रदर्शित करने के लिए इसे कैसे बनाते हैं। उदाहरण के लिए: केवल एक एमपी 3 फ़ाइल का कलाकार?
गौतम गोपालकृष्णन

@SPrasanth मुझे मिल गया। धन्यवाद मैं निर्दिष्ट आउटपुट प्राप्त करने के लिए -Rध्वज का उपयोग कर रहा हूं grep
गौतम गोपालकृष्णन

जब आप ट्रैक टाइटल को% t के साथ प्रिंट करते हैं, तो यह प्रिंट करता है।
ट्यूलेंस कोरडोवा

1
दुर्भाग्य से: Only ID3 versions 1.0 and 1.1 are supported
simlev

11

आप eyed3 का उपयोग कर सकते हैं । पहले, एक टर्मिनल से, स्थापित करें:

sudo apt-get install eyed3

तो भागो:

eyeD3 song.mp3

grepएक पंक्ति में विशिष्ट टैग प्राप्त करने के लिए इसे मिलाएं ।

eyeD3 song.mp3 | grep artist

(सभी एमपी 3 टैग्स को हटाने के लिए, यहाँ देखें )


1
मैं यह करने की कोशिश की, और उपयोग करने के लिए कमांड एक बड़ा अक्षर डी के साथ, eyeD3 है;)। लेकिन मुझे एक और टूल मिला, जो कि मेरी ज़रूरतों से बेहतर मेल खाता है, जिसका नाम MP3info है। यह grep का उपयोग करने की आवश्यकता के बिना एमपी 3 टैग को आउटपुट कर सकता है, जिसे मैं पसंद करता हूं।
red_trumpet

eyeD3 मेरे लिए बेहतर काम करता है क्योंकि यह id3v2 के साथ काम करता है, लेकिन @red_trumpet सही है, कमांड eyeD3नहीं होना चाहिएeyed3
bmaupin

वांछित प्रारूप में आउटपुट टैग के लिए डिस्प्ले प्लगइन का उपयोग करें eyeD3 --plugin display -p "%t% by %a%" *:।
22

यह सभी टैग प्रदर्शित नहीं करता है, उदाहरण के लिए कोई ISRC नहीं। नीचे उल्लिखित प्रोग्राम id3v2 भी ISRC देता है, लेकिन कोई अवधि नहीं ...
मिनट

8

मैं id3v2 का उपयोग करना पसंद करता हूं, बस टाइप करें id3v2 -l somefile.mp3। आप अधिक विशिष्ट उपयोग के लिए id3v2 मैन पेज भी देख सकते हैं।


यह बहुत अच्छा है और बहुत अच्छा काम करता है
jpo38

निश्चित रूप से सबसे अच्छा उत्तर होना चाहिए, अन्य सभी उपकरणों में कुछ वितरणों पर निर्भरता की समस्याएं हैं।
सर्जियो

यहांmid3v2 यूनिकोड समर्थन की कमी के कारण इसकी सिफारिश की गई है। इसके अलावा id3v2 आखिरी अपडेट 2013 को था
पाब्लो ए

2

आप एक्सफ़िल्टूल (फ़ाइलों में मेटा जानकारी पढ़ें और लिखें) आज़मा सकते हैं।

"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)

1

की जाँच करें lltagआप देख रहे हैं एक समाधान जो सिर्फ एमपी 3 / ID3 की तुलना में अधिक का समर्थन करता है के लिए।

इसे स्थापित करें:

sudo apt-get install lltag

इसके साथ सभी टैग देखने के लिए: ( -Sदिखाने के लिए है)

lltag -S somefile.mp3

इसके साथ कुछ टैग देखने के लिए:

lltag --show-tags artist,album,title,number somefile.mp3

0

बीट

आप के साथ शुरू कर सकते हैं इस स्क्रीनकास्ट और प्रारंभ करना गाइड

या तो स्थापित करें:

pip install beets  # latest version
apt install beets  # repo version

इसके अलावा:

  • सिर्फ मेटाडेटा पढ़ने के लिए: exiftool -v3 *.mp3
  • mid3v2( python-mutagenपैकेज) से ( 2013 के बजायid3v2 , अंतिम अपडेट था !)
  • id3- ID3 टैग के लिए संपादक ( इस id3 के समान नहीं )
  • id3tool - id3 टैग के लिए कमांड लाइन एडिटर
  • id3ren - आईडी 3 टैगर और रेनमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.