Live-Ergebnisse und Stream
Live-Ergebnisse
Beim Konfigurieren setzt die Anwendung auf dem Server log on und logaddress_add_http "<LOG_RECEIVER_URL>/api/logs/<match>/<schlüssel>". Der Server schickt seine Logzeilen per HTTP ans Backend. Der Schlüssel ist pro Match und Serverstart zufällig. Zeilen mit falschem Schlüssel werden abgelehnt.
Ausgewertet werden: Matchstart nach der Aufwärmphase, jedes Rundenende mit Sieger und Grund, die Seitenzuordnung und das Spielende.
Angezeigt werden: Live-Stand und Rundenverlauf pro Map, Serienstand, Ergebnisse in der Übersicht.
Nach dem Spielende: Ist die Serie offen, lädt die Anwendung nach SERIES_AUTO_ADVANCE_SECONDS die nächste Map. CS2 wechselt dabei erst, wenn CSTV das Ende übertragen hat. Ist die Serie entschieden, etwa 2:0 in Best of 3, schließt die Anwendung das Match ab. Den Server gibt sie erst nach der CSTV-Verzögerung frei, damit der Stream das Ende zeigt. Siehe CSTV.
Voraussetzung: Der Server muss LOG_RECEIVER_URL erreichen. Ob Daten ankommen, zeigt das Serverpanel des Organisators. Mit LOG_DEBUG=true gibt das Backend alle empfangenen Zeilen aus.
Geprüft mit echten Logzeilen eines CS2-Servers (Wingman). Eine anonymisierte Fassung liegt unter server/test/fixtures/wingman-anonym.log.
Ausgewertet werden nur ganze Systemzeilen nach dem Zeitstempel. Chatzeilen der Spieler können deshalb weder eine Runde noch eine Map beenden, auch wenn jemand den passenden Text eintippt. Siehe Sicherheit.
Zwei Eigenheiten von CS2 berücksichtigt der Parser:
- CS2 sendet
Match_Startschon beim Laden der Map. Gezählt wird erst, wenn der Organisator die Aufwärmphase beendet. - Direkt nach der Halbzeit nennt CS2 zu Rundenbeginn noch die alte Seitenzuordnung. Ausgewertet werden deshalb nur die Zeilen direkt nach einem Rundenende.
Stream-Übersicht aller Matches
Unter /stream zeigt eine 1920×1080-Seite alle laufenden Vetos und Matches, live aktualisiert.
- Karten: eine pro Match. Im Veto zeigt die Karte den Zug und das Map-Board, im Match den Live-Stand und die Seiten.
- Raster: passt sich der Anzahl an (1, 2, 4 oder 6). Bei mehr als 6 Matches blättert die Seite alle 12 Sekunden weiter.
- Unten: offene Lobbys und die Ergebnisse der letzten drei Stunden.
- Einzelnes Match: Ein Klick auf eine Karte öffnet
/stream/match/<matchId>, die Übersicht nur dieses Matches. Der Link enthält keinen Zuschauercode. - Schlüssel: Mit
STREAM_KEYnur über/stream?key=<schlüssel>, sonst offen. Ein Organisator bekommt im Link „Match-Übersicht“ nicht den globalen Schlüssel, sondern einen eigenen, der nur sein Match zeigt (siehe Sicherheit).?bg=transparentmacht den Hintergrund durchsichtig. - Datenschutz: Codes, Verbindungsdaten und Passwörter erscheinen nie.
Beamer-Diashow
Unter /beamer (in der Kopfzeile als „Beamer“ verlinkt) läuft eine Diashow für den Beamer im Saal: ein laufendes Match pro Folie, groß und aus der Ferne lesbar.
- Inhalt: Teams, Serienstand, aktuelle Map mit Rundenstand und CT/T-Symbolen, die Maps der Serie mit Ergebnis. Im Hintergrund das Bild der aktuellen Map.
- Veto: wer gerade bannt oder wählt, und die Maps mit gebannt/gewählt.
- Server startet: welche Map gerade eingerichtet wird.
- Letzte Folie: offene Lobbys („Gleich“) und die Ergebnisse der letzten Stunden. Läuft kein Match, steht dort „Gerade läuft kein Match“.
- Weiterschalten: alle 15 Sekunden, einstellbar mit
?sekunden=20(5 bis 120). Ein roter Balken unten zeigt die Zeit bis zur nächsten Folie. - Bedienung: Klick oder
Fschaltet Vollbild um,←/→blättern, Leertaste hält an. - Schlüssel: mit
STREAM_KEYals/beamer?key=<schlüssel>aufrufen. - Die Seite zeigt nur öffentliche Daten, keine Codes und keine Verbindungsdaten.
Stream-Übersicht eines Matches
Unter /stream/<Zuschauercode> gibt es eine Vollbild-Übersicht für den Stream. Den Link findet der Organisator bei den Einladungen.
- Format: 1920×1080, skaliert auf jede Fenstergröße. In OBS als Browserquelle mit 1920×1080 einbinden.
- Ablauf: wechselt zwischen Lobby, Veto und Match (Spielstand, Rundenverlauf, Map-Leiste).
- Laufband: zeigt nur Ereignisse, die für Zuschauer relevant sind.