Wer einen eigenen Musikserver aufsetzen will, landet bei der Recherche fast immer bei Navidrome. Zu Recht: Der Server ist leichtgewichtig, läuft auf einem Raspberry Pi und wird aktiv entwickelt. Das eigentlich Interessante an Navidrome ist aber gar nicht Navidrome selbst, sondern das Protokoll, das es spricht: die Subsonic-API. Sie ist der Grund, warum die Wahl des Servers und die Wahl der App zwei getrennte Entscheidungen sind. Wer den Server wechselt, behält die App. Wer die App wechselt, behält den Server.
Dieser Beitrag sortiert, was diese API eigentlich ist, was sie garantiert, was nicht und woran du im Alltag merkst, dass zwei „Subsonic-kompatible“ Server eben doch nicht identisch sind.
Kurze Antwort
- Die Subsonic-API ist das REST-artige Protokoll des ursprünglichen Subsonic-Servers. Der letzte offizielle Stand ist Version 1.16.1.
- Navidrome, Gonic, Airsonic-Advanced, Ampache und weitere Server implementieren sie unabhängig voneinander. Deshalb funktioniert dieselbe App mit allen.
- Garantiert sind die Grundlagen: Bibliothek durchsuchen, streamen, Playlists, Scrobbling-Meldungen.
- Nicht garantiert sind die Details: Transcoding-Formate, Playlist-Speicherung, Scrobbling-Ziele, moderne Anmeldung.
- OpenSubsonic ist die Community-Weiterentwicklung, die diese Lücken schrittweise und abwärtskompatibel schließt.
- Auf dem iPhone heißt das: Die App wählst du nach deinem Alltag, nicht nach dem Server. CLAUDIO, meine eigene App, spielt Navidrome und andere Subsonic-Server neben Jellyfin, Audiobookshelf und NAS-Freigaben in einer Bibliothek ab. Eigene Server brauchen dort Ultra (Abo) oder einmalig Pro+.
Woher die API kommt
Subsonic war ein Medienserver aus der Zeit vor Spotify: selbst gehostete Musik, Weboberfläche, Apps für unterwegs. Damit Drittanbieter-Apps mit dem Server reden können, gab es eine dokumentierte REST-Schnittstelle: Anfragen als HTTP-Aufrufe, Antworten als XML oder JSON. Die letzte Version der offiziellen API ist 1.16.1, ausgeliefert mit Subsonic 6.1.4. Danach passierte beim Original wenig; der Server selbst verlangte für den API-Zugriff irgendwann eine Premium-Lizenz.
Die API überlebte ihren Server. Weil sie dokumentiert, schlicht und über Jahre stabil war, entstanden freie Neuimplementierungen, erst als direkte Forks, später als komplette Neuentwicklungen. Die Stammlinie der Forks lässt sich bis heute nachzeichnen: Subsonic wurde zu Libresonic, Libresonic zu Airsonic, und daraus entstand Ende 2019 Airsonic-Advanced. Navidrome und Gonic teilen dagegen keine Zeile Code mit dem Original; sie implementieren nur dasselbe Protokoll.
Wer sie heute spricht
Die Liste ist länger, als man denkt. Die bekanntesten Server:
- Navidrome ist der populärste Vertreter, sparsam mit Ressourcen, mit Transcoding, Smart Playlists und Scrobbling zu Last.fm und ListenBrainz.
- Gonic: eine bewusst schlanke Implementierung in Go, mit Transcoding über ffmpeg und Playlists als M3U-Dateien.
- Airsonic-Advanced, der aktiv gepflegte Zweig der Fork-Linie, ist Java-basiert und bringt Podcast- und Chromecast-Funktionen mit.
- Ampache gibt es als Web-Streaming-Projekt seit 2001. Es hat eine eigene API und bietet die Subsonic-API zusätzlich an, kompatibel zu Version 1.16.1.
Dazu kommen laut der OpenSubsonic-Dokumentation unter anderem Nextcloud Music, LMS und Supysonic. Auf der Client-Seite steht die gleiche Vielfalt: von Amperfy über Symfonium bis Feishin, dazu auf iOS die Apps, die ich im Navidrome-Beitrag verglichen habe. Genau diese Matrix ist der Punkt: Jede App aus der einen Liste funktioniert grundsätzlich mit jedem Server aus der anderen.
Was die API abdeckt und was nicht
Der garantierte Kern ist überschaubar und genau deshalb robust. Die API definiert Endpunkte zum Durchsuchen der Bibliothek (nach Ordnerstruktur oder nach ID3-Tags), zum Streamen und Herunterladen von Titeln, zum Anlegen, Ändern und Löschen von Playlists, zum Melden gespielter Titel („Scrobbling“) und zur Suche über Interpret, Album und Titel. Antworten kommen als XML oder JSON, die Anmeldung läuft seit API 1.13.0 über ein Token-Verfahren: Die App bildet einen MD5-Hash aus Passwort und einem zufälligen Salt, statt das Passwort im Klartext zu schicken.
Was die API nicht festlegt, ist mindestens so wichtig:
- Wie ein Server transkodiert. Der Stream-Endpunkt kennt Parameter für Bitrate und Zielformat. Ob und wie der Server sie erfüllt, ist aber Sache der Implementierung.
- Wo Playlists liegen. Die API beschreibt die Operationen, nicht die Speicherung.
- Wohin Scrobbles gehen. Die App meldet nur „dieser Titel wurde gespielt“. Ob daraus ein Eintrag bei Last.fm oder ListenBrainz wird, entscheidet der Server.
- Vieles, was moderne Apps brauchen: Songtexte, Cover in mehreren Auflösungen, sichere Anmeldeverfahren. Dafür gibt es OpenSubsonic.
OpenSubsonic: der lebende Teil des Standards
Weil das Original seit Version 1.16.1 stillsteht, haben sich Server- und Client-Projekte auf eine gemeinsame Weiterentwicklung geeinigt: OpenSubsonic. Die Spezifikation erweitert die alte API, ohne sie zu brechen. Ein OpenSubsonic-Server funktioniert weiter mit alten Apps, eine OpenSubsonic-App weiter mit alten Servern.
Der Mechanismus dahinter ist ein einzelner neuer Endpunkt: getOpenSubsonicExtensions. Darüber sagt ein Server, welche Erweiterungen er beherrscht, und die App passt sich an. Die Dokumentation listet derzeit 28 Erweiterungen, darunter Anmeldung per API-Schlüssel statt des alten MD5-Verfahrens, Songtexte über eigene Endpunkte und genauere Meldungen zur Wiedergabe. Jede Erweiterung ist optional, und welcher Server was davon kann, unterscheidet sich.
Woran du Unterschiede in der Praxis merkst
„Subsonic-kompatibel“ heißt: Der gemeinsame Kern funktioniert. An vier Stellen zeigt sich trotzdem, welcher Server tatsächlich läuft.
Transcoding. Navidrome transkodiert on the fly und lässt sich pro Person und pro abspielendem Gerät konfigurieren, inklusive Opus als Zielformat. Gonic transkodiert ebenfalls, setzt dafür aber ein installiertes ffmpeg voraus. Wer unterwegs mit gedrosselter Bitrate streamen will, merkt hier zuerst, welcher Server antwortet und ob er richtig konfiguriert ist.
Playlists. Gonic legt Playlists als M3U-Dateien im Dateisystem ab; andere Server halten sie in ihrer Datenbank. Für die App ist das unsichtbar. Es entscheidet aber darüber, ob andere Programme dieselben Playlists mitlesen können und was ein Serverwechsel mitnimmt.
Scrobbling. Navidrome und Gonic leiten Wiedergabe-Meldungen an Last.fm und ListenBrainz weiter, wenn das serverseitig eingerichtet ist. Manche Apps scrobbeln stattdessen direkt am Server vorbei. Wer sich wundert, warum Plays doppelt oder gar nicht ankommen, sucht an dieser Naht.
Anmeldung und API-Varianten. Das klassische Token-Verfahren stammt aus einer anderen Zeit; OpenSubsonic bringt API-Schlüssel als Alternative. Wie unterschiedlich Implementierungen sein dürfen, zeigt Ampache: Version 8 antwortet standardmäßig im OpenSubsonic-Stil und bietet einen Schalter für die alten Subsonic-1.16.1-Antworten, gedacht für Apps, die mit den Erweiterungen nicht rechnen.
Was das für dein Setup bedeutet
Die praktische Konsequenz ist Gelassenheit. Du kannst mit Navidrome anfangen und später auf Gonic umsteigen, weil dir der Ressourcenverbrauch wichtiger wird. Die App auf dem Handy bleibt dabei dieselbe, nur die Server-URL ändert sich. Oder du behältst den Server und probierst Apps durch, bis eine passt. Server und Client sind über die API entkoppelt; keine der beiden Entscheidungen sperrt dich ein.
Welche iOS-App zu welchem Setup passt, vergleicht der Navidrome-Beitrag im Detail. Wenn du die Entkopplung bis aufs Handy ziehen willst, ist CLAUDIO die naheliegende Wahl. Mein Player mit Fokus auf Datenschutz behandelt Subsonic-kompatible Server als eine Quelle neben Jellyfin, Audiobookshelf, NAS-Freigaben und lokalen Dateien. Selbst wenn du die Subsonic-Welt ganz verlässt und von Navidrome zu Jellyfin wechselst, bleibt die App dieselbe, und nur die Quelle ändert sich. Favoriten gleichen sich mit Navidrome in beide Richtungen ab. Gespielte Titel meldet CLAUDIO einmal je Wiedergabe an Navidrome- und Subsonic-Server, und leitet der Server an Last.fm oder ListenBrainz weiter, kommen sie auch dort an. Eigene Server brauchen Ultra (Abo) oder Pro+ (Einmalkauf); lokale Dateien und iCloud Drive sind kostenlos.
FAQ
Funktioniert jede Subsonic-App mit jedem Subsonic-Server? Der gemeinsame Kern ja: durchsuchen, streamen, Playlists, Scrobbling-Meldungen. Unterschiede zeigen sich bei Transcoding, Erweiterungen und Anmeldeverfahren.
Ist OpenSubsonic ein neues Protokoll? Nein, eine abwärtskompatible Erweiterung. Server melden über getOpenSubsonicExtensions, was sie zusätzlich können; alles andere bleibt wie gehabt.
Muss ich beim Serverwechsel meine App neu einrichten? Nur die Verbindung: neue URL, neue Zugangsdaten. Offline-Downloads und app-seitige Einstellungen hängen von der jeweiligen App ab.
Brauche ich den originalen Subsonic-Server noch? Für ein neues Setup gibt es wenig Gründe. Die freien Implementierungen decken die API ab und werden aktiv weiterentwickelt.
Weiterlesen
Welche iOS-App zum Server passt? → Navidrome auf dem iPhone: Die besten iOS-Apps Musik liegt direkt auf dem NAS, ganz ohne Server-Software? → Musik vom NAS auf dem iPhone Warum überhaupt selbst hosten? → Musik-Player ohne Tracking
Quellen
- Subsonic: API-Dokumentation (Endpunkte, Token-Anmeldung, Versionsregeln, Stand 1.16.1)
- OpenSubsonic: Spezifikation und API-Dokumentation (Erweiterungen,
getOpenSubsonicExtensions, beteiligte Server und Clients) - Navidrome: Overview (Subsonic-Kompatibilität, Transcoding, Scrobbling)
- GitHub: Gonic (Transcoding via ffmpeg, M3U-Playlists, Scrobbling)
- GitHub: Airsonic-Advanced (Fork-Historie Subsonic → Libresonic → Airsonic → Airsonic-Advanced)
- Ampache: Projektseite und Subsonic-API-Dokumentation (eigene API plus Subsonic 1.16.1, OpenSubsonic ab Ampache 7)
Offenlegung: Ich entwickle CLAUDIO, einen Audio-Player mit Fokus auf Datenschutz, der unter anderem Subsonic-kompatible Server als Quelle unterstützt. Dieser Beitrag beschreibt die API und die Server-Landschaft; für den App-Vergleich siehe den Navidrome-Beitrag.