# Fehler beim Speichern eines APE Tags und Lyrics3

**URL:** <https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536>\
**Category:** Fehlermeldungen\
**Created:** [October 23, 2003, 5:22pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536 "2003-10-23T17:22:22Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sebastian\_Mares](https://community.mp3tag.de/user_avatar/community.mp3tag.de/sebastian_mares/32/9285_2.png) [@Sebastian\_Mares](https://community.mp3tag.de/u/Sebastian_Mares)\
**Post date:** [October 23, 2003, 5:22pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/1 "2003-10-23T17:22:22Z")

</div>

Hallo Florian!

Leider ist ein ziemlich schwerwiegender Fehler in MP3Tag. Er tritt auf, wenn man APEv2 Tags in eine Datei mit Lyrics3 speichern möchte.  
Ich weiß zwar, dass MP3Tag keine Lyrics3 Tags unterstützt, du solltest diese aber trotzdem nicht "zerstören".

Hier ist ein Hinweis:  
Lyrics3 Tags (egal ob v1.0 oder v2.0) können NUR dann auftreten, wenn auch ein ID3v1(.1) Tag vorhanden ist.  
Du solltest vor dem Schreiben des APE Tags überprüfen, ob die MP3 Datei bereits einen ID3v1 Tag enthält, und falls ja, 137 Bytes zurückspringen (128 wegen ID3v1 und 9 wegen Lyrics3).  
Wenn diese 9 Bytes "LYRICSEND" sind, handelt es sich um einen Lyrics3v1 Tag. Das bedeutet, er ist immer 5100 Bytes lang - springe 5100 Bytes zurück und schreibe den APEv2 Tag.  
Falls die 9 Bytes "LYRICS200" sind, handelt es sich um einen Lyrics3v2 Tag. Dann musst du wieder 6 Bytes zurückspringen und die Größe extrahieren (liegt als String/Char). Zu dieser Größe addierst du 15 (9 = "LYRICS200" + 6 = Längenbezeichner). Dein Ergebnis ist die komplette Größe des Lyrics3v2 Tags. Jetzt springst du wieder zurück (so viel, wie der gesammte Lyrics3v2 Tag ist) und schreibst den APEv2 Tag.

Grüße,  
Sebastian Mares

---

<div class="post-metadata">

**Author:** ![Sebastian\_Mares](https://community.mp3tag.de/user_avatar/community.mp3tag.de/sebastian_mares/32/9285_2.png) [@Sebastian\_Mares](https://community.mp3tag.de/u/Sebastian_Mares)\
**Post date:** [October 23, 2003, 5:28pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/2 "2003-10-23T17:28:25Z")

</div>

Nochmal zusammengefasst...

- Lyrics3 ist nur in Verbindung mit ID3v1 möglich.
- Lyrics3 ist IMMER vor ID3v1.
- Vor "TAG" (ID3v1 Header) muss sich entweder "LYRICSEND" (Lyrics3 1.0) oder "LYRICS200" (Lyrics3 2.0) befinden.
- Lyrics3 1.0 ist IMMER 5100 Bytes lang.
- Wenn der Footer also "...000105LYRICS200..." ist, ist der Lyrics3 2.0 Tag 105 + 6 + 9 = 120 Bytes lang.

- Eine MP3 Datei kann entweder einen Lyrics3 1.0 ODER einen Lyrics3 2.0 Tag enthalten - niemals beide.
- APEv2/APEv1 Tags kommen immer vor Lyrics3.

Es gibt noch andere Schwierigkeiten mit ID3v2.4 am Ende einer Datei, aber das ist unwichtig. Generell können MP3s so aussehen:

ID3v2.0...ID3v2.1...ID3v2.2...ID3v2.3...ID3v2.4...AUDIO...APEv2...Lyrics3...ID3v  
1

oder

ID3v2.0...ID3v2.1...ID3v2.2...ID3v2.3...AUDIO...ID3v2.4...APEv2...Lyrics3...ID3v  
1

Regards,  
Sebastian Mares

---

<div class="post-metadata">

**Author:** ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)\
**Post date:** [October 24, 2003, 12:57pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/3 "2003-10-24T12:57:19Z")

</div>

**Argl!** Ich verfluche die Leute die sich so viele Tag-Formate ausgedacht haben ...

Ich werd mal versuchen, da was drum rum zu stricken - danke für den Hinweis! Allerdings betrifft der Fehler ja denke ich nicht allzu viele Nutzer, da 1. die wenigsten bisher APE-Tags nutzen und 2. diese kaum Lyrics3-Tags nutzen.

~ Florian

---

<div class="post-metadata">

**Author:** ![Sebastian\_Mares](https://community.mp3tag.de/user_avatar/community.mp3tag.de/sebastian_mares/32/9285_2.png) [@Sebastian\_Mares](https://community.mp3tag.de/u/Sebastian_Mares)\
**Post date:** [October 24, 2003, 2:20pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/4 "2003-10-24T14:20:15Z")

</div>

> [@](#):
>
> **Argl!** Ich verfluche die Leute die sich so viele Tag-Formate ausgedacht haben ...

😉 Du bist nicht der Einzige...

> [@](#):
>
> Ich werd mal versuchen, da was drum rum zu stricken - danke für den Hinweis! Allerdings betrifft der Fehler ja denke ich nicht allzu viele Nutzer, da 1. die wenigsten bisher APE-Tags nutzen und 2. diese kaum Lyrics3-Tags nutzen.

Ja, da hast du wohl recht. Es wäre aber aus Kompatibilitätsgründen sehr gut, wenn du diesen Fehler beheben würdest. 🙂

Ich selber bin auf das selbe Problem gestoßen, als ich am VBSpot ([http://vbspot.sourceforge.net](http://vbspot.sourceforge.net)) gearbeitet habe.

Sebastian Mares

PS: Vielleicht wurde das schon gefragt, aber hast du vielleicht vor, den Quellkode irgendwann freizugeben?

---

<div class="post-metadata">

**Author:** ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)\
**Post date:** [October 24, 2003, 2:37pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/5 "2003-10-24T14:37:14Z")

</div>

> [@](#):
>
> Ja, da hast du wohl recht. Es wäre aber aus Kompatibilitätsgründen sehr gut, wenn du diesen Fehler beheben würdest. 🙂

Bin schon dabei 😉 ...

> [@](#):
>
> PS: Vielleicht wurde das schon gefragt, aber hast du vielleicht vor, den Quellkode irgendwann freizugeben?

Ja, das wurde ich schon ein paar mal gefragt. Der Grund warum Mp3tag nicht Open Source werden wird, liegt darin, dass ich mit einem Freund eine Klassenbibliothek geschrieben habe auf der Mp3tag aufgebaut ist und die auch kommerziell genutzt werden wird (von meinem Freund). Wir hatten zu Beginn vereinbart, dass wir den Source-Code nur  
bei gegenseitigem Einverständnis freigeben.

Viele Grüße,  
~ Florian

---

<div class="post-metadata">

**Author:** ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)\
**Post date:** [October 24, 2003, 3:44pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/6 "2003-10-24T15:44:14Z")

</div>

Der Fehler ist im aktuellen [Developer Build](http://developer.mp3tag.de) behoben.

Noch eine Anmerkung für Dein Projekt: Der Lyrics3v1-Tag _kann_ höchstens 5100 Bytes groß sein. D.h. er kann auch kleiner sein und man muss den Speicher nach LYRICSBEGIN durchsuchen (wer sich das wieder "überlegt" hat ...)

Viele Grüße,  
~ Florian

---

<div class="post-metadata">

**Author:** ![Sebastian\_Mares](https://community.mp3tag.de/user_avatar/community.mp3tag.de/sebastian_mares/32/9285_2.png) [@Sebastian\_Mares](https://community.mp3tag.de/u/Sebastian_Mares)\
**Post date:** [October 24, 2003, 3:57pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/7 "2003-10-24T15:57:06Z")

</div>

_thumbs up_

Außerdem, danke für den Hinweis, aber wo hast du das gelesen? getID3 ([http://getid3.sourceforge.net](http://getid3.sourceforge.net)) verwendet auch die Konstante 5100 als Länge. ???

---

<div class="post-metadata">

**Author:** ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)\
**Post date:** [October 24, 2003, 4:04pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/8 "2003-10-24T16:04:05Z")

</div>

> [@](#):
>
> Außerdem, danke für den Hinweis, aber wo hast du das gelesen? getID3 ([http://getid3.sourceforge.net](http://getid3.sourceforge.net)) verwendet auch die Konstante 5100 als Länge. ???

Ich hab die Spezifikation von [id3.org](http://www.id3.org/lyrics3.html) verwendet. Dort steht: _The **maximum** length of the lyrics is 5100 bytes._

Viele Grüße,  
~ Florian

---

<div class="post-metadata">

**Author:** ![Sebastian\_Mares](https://community.mp3tag.de/user_avatar/community.mp3tag.de/sebastian_mares/32/9285_2.png) [@Sebastian\_Mares](https://community.mp3tag.de/u/Sebastian_Mares)\
**Post date:** [October 24, 2003, 4:09pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/9 "2003-10-24T16:09:16Z")

</div>

OK, du hast wahrscheinlich recht. 😉

---

<div class="post-metadata">

**Author:** ![Moonbase](https://community.mp3tag.de/user_avatar/community.mp3tag.de/moonbase/32/207_2.png) [@Moonbase](https://community.mp3tag.de/u/Moonbase)\
**Post date:** [October 18, 2019, 12:53pm UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/10 "2019-10-18T12:53:09Z")

</div>

Ach wenn’s _viele_ Jahre zu spät kommt (es könnte ja jemand danach suchen …): Die meisten Tagger wollen nichts "Artfremdes" zerstören, werden also i.d.R. das _Lyrics3_ oder _Lyrics3v2_ Tag unverändert zurückschreiben. Wenn man nun aber _ID3v1_ bzw. _ID3v1.1_ Tags entfernt … ja genau: bleibt das Lyrics3-Tag übrig, obwohl lt. Spezifikation ein ID3v1-Tag folgen _muss!_

Ich habe in meiner Sammlung gerade wieder rd. 1.500 solcher – eigentlich defekten – Dateien entdeckt.

Ergo: Der Check muss das berücksichtigen. 🙂 (Siehe auch [rmlyrics3](https://github.com/Moonbase59/rmlyrics3)).

---

<div class="post-metadata">

**Author:** ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)\
**Post date:** [March 12, 2020, 8:36am UTC](https://community.mp3tag.de/t/fehler-beim-speichern-eines-ape-tags-und-lyrics3/536/11 "2020-03-12T08:36:35Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
