myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE7
   » Gadget für Vista
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» dotnetjob.de
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien

 
Beiträge zu diesem Thema Autor Datum
 Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien marsgk 24.08.2006 14:58
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien Mike Lowrey 23.07.2009 22:34
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien herri 09.01.2009 12:28
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien herbivore 24.07.2009 08:33
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien marsgk 24.07.2009 10:48
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien Mike Lowrey 24.07.2009 13:29
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien elli 12.09.2009 00:15
 ID3TagLib.Net bhillebrand 21.09.2009 13:04
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien elli 25.09.2009 23:58
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien bhillebrand 01.10.2009 15:41
 Erweiterte TAGs darkman203 27.09.2011 06:58
 RE: Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien 55Flo55 24.12.2011 01:53

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
marsgk marsgk ist männlich
myCSharp.de-Mitglied

Dabei seit: 04.06.2005
Beiträge: 1.439
Entwicklungsumgebung: Notepad++ + csc + nmake
Herkunft: Linz, Austria


marsgk ist offline

Bibliothek für ID3v1/ID3v2 Tags in mp3-Dateien

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,
ich hab mir für ein kleineres Projekt eine Bibliothek zum lesen und schreiben von ID3v1 bzw. ID3v2 Tags geschrieben.
Über Anregungen/Wünsche/Fehler würde ich mich freuen.

Hier ein kleines Beispiel zur Benutzung der Bibiothek.

Die Dokumentation ist in der Zip-Datei enthalten.

C#-Code:
using ID3TagLib;

...

// Tags aus der Datei "x.mp3" laden.
// Die extrahierten Tags werden, sofern vorhanden in file.ID3v1Tag bzw.
// file.ID3v2Tag gespeichert, sonst werden diese Properties auf null gesetzt.
ID3File file = new ID3File("x.mp3");

// ID3v1-Tags sind recht einfach aufgebaut, haben eine fixe Größe
// und nur einige Felder wie Album, Interpret, etc.
// Die Klasse ID3v1Tag repräsentiert diese Art von Tags und hat
// entsprechende String-Properties um diese Felder zu manipulieren.
ID3v1Tag v1Tag = file.ID3v1Tag;
if (v1Tag != null) {
    Console.WriteLine("Album: {0}", v1Tag.Album);
}

// ID3v2-Tags sind wesentlich komplizierter aufgebaut. Sie haben keine feste Größe
// oder bestimmte Felder, sondern sind als ein Containerformat konzipiert. Frames,
// von denen ein ID3v2-Tag beliebig viel haben kann, speichern den eigentlichen Inhalt.
// Der Aufbau und die Bedeutung des Inhalts der Frames werden durch eine ID bestimmt.
// So speichert ein Frame mit der ID "TALB" das Album als Text. Die meisten Frames
// sind TextFrames(Album, Interpret, Titel, etc.) es gibt aber auch kompliziertere Frames
// die Bilder Speichern("APIC").
// Die wichtigste Eigenschaft der Klasse ID3v2Tag ist das Frames.Property. Dieses liefert
// eine FramesCollection, die die enthaltenen Frames speichert. Auf die Frames kann per Index
// oder über die ID zugegriffen werden.
ID3v2Tag v2Tag = file.ID3v2Tag;
if (v2Tag == null) {
    // keiner vorhanden, neuen anlegen
    v2Tag = new ID3v2Tag();
    file.ID3v2Tag = v2Tag;
}
// Frame mit der ID "TALB"(=FrameFactory.AlbumFrameId) im Tag suchen.
// Liefert null, wenn kein Frame mit der ID "TALB" vorhanden ist.
TextFrame f = v2Tag.Frames[FrameFactory.AlbumFrameId] as TextFrame;
if (f == null) {
    // neuen Frame anlegen. FrameFactory.GetFrame liefert den passenden
    // Frame zur ID. Also für z.B. "TALB" einen TextFrame, for "APIC"
    // einen PictureFrame.
    f = FrameFactory.GetFrame(FrameFactory.AlbumFrameId) as TextFrame;
    v2Tag.Frames.Add(f);
}
f.Text = "Album";

// überschreibt in "x.mp3" enthaltene tags mit den Aktuellen.
// Wenn die Properties file.ID3v2Tag bzw. file.ID3v1Tag null sind werden
// in "x.mp3" enthaltene Tags gelöscht.
file.Save("x.mp3");


Dateianhang:
zip ID3TagLib.zip (325,33 KB, 2.641 mal heruntergeladen)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von marsgk am 17.05.2007 11:11.

24.08.2006 14:58 Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 2 Jahre.
Mike Lowrey
myCSharp.de-Mitglied

Dabei seit: 23.07.2009
Beiträge: 2


Mike Lowrey ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

da ich im Moment bei meinem ersten größeren Projekt sehr viel mit Meta Daten arbeiten muss, bin ich auf meiner Suche zu ID3 Tags in MP3s zum Glück zügig zu diesem Beitrag gekommen.


Da ich allerdings auch gerne auf Flac Files zugreifen würde welche ja ebenso ID3 Tags verwenden, frage ich mich ob deine Bibliothek ebenso auf auf Flac files zugreifen kann oder ob sie komplett auf MP3 beschränkt ist.
23.07.2009 22:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
herri herri ist männlich
myCSharp.de-Mitglied

Dabei seit: 09.01.2009
Beiträge: 1


herri ist offline Füge herri Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

danke anke,

hat mir geholfen :>
09.01.2009 12:28 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 6 Monate.
herbivore
myCSharp.de-Team (Admin)

images/avatars/avatar-2627.gif


Dabei seit: 11.01.2005
Beiträge: 47.478
Entwicklungsumgebung: csc/nmake (nothing is faster)
Herkunft: Berlin


herbivore ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Mike Lowrey,

wenn die Header-Informationen die gleichen sind, wie bei MP3, sollte es keine Rolle spielen, dass die eigentlichen Nutzdaten unterschiedlich sind. Aber bevor wir lange spekulieren, kannst du es doch einfach ausprobieren. :-)

herbivore
24.07.2009 08:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
marsgk marsgk ist männlich
myCSharp.de-Mitglied

Dabei seit: 04.06.2005
Beiträge: 1.439
Entwicklungsumgebung: Notepad++ + csc + nmake
Herkunft: Linz, Austria

Themenstarter Thema begonnen von marsgk

marsgk ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Flac-Dateien verwenden leider einen anderen Metadaten-Container.
24.07.2009 10:48 Beiträge des Benutzers | zu Buddylist hinzufügen
Mike Lowrey
myCSharp.de-Mitglied

Dabei seit: 23.07.2009
Beiträge: 2


Mike Lowrey ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

hab's heute mal getestet(darauf hätte man auch selber kommen können^^) und hat leider nicht geklappt.

Nun gut dann heißt's weiter suchen!

Edit: Oh Antwort ganz überlesen! Tja da hat man das Problem.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Mike Lowrey am 24.07.2009 13:56.

24.07.2009 13:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
elli
myCSharp.de-Mitglied

Dabei seit: 27.08.2004
Beiträge: 26


elli ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

hi,

es gibt 2 fette ID3 Tag Projekte. Es lohnt sich nicht sowas selber zu machen.


 http://id3tag.codeplex.com/

wahrscheinlich noch besser das vom Mono Project, weil es auch mehr als
MP3 kann.

EDIT von winSharp93: Link zur TagLibSharp Wiki entfernt, da Inhalt nun anstößig (möglicherweise durch gehackten Server)

Allerdings hat die Seite gerade Probleme. Hier sind ein paar Beispiele:

 http://developer.novell.com/wiki/index.php/TagLib_Sharp:_Examples


elli
12.09.2009 00:15 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
bhillebrand
myCSharp.de-Mitglied

Dabei seit: 21.09.2009
Beiträge: 3


bhillebrand ist offline

ID3TagLib.Net

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

das erste Projekt kenne ich ( ist von mir ;-) ) und kann dazu etwas sagen. Die
aktuelle Version unterstützt ID3v2.4 und ID3v2.3 mit ISO 8859 ( ANSI ) / UTF16 / UT8.
Ich habe das Projekt ins Leben gerufen, damit ich mich in das neue .NET 3.5
einarbeiten und praktische Erfahrung sammeln kann. Die Library selber ist mit
Unit Tests geprüft.

Das zweite Projekt kenne ich nicht. Wenn man auch andere Formate ausser ID3
lesen möchte, dann ist das bestimmt ein Vorteil.

Allgeimein habe ich gemerkt, dass es sehr schwierig ist eine "saubere" ID3 Kodierung zu finden. Die Player und die Encoder halten sich nicht immer an die Standarts. Gut ist das Programm Mp3Tag (  http://www.mp3tag.de/ ), weil es der Spezifikation sehr nahe kommt.
21.09.2009 13:04 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
elli
myCSharp.de-Mitglied

Dabei seit: 27.08.2004
Beiträge: 26


elli ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

Zitat:
Ich habe das Projekt ins Leben gerufen, damit ich mich in das neue .NET 3.5

Cool zu hören. Ich bin noch am überlegen auf welches ich umstellen will, denn ich will
V 2.4 benutzen wegen den GAIN Tags. Den Weg den MP3Gain geht, alle MP3 Frame Header zur verdändern gefällt mir nicht.

Zitat:
Allgeimein habe ich gemerkt, dass es sehr schwierig ist eine "saubere" ID3 Kodierung zu finden.

Jopp, da hast Du ja das Grundproblem von Standards schon mitbekommen. Ich plage mich mit sowas schon seit 20 Jahren rum. Man muß es allen recht machen. Pochen auf Standards und die Regeln nützt nichts. Tolerant sein und alles unterstützen :)., schlicht kompatibel sein.

elli
25.09.2009 23:58 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
bhillebrand
myCSharp.de-Mitglied

Dabei seit: 21.09.2009
Beiträge: 3


bhillebrand ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

auf GAIN tags bin ich bisher nicht gestossen. Hast Du dazu einen guten Link ?
Müsste man mal prüfen, ob man die Lib erweitern kann.

Aber Du hast Recht.. Spezifikation und populäre Implementierungen sind immer zwei paar Schuhe. Meine Library unterstützt auch nicht alle spezifizierten Frames, aber die wenigsten davon habe ich bisher auch real gesehen.

Apple erfindet auch gerne eigene ;-)

bye
Bjoern
01.10.2009 15:41 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Jahr.
darkman203
myCSharp.de-Mitglied

Dabei seit: 27.09.2011
Beiträge: 1


darkman203 ist offline

Erweiterte TAGs

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

danke für die DLL, funktioniert wirklich gut. Schreiben,lesen von ID3 Tags habe ich soweit hinbekommen. Jetzt habe ich noch 2 Fragen zu der DLL.

1. Kann man sich auch eigene Tags erstellen? Z.B bräuchte ich einen Tag für ISBN.
2. Wie kann man bei den Lyrics die Sprache hinterlegen?
27.09.2011 06:58 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 2 Monate.
55Flo55 55Flo55 ist männlich
myCSharp.de-Mitglied

Dabei seit: 03.10.2010
Beiträge: 37


55Flo55 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo erstmal...


alos die ID3TagLib funktionirt soweit ganz gut..

einziges Problem was mir aufgefallen ist...
wie komme ich an das Genre Frame... (ID3V2)

Es funktioniert nicht auf dem gleichen Wege wie z.B. Artist, Title, comment etc...


wie kann ich denn auf anderen Wege an die Genre ran kommen?
24.12.2011 01:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 6 Jahre.
Der letzte Beitrag ist älter als ein Jahr.
Antwort erstellen


© Copyright 2003-2013 myCSharp.de-Team. Alle Rechte vorbehalten. 20.05.2013 19:44