LiveSL-01
Ein Ein-Personen-Produkt durch die Prüfung von WordPress.org bringen
AudioLinter prüft Podcast- und Sprachaufnahmen auf gleichmäßige Lautstärke und repariert sie mit einem Klick, direkt in WordPress. Ich habe das Produkt allein gebaut und betreue es selbst, bis heute mit 36 Versionen. Der schwierigste Teil war nicht der Ton. Es war die Prüfung, die jede Erweiterung bestehen muss, bevor sie ins offizielle WordPress-Verzeichnis darf.
Projekt ansehen
SL-01Live
AudioLinter
353 · Downloads über das WordPress-Verzeichnis
~7 · Tage bis zur Freigabe im Verzeichnis
Belegte Zahlen
- Downloads über das WordPress-Verzeichnis
- 353Quelle: wordpress.org/plugins, Stand 24.08.2026
- Tage bis zur Freigabe im Verzeichnis
- ~7Quelle: Review-Verlauf WordPress.org, Juli 2026
- Ausgelieferte Versionen
- 36Quelle: CHANGELOG.md und wordpress.org, Stand 11.08.2026 (v1.0.36)
- Programmteile, die im Hintergrund zusammenarbeiten
- 8Quelle: docker-compose.prod.yml, Stand 11.08.2026
- Dateien mit automatischen Tests
- 140Quelle: Projektcode, Stand 11.08.2026
Ausgangslage
Wer Podcasts über WordPress veröffentlicht, merkt Probleme mit der Lautstärke oft erst, wenn Hörer sich beschweren. Eine Folge ist zu leise, die nächste zu laut, dazwischen liegen Sekunden Stille. Prüfen lässt sich das nur in einem eigenen Tonprogramm. Man muss die Datei also aus WordPress herausholen und danach wieder hochladen. Diesen Umweg sollte es nicht mehr geben.
Ergebnis
Ein laufender Dienst, der im offiziellen WordPress-Verzeichnis steht und darüber auch aktualisiert wird. Bis heute sind 36 Versionen erschienen. Vor der Aufnahme prüfen Fremde das Programm, unter anderem auf Sicherheit. Diese bestandene Prüfung ist der beste Nachweis für die Qualität des Projekts.
Das Problem war der Umweg, nicht die Prüfung
Die Lautstärke einer Aufnahme zu prüfen, ist kein neues Problem. Dafür gibt es seit Jahren Programme. Ungelöst war der Weg dorthin. Wer eine Podcast-Folge in WordPress hochlädt, müsste sie wieder herunterladen, in einem Tonprogramm öffnen, prüfen, korrigieren, speichern und neu hochladen. Bei einer Folge pro Woche lässt man das irgendwann einfach weg.
Ich habe deshalb keine bessere Prüfung gebaut. Ich habe die vorhandene Prüfung dorthin gebracht, wo die Datei ohnehin liegt.
Warum im Hintergrund acht Programmteile laufen
Eine WordPress-Erweiterung kann selbst keinen Ton verarbeiten. Dafür fehlt auf den meisten Websites die Rechenleistung, und eine Website darf nicht minutenlang auf eine Antwort warten. Die Erweiterung ist deshalb nur der Schalter. Die Arbeit passiert auf einem eigenen Rechner.
Dort wird jede Datei zuerst entgegengenommen und gespeichert. Dann prüft ein Virenscanner sie, denn es sind fremde Dateien von fremden Websites. Erst danach wird sie untersucht und repariert. Das läuft im Hintergrund, damit niemand warten muss.
Für Kenner: die acht Dienste
Eine FastAPI-Schicht nimmt den Upload entgegen, prüft API-Schlüssel und Kontingent und legt die Datei in einem S3-kompatiblen Objektspeicher ab. ClamAV scannt sie. Analyse und Reparatur laufen asynchron in einem Celery-Worker mit FFmpeg. Postgres hält Schlüssel, Kontingente und Sitzungsdaten, Redis ist Queue und Cache, Traefik terminiert TLS.
Für ein Nebenprojekt wünscht man sich so viel Technik nicht. Sie ergibt sich aus der Aufgabe. Jeder dieser Teile löst ein bestimmtes Problem, keiner ist zum Spaß da.
Die eigentliche Hürde war WordPress.org
Am meisten über die Arbeit sagt nicht die Tonverarbeitung. Es ist die Aufnahme ins offizielle Verzeichnis von WordPress. Dort prüft ein Team, das man nicht kennt, das ganze Programm. Es sucht nach Sicherheitslücken und schaut, wer was darf.
Die Prüfer haben Dinge gefunden, die ich selbst nicht gesehen hatte. Die Vorbereitung darauf hat weitere ans Licht gebracht. Sie stehen mit Namen in der öffentlichen Versionsliste. Eine Prüfung schaute nur, ob jemand etwas hochladen darf, aber nicht, ob er den einzelnen Beitrag bearbeiten darf. Meldungen des Dienstes wurden ungeprüft in die Seite geschrieben. Und Zugangsschlüssel standen lesbar im Formular. Sie wären also auf jedem Bildschirmfoto zu sehen gewesen.
Diese Einträge sind öffentlich, weil eine Versionsliste dafür da ist. Wer eine Sicherheitslücke still behebt, nimmt seinen Nutzern die Möglichkeit zu beurteilen, ob sie betroffen waren.
Was 36 Versionen bedeuten
Neue Versionen kommen über dasselbe Verzeichnis, über das WordPress alle Aktualisierungen verteilt. Jede Version landet also auf Websites, die schon laufen. Eine kaputte Version macht fremde Websites kaputt.
Genau das ist einmal passiert. In Version 1.0.27 kam beim Aufräumen ein Fehler ins Programm. Bei allen, die eine bestimmte Benachrichtigung eingerichtet hatten, ließ er den ganzen Verwaltungsbereich von WordPress abstürzen. Gefunden habe ich ihn erst zwei Versionen später. Der Eintrag dazu nennt die betroffenen Versionen und die Ursache. Er empfiehlt, sofort zu aktualisieren.
Schön ist das nicht. Aber auf den ehrlichen Umgang damit kommt es an. Wer 36 Versionen herausgibt, liefert irgendwann eine schlechte. Entscheidend ist, ob die Nutzer erfahren, was los war.
Was hier nicht steht
Nutzerzahlen. Das Verzeichnis nennt derzeit weniger als zehn aktive Installationen. Das ist kein Verkaufsargument, und ich mache auch keines daraus. Dieses Projekt zeigt etwas anderes: Eine Person kann einen vollständigen Dienst mit Virenscanner und Abrechnung bauen, durch eine fremde Prüfung bringen und über Monate pflegen.
Häufige Fragen
- Was prüft AudioLinter genau?
- Die Lautstärke, und zwar nach dem Standard, an den sich Radio und Streaming-Dienste halten (EBU R128). AudioLinter misst, wie laut eine Aufnahme im Schnitt ist, wie hoch die lautesten Stellen ausschlagen, wie stark die Lautstärke schwankt und wo längere Stille liegt. Auffälliges lässt sich in einem Schritt beheben, ohne die Datei aus WordPress herauszuholen.
- Warum ist die Aufnahme ins WordPress-Verzeichnis erwähnenswert?
- Weil dort Fremde prüfen. Das Team von WordPress sucht unter anderem nach Sicherheitslücken. Es prüft auch, wer was darf und ob sich die Erweiterung übersetzen lässt. Was dort steht, hat also jemand anderes als der Autor angesehen. Über dasselbe Verzeichnis kommen später auch alle neuen Versionen.
- Warum stehen in der Versionsliste eigene Sicherheitsfehler?
- Weil sie dort hingehören. Ein Beispiel: Eine Prüfung schaute nur, ob jemand auf der Website etwas hochladen darf. Sie schaute nicht, ob er den einzelnen Beitrag bearbeiten darf. Ein anderes: Zugangsschlüssel standen lesbar im Formular. Beides ist behoben. Wer solche Fehler still behebt, nimmt seinen Nutzern die Möglichkeit einzuschätzen, ob sie betroffen waren.
- Warum braucht eine Erweiterung so viel Technik im Hintergrund?
- Weil die Prüfung nicht auf der Website des Kunden laufen kann. Ton zu verarbeiten braucht viel Rechenleistung und dauert länger, als eine Website warten sollte. Deshalb schickt die Erweiterung die Datei an einen eigenen Dienst. Dort wird sie gespeichert, auf Viren geprüft und dann verarbeitet. Insgesamt arbeiten dafür acht Programmteile zusammen.