एमपी 3 फ़ाइलों के लिए ID3 डेटा देखें / संपादित करें


152

C # का उपयोग करके ID3 टैग (कलाकार, एल्बम, आदि) देखने और संपादित करने का एक त्वरित और आसान तरीका क्या है?

जवाबों:


186

थ्रेडिंग टैगलिब शार्प

TagLib.File f = TagLib.File.Create(path);
f.Tag.Album = "New Album Title";
f.Save();

1
क्या कोई मुझे बता सकता है कि कलाकार संपत्ति कैसे सेट करें? बहुत सारे संबंधित गुण हैं (FirstArtist, Artist, JointedArtists, FirstPerformer) और उनमें से लगभग सभी पढ़े-
लिखे

3
थोड़ा देर से, लेकिन आप निम्न द्वारा कलाकारों / कलाकारों को जोड़ सकते हैं: mp3.Tag.Performers = new string [] {"Performer 1", "Performer 2", "Performer 3"};
nokturnal

बहुत बढ़िया पुस्तकालय। मैंने इसका उपयोग id3 टैग कॉपी करने के लिए किया।
रॉनी ओवरबी

क्या यह लाइब्रेरी आधुनिक ID3v2 टैग का समर्थन करती है? Simucal का स्निपेट सुझाव देता है (जब तक कि वह सिर्फ इसका हिस्सा न बने)।
जेम्स

TagLib GPL है। यह शायद ही यहाँ एक उपयुक्त उत्तर है।
सीन ओ'नील

65

TagLib Sharp काफी लोकप्रिय है।

एक साइड नोट के रूप में, यदि आप इसे स्वयं करने के लिए एक त्वरित और गंदी तस्वीर लेना चाहते थे .. यहाँ एक सी # स्निपेट है जो मुझे एक एमपी 3 टैग जानकारी पढ़ने के लिए मिला।

class MusicID3Tag

{

    public byte[] TAGID = new byte[3];      //  3
    public byte[] Title = new byte[30];     //  30
    public byte[] Artist = new byte[30];    //  30 
    public byte[] Album = new byte[30];     //  30 
    public byte[] Year = new byte[4];       //  4 
    public byte[] Comment = new byte[30];   //  30 
    public byte[] Genre = new byte[1];      //  1

}

string filePath = @"C:\Documents and Settings\All Users\Documents\My Music\Sample Music\041105.mp3";

        using (FileStream fs = File.OpenRead(filePath))
        {
            if (fs.Length >= 128)
            {
                MusicID3Tag tag = new MusicID3Tag();
                fs.Seek(-128, SeekOrigin.End);
                fs.Read(tag.TAGID, 0, tag.TAGID.Length);
                fs.Read(tag.Title, 0, tag.Title.Length);
                fs.Read(tag.Artist, 0, tag.Artist.Length);
                fs.Read(tag.Album, 0, tag.Album.Length);
                fs.Read(tag.Year, 0, tag.Year.Length);
                fs.Read(tag.Comment, 0, tag.Comment.Length);
                fs.Read(tag.Genre, 0, tag.Genre.Length);
                string theTAGID = Encoding.Default.GetString(tag.TAGID);

                if (theTAGID.Equals("TAG"))
                {
                    string Title = Encoding.Default.GetString(tag.Title);
                    string Artist = Encoding.Default.GetString(tag.Artist);
                    string Album = Encoding.Default.GetString(tag.Album);
                    string Year = Encoding.Default.GetString(tag.Year);
                    string Comment = Encoding.Default.GetString(tag.Comment);
                    string Genre = Encoding.Default.GetString(tag.Genre);

                    Console.WriteLine(Title);
                    Console.WriteLine(Artist);
                    Console.WriteLine(Album);
                    Console.WriteLine(Year);
                    Console.WriteLine(Comment);
                    Console.WriteLine(Genre);
                    Console.WriteLine();
                }
            }
        }

12
यह केवल ID3v1 के लिए है। v2 में एक और संरचना है, यह फ़ाइल की शुरुआत में है (जैसा कि v1 के विपरीत था जो अंत में था) और इसकी चर लंबाई है (v1 हमेशा 128 बाइट्स है)।
१६

यह बहुत लंबा समाधान है और अनुकूलित नहीं है। stackoverflow.com/a/4361634/1395101
अमीन गदेरी

Encoding.Defaultसे बदला जा सकता है Encoding.UTF8। अधिक जानकारी के लिए देखें: gigamonkeys.com/book/practical-an-id3-parser.html
Mirjalal

25

UltraID3Lib ...

ज्ञात हो कि UltraID3Lib अब आधिकारिक रूप से उपलब्ध नहीं है, और इस प्रकार अब इसका रखरखाव नहीं किया जाता है। इस लाइब्रेरी में शामिल Github प्रोजेक्ट के लिंक के लिए नीचे टिप्पणियां देखें

//using HundredMilesSoftware.UltraID3Lib;
UltraID3 u = new UltraID3();
u.Read(@"C:\mp3\song.mp3");
//view
Console.WriteLine(u.Artist);
//edit
u.Artist = "New Artist";
u.Write();

+1 यह अब तक का सबसे अच्छा पुस्तकालय है - क्योंकि 'UltraID3Lib ID3 v2.3' में निर्दिष्ट चौहद्दी प्रकारों में से अधिकांश के साथ-साथ शुरुआती ID3v1 टैग का भी समर्थन करता है। सबसे बढ़िया उत्तर।
जेम्स

+1 यह उपयोग करने के लिए बहुत आसान है और एमपी 3 मेटाडाटा से निपटने के लिए सरल तरीका है
amrswalha

1
मैंने हाल ही में इसका इस्तेमाल किया है और यह कमाल का काम करता है और इस प्रक्रिया का बोझ नहीं है। आईडी 3 संस्करणों 1 और 2 में मौजूद हर टैग के बारे में (और आप एक या एक ही समय में दोनों का उपयोग कर सकते हैं) यह तेज़ और आसान है। यह मेरी ज़रूरत से ज़्यादा काम करता है। इसमें एक बहुत व्यापक मदद फ़ाइल भी थी। मैं सभी को इसकी सिफारिश करूंगा।
1934286

अभिवादन; लिंक दुर्गम है। क्या UltraID3Lib को बंद कर दिया गया है?
गुडबाय

मुझे इस GitHub प्रोजेक्ट में शामिल UltraID3Lib का एक संस्करण मिला। github.com/clementboone/MyWindowsMediaPlayer इस परियोजना में एक UltraID3Lib फ़ोल्डर है जो ज़िप फ़ाइल की संपूर्ण सामग्री है जो उपलब्ध हुआ करती थी।
मैट

15

TagLib Sharp के पास ID3 टैग पढ़ने के लिए समर्थन है।


मैंने यहां सिफारिश के आधार पर टैगलिब तेज का उपयोग करना शुरू कर दिया और इसने मेरे आवेदन के लिए बहुत अच्छा काम किया (जो कि केवल एमपी 3 की जानकारी थी)।
greg7gkb

नए लिंक स्थान के लिए हेविंस का जवाब नीचे देखें
कॉनराड फ्रैक्स

2

मैंने एमपी डिकोडर लाइब्रेरी को लपेटा और इसे .net डेवलपर्स के लिए उपलब्ध कराया। आप इसे यहां देख सकते हैं:

http://sourceforge.net/projects/mpg123net/

पीसीएम में एमपी 3 फ़ाइल को बदलने और आईडी 3 टैग पढ़ने के लिए नमूने शामिल हैं।


1

ID3.NET ने ID3v1.x और ID3v2.3 को लागू किया और एमपी 3 फ़ाइलों में ID3 अनुभाग पर पढ़ने / लिखने के संचालन का समर्थन करता है। वहाँ भी एक NuGet पैकेज उपलब्ध है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.