Hitkanal AutoDJ

Hitkanal AutoDJ

Kanäle

Jeder Kanal sendet auf einen eigenen Ausgang — einen Mount des eigenen Streamservers oder einen externen Icecast — und hat einen eigenen Harbor-Mount für den Moderator.

Streamserver — Mounts

Eigener, VAST-fähiger Streamserver. Hörer verbinden sich per http://SERVER:PORT/mount; Kanäle senden direkt auf einen Mount (Tab „Kanäle" → Ausgang), externe Encoder per Icecast-Protokoll (SOURCE/PUT) mit dem Source-Passwort.

VAST-Werbung — so funktioniert's

Pre-Roll: Beim Verbinden holt der Server je Hörer ein VAST-Dokument, transcodiert das Creative ins Stream-Format und spielt es vor dem Live-Stream. Mid-Roll: Ein Event mit „Werbeblock-Länge" (Tab „Events") oder der Button „Werbeblock testen" startet für jeden Hörer seinen eigenen Spot; der Einspieler des Events ist das Platzhalter-Programm für Hörer ohne Werbung. Impressionen und Quartile werden pro Hörer an den Ad-Server gemeldet.
Mehrere Tags je Mount: Waterfall = Tags in Reihenfolge bis zum ersten Fill, Rotation = gewichtet zufällig bis Fill, „Alle Tags" = jeder Tag wird abgefragt und die Spots werden aneinandergereiht, bis der Block voll ist; liefert ein Tag keine Anzeige (No-Fill, Timeout, Fehler), ist der nächste dran.
Werbezeiten: feste Cron-Zeiten je Mount, Events mit Werbeblock-Länge oder der Test-Button. Optional Jingle vor/nach dem Pod, „nur bei AutoDJ" (nicht bei Live-Moderator/Sondersendung) und ein Hinweiston, der bei Werbeblock-Start in den Kanal gemischt wird, wenn ein Moderator live ist. Statistik (Anfragen, Fills, Spots) und Logs (access.log/error.log) über die Buttons.
Makros in der VAST-URL: {ip}, {ua}, {mount}, {listener}, {kind}/{vpos} (preroll/midroll), {maxdur} (Sekunden), {correlator} (je Hörer-Sitzung konstante Zufallszahl), {description_url} (Referrer, URL-kodiert), [CACHEBUSTING], [TIMESTAMP]. Hörer-IP und User-Agent werden zusätzlich als X-Forwarded-For/User-Agent an den Ad-Server übergeben.
Google Ad Manager: Im Google-Tag [placeholder] bei description_url durch {description_url}, bei correlator durch {correlator} und vpos=preroll durch vpos={vpos} ersetzen — oder im Tag-Editor „Google-Tag einfügen" nutzen, das macht es automatisch.
Referrer: Je Mount (und je Tag überschreibbar) eine gewichtete Liste, aus der pro Ad-Anfrage der Referer/description_url zufällig gezogen wird — z. B. https://partner-a.de 5, https://partner-b.de 2, none 1. Leer = der Original-Referrer des Hörer-Players wird durchgereicht (original auch als Listeneintrag möglich). Ein IP-Speicher merkt sich die Zuweisung je Hörer-IP und Mount für 24 Stunden, sodass dieselbe IP konsistent denselben Referrer bekommt. Mit Liste wird der echte Referer des Players nicht weitergegeben — Quellseiten tauchen so in keiner Ad-Server-Statistik auf.

Gruppen

Eine Gruppe trägt das gemeinsame Musikprogramm (Ordner, Events, Crossfade/No-Repeat). Alle Kanäle einer Gruppe senden dieselbe Musik sample-synchron.

Moderatoren

Globale Moderatoren mit eigenem Login/Passwort. Ein Moderator sendet mit seinen Zugangsdaten (Benutzer + Passwort) auf den Harbor-Mount eines ihm zugeordneten Kanals.

Musikordner (Querbeet) — Gruppe

Gilt für alle Kanäle dieser Gruppe.

Geplante Events — Gruppe

Gemeinsame Einspieler; laufen gruppenweit synchron.

Sondersendungen —

Während einer Sondersendung können sich keine Moderatoren aufschalten.

Metadaten-Blacklist —

Titel, die einen dieser Begriffe enthalten, werden durch den Fallback-Text ersetzt.

Einstellungen —

Admin — Globale Einstellungen

Gilt serverweit für alle Kanäle und Moderatoren.

Erscheint in den Moderatoren-Zugangsdaten. Leer lassen = automatisch aus der Browser-Adresse.

Streamserver — Bind-Adresse

Wird sofort ohne Neustart übernommen; laufende Hörer bleiben verbunden. Hat Vorrang vor stream.host/stream.port in der config.json.

HTTPS-Streams (Let's Encrypt, DNS-01 über Domain-Bestellsystem)

Erweitert (DNS-API)

Domains / Zertifikate

Ablauf: Order bei Let's Encrypt → TXT-Record _acme-challenge.<domain> über die DNS-API setzen → warten, bis die autoritativen Nameserver ihn ausliefern (bis zu 10 Minuten) → Challenge → Zertifikat. Erneuerung automatisch 30 Tage vor Ablauf. Hörer-URL danach https://<domain>:<HTTPS-Port>/mount.

Wird im Tab „Streamserver" und auf der öffentlichen Status-Seite für die Hörer-URLs verwendet. Leer lassen = Browser-Host + Streamserver-Port.

Ohne gültigen Key liefert der Endpunkt 401. Der aktuelle Titel steht nur hier — die öffentliche Status-Seite und /status-json.xsl zeigen ihn nicht.