SIMONEAPI PUBLIC API · v1.0

NOW PLAYING · JSON · CORS

SimOne Playout API

Öffentliche, rein lesende Metadaten für Websites, Apps und Widgets – inklusive Laut.fm-naher Kompatibilitätsendpunkte.

Schnellstart

const response = await fetch(
  "http://localhost:7000/api/v1/station/simone/now-playing",
  { cache: "no-store" }
);
const data = await response.json();
console.log(data.current.artist, data.current.title);
Kein API-Key erforderlich. Standardmäßig sind 300 Anfragen pro IP und Minute möglich.

Empfohlene API v1

GET/api/v1/station/simone

Kompletter Stationszustand mit aktuellem und nächstem Titel, fünf vorbereiteten Titeln und Historie.

GET/api/v1/station/simone/now-playing

Kompakte Antwort für Player, Titelanzeige und Fortschrittsbalken.

GET/api/v1/station/simone/history?limit=10

Letzte Titel in absteigender Reihenfolge. Erlaubt sind 1 bis 100 Einträge.

Laut.fm-nahe Endpunkte

Diese Pfade passen zu den Aufrufen, die das vorhandene Projekt Radio Homepage bereits verwendet.

GET/api/station/simone

Stationsdaten

GET/api/station/simone/current_song

Aktueller Titel

GET/api/station/simone/last_songs?limit=8

Titelhistorie

Wichtige Felder

PLAYOUTmode

auto, assist oder live

TRACKcurrent / next

Titel, Interpret, Typ, Cover und Deck

TIMINGprogress_percent

Start, Ende, Dauer, Restzeit und Fortschritt

STREAMstream_connected

Konfiguration und aktueller Encoderstatus

Homepage später verbinden

Im Flask-Projekt kann die bisherige Laut.fm-Basis-URL durch die SimOne-Kompatibilitäts-URL ersetzt werden:

RADIO_METADATA_API = "https://playout.example.de/api/station/simone"

current_raw = requests.get(
    f"{RADIO_METADATA_API}/current_song", timeout=8
).json()
history_raw = requests.get(
    f"{RADIO_METADATA_API}/last_songs?limit=8", timeout=8
).json()

Die bestehende Funktion normalize_lautfm_song() kann weiterverwendet werden.

Produktion und Sicherheit

Die vollständige Entwicklerreferenz befindet sich im Projekt unter docs/API.md.