127.911.750 Dateien
4,6 Trustpilot
seit 2013

Das plötzliche Auftreten von OGX-Dateien – eine Analyse

5.0/5(1 Stimme)

TLDR: Viele Webserver, darunter Wikimedia und Wikia senden .OGG und .OPUS-Dateien mit dem veralteten application/ogg Content-Type. Android 15 hat die Logik der Dateiendungen angepasst, und erstellt nun .ogg.OGX-Dateien im Download-Ordner. Die Dateiendung .ogx ist sonst für gewöhnlich nicht anzutreffen. Die Lösung ist eine korrekte Nennung der MimeTypes in der Serverkonfiguration.

Ich habe bei Online-Umwandeln.de viele Nutzer-Anfragen zu .ogx-Dateien erhalten. Das wunderte mich, denn .ogx ist als Dateiendung äußerst selten. Die realen Anwendungsfälle sind praktisch kaum relevant. In der Tat ist mir „in der freien Wildbahn“ noch keine tatsächliche .ogx-Datei untergekommen.

Später fiel mir auf, dass die mir zur Untersuchung bereitgestellten Dateien teilweise unbemerkt eine doppelte Dateiendung hatten. Zu sehen war .ogg.ogx oder .opus.ogx. Durch Recherchen und weiteren Kontakt mit den Nutzern konnte ich mehr über die Quellen und die Dateien selbst erfahren.

Die Analyse:

Anfangs fand ich einige Hinweise zu Bugs in Drupal[7] und auch einige Wikia-Nutzer beschwerten sich [8]. Schnell fiel mein Augenmerk auf eine Verwechslung der MIME-Types. Mit der Geschichte der .ogg-Dateiendung (und deren Änderung) im Hinterkopf suchte ich tiefer.

Ich fand heraus: einige Webserver nutzen application/ogg als Standard-Content-Type für .opus oder .ogg-Dateien, so z.B. auch Wikimedia oder Fandom/WikiA.

curl -I https://upload.wikimedia.org/wikipedia/commons/4/42/Echo_samples.ogg
HTTP/2 200
content-type: application/ogg
content-length: 126498
curl -I https://static.wikia.nocookie.net/soundeffects/images/3/35/Sound_Ideas%2C_CARTOON%2C_LAUGHTER_-_HIGH_PITCHED_CRAZY_LAUGHTER_01.ogg/revision/latest
HTTP/2 200
date: Wed, 11 Mar 2026 19:36:55 GMT
content-type: application/ogg
content-length: 67089

Die Ursache:

Die meisten Browser kommen damit gut zurecht, aber Androids Methode guessFileName und insbesondere guessFileNameRfc6266 führt zum Widerspruch: Der Dateiname gibt .ogg vor, der MIME-Type allerdings mappt auf .ogx. [10] Daher wird die Endung .ogx angehängt und nicht ersetzt und wir haben die doppelte und widersinnige Dateiendung geschaffen.

// guessFileName
        if (android.os.Flags.androidOsBuildVanillaIceCream()) {
            if (Compatibility.isChangeEnabled(PARSE_CONTENT_DISPOSITION_USING_RFC_6266)) {
                return guessFileNameRfc6266(url, contentDisposition, mimeType);
            }
        }

// guessFileNameRfc6266 
        if (mimeType != null && extensionDifferentFromMimeType(filename, mimeType)) {
            return filename + extensionFromMimeType;
        }

Im Quellcode ist auch ersichtlich, dass dieses Verhalten erst ab Android 15/Vanilla Ice Cream auftritt:

The function also changed in the following ways in VANILLA_ICE_CREAM:
If the suggested file type extension doesn't match the passed mimeType, the method will append the appropriate extension instead of replacing the current extension. 

Die Bewertung:

Im Prinzip ist das kein Fehler in Android sondern ein gängiges Konfigurationsproblem in Webservern. Auch .ogg-Dateien sollten mit dem aktuellen Content-Type: audio/ogg gesendet werden, nicht mit application/ogg. Sofern tatsächlich Video in der .ogg-Datei enthalten ist, wäre video/ogg als Content-Type ideal, noch besser video/ogg und .ogv als Dateiendung. Auf Desktop-Browsern (Firefox, Chrome, Safari) konnte ich dieses Verhalten nicht nachstellen.
Die .ogx-Dateien lassen sich auf den betroffenen Android-Geräten problemlos wiedergeben. „Problematisch“ wird es erst, wenn die Dateien versendet werden.

Wenn wir exakt die RFC betrachten, dann sehen wir in RFC 5334: [3]

The type „application/ogg“ is redefined.

und

Applications which use this media type: Scientific and otherwise that require various multiplexed signals or streams of data, with or without scriptable control of content.

Das passt also nicht (mehr) mit der MDN-Empfehlung zur Bereitstellung von Ogg-Medien zusammen:

If you don’t know whether the Ogg file contains audio or video, you can serve it with the MIME type application/ogg, and the browser will treat it as a video file.

Wir sehen: Änderungen in den MIME-Types führen nach nun 18 Jahren zu Problemen. Alte Config-Dateien, die nie ein Problem waren, machen nun plötzlich Probleme.

Screenshot der heruntergeladenen .ogg-Dateien mit falscher Dateiendung

Screenshot der heruntergeladenen .ogg-Dateien mit falscher Dateiendung

Beispieldaten und weitere Informationen:

Beispiele für OGX-Dateien mit Audio-Inhalten, die freundlicherweise zur Analyse bereitgestellt wurden:

# file *.ogx
1.ogx: Ogg data, Opus audio,
2.ogx: Ogg data, Vorbis audio, mono, 44100 Hz, ~86000 bps, created by: Xiph
3.ogx: Ogg data, Vorbis audio, stereo, 44100 Hz, ~160000 bps
4.ogx: Ogg data, Vorbis audio, stereo, 44100 Hz, ~160000 bps, created by: Xiph

Zum Vergleich dazu freie Beispieldaten mit .ogg und .ogv Endung:

# file sample.ogg
sample.ogg: Ogg data, Opus audio,
# file sample.ogv
sample.ogv: Ogg data, Theora video

Die Lösung für Endnutzer:

Im Prinzip reicht es die doppelte Dateiendung zu entfernen oder .ogx auf .ogg zu ändern. Online-Umwandeln.de tut das im Hintergrund auch, sofern hinter der .ogx-Datei eine .oga oder .ogg erkannt wird.

Der Fix für Serverbetreiber:

In der Apache-Konfiguration ist die Zuordnung in der .htaccess oder mime.conf vorzunehmen. Für die korrekte Implementierung sind folgende Einträge erforderlich:

.htaccess oder mime.conf – Apache

AddType audio/ogg .ogg .oga .spx .opus
AddType video/ogg .ogv
AddType application/ogg .ogx

Auch die nginx-Konfiguration sollte application/ogg nur für ogx definieren.

mime.types – nginx

audio/ogg  ogg oga spx opus;
video/ogg  ogv;
application/ogg  ogx;

Es war ein spannender Weg vom Wälzen der Dokumentationen, der Geschichte der Xiph.Org, MIME-Mappings in Apache und nginx und Android-Quellcode, bis zur Erkenntnis, dass eine Erweiterung der Dateiendungen vor fast 20 Jahren die Grundlage für dieses heutige „Problem“ liefert. Auch interessant ist, wie viele Webserver (von sehr großen Projekten) eigentlich falsch konfiguriert sind. Und eine – mutmaßlich kleine Verbesserung – in Android 15 das Problem erst richtig darstellt.

Reproduktion:

Lade eine .ogg-Datei von (Stand März 2026) Wikimedia oder Wikia mit Android 15+ herunter. Android wird eine Datei im äußerst unüblichen .ogx-Format speichern, mit der doppelter Dateiendung: .ogg.ogx. Vorher ggf. mit Curl oder im Browser validieren ob der Content-Type: application/ogg noch gesendet wird.

Über weitere Hinweise zur Entstehung von .ogx-Dateien freue ich mich in den Kommentaren oder über das Kontaktformular.

Quellen

[1] URLUtil.java via Android GoogleSource
[2] MDN – Configuring servers for Ogg media
[3] RFC 5334 – „Ogg Media Types“ (IETF, 2008): https://www.rfc-editor.org/rfc/rfc5334
[4] RFC 6266 – „Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)“ https://www.rfc-editor.org/rfc/rfc6266
[5] RFC 3533 – „The Ogg Encapsulation Format Version 0“: https://www.rfc-editor.org/rfc/rfc3533
[6] Xiph.Org Wiki – MIME Types and File Extensions: https://wiki.xiph.org/MIME_Types_and_File_Extensions
[7] Drupal Issue #1239376 – MIME Verwechslung
[8] Diskussion bei Wikia – MIME Verwechslung
[9] URLUtil.GuessFileName Microsoft .NET for Android Dokumentation
[10] Android MIME-Type Mapping (via external/mime-support)

Autor: Sören Ramspeck, Entwickler und Inhaber von Online-Umwandeln.de, einem Online-File-Converter in 17 Sprachen mit mehr als 127 Millionen konvertierten Dateien. Über den Autor.

5.0/5(1 Stimme)

Keine Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.


Dateien hier ablegen...