API
Alles unter /api antwortet mit JSON, ist offen
erreichbar und braucht keinen Schlüssel.
Sender und Stile
GET /api/stations
Liefert alle Sender mit Stream-Adresse, stabiler Adresse und Titelzahl, dazu die Liste der Stilrichtungen.
Was gerade läuft
GET /api/now
GET /api/now/:sender
Der laufende Titel eines Senders mit Kennung, Seed, Tempo und Tonart.
Live mitverfolgen
GET /api/now-stream?station=classic
Ein Server-Sent-Events-Strom. Bei jedem Titelwechsel kommt ein Ereignis
now mit demselben Objekt wie oben. Genau das benutzt die Overlay-Seite.
const es = new EventSource('/api/now-stream?station=classic');
es.addEventListener('now', e => console.log(JSON.parse(e.data).title));
Bibliothek
GET /api/tracks?style=rap,jazzhop&q=rain&page=0&limit=30
GET /api/tracks/:id
Die Einzelabfrage liefert zusätzlich Seed, Merkmale und Generator-Fassung.
Eigene Mischung
GET /api/mix?styles=rap,acoustic&limit=150
GET /mix.m3u?styles=rap,acoustic
GET /mix.pls?styles=rap,acoustic
Die beiden Playlist-Formate spielen VLC und die VLC-Quelle in OBS direkt ab.
Öffentliche Playlist
GET /api/p/:token
GET /p/:token.m3u
Zustand des Generators
GET /api/status
Sagt, ob gerade neue Songs entstehen (generating), ob die Rechenleistung
dafür fehlt (paused_load), ob die Bibliothek voll ist (complete)
oder ob der Generator steht (stopped).
Grenzen
- Die Audio-Adressen unter
/audio/dienen der Wiedergabe. Ein Download der Dateien ist nicht vorgesehen, siehe Lizenz. - Schreibende Endpunkte (Konto, Favoriten, Playlists) sind rate-limitiert und brauchen eine Sitzung.
- Bitte kein Dauerabruf im Sekundentakt. Für Titelwechsel gibt es den SSE-Strom.