Aus jeder Partie wird ein Highlight-Video
Beendete Partien werden automatisch in vertikale Highlight-Clips verwandelt und auf YouTube, Instagram und Discord veröffentlicht — dazu ein Livestream vom Brett.

Kurz gesagt
Die dramatischsten Momente von opolyx reisen jetzt über das Spiel hinaus. Wenn eine Partie endet, findet das System ihre besten Momente — ein Sieg in letzter Sekunde, ein Bankrott, eine Bieterschlacht, eine gewaltige Miete — und macht daraus kurze vertikale Clips, die automatisch auf YouTube, Instagram und Discord erscheinen.
Die Clips sind gebrandet und auf einem Handy gut lesbar: das opolyx-Logo oben, der Chat im Brett und der Spielstand darunter. Außerdem läuft ein Livestream von Vorführpartien Bot gegen Bot, von einer echten Sendemaschine aus.
Für technisch Neugierige
Die Grundlage ist ein Lesepfad nur für den Broadcaster. Migration 0036 fügt profiles.broadcaster hinzu und verodert eine is_broadcaster()-Prüfung in die sechs SELECT-Richtlinien der Spieltabellen, was zwei gesperrte Routen freischaltet: /spectate (das laufende Brett) und /replay (eine deterministische Faltung des Ereignisprotokolls durch die Engine).
Eine reine Engine-Funktion bewertet Highlights — Sieg, Bankrott, hohe Miete, Bieterschlacht, Jackpot, Führungswechsel, Handel, Teleport — und wählt die besten sich nicht überschneidenden Fenster. Ein eigener Worker in apps/broadcaster rendert jedes Fenster in einem Chromium ohne Oberfläche, leitet es über ffmpeg in eine mp4, lädt sie in den Speicher hoch und veröffentlicht sie über einen Social-Anbieter plus Discord. Er ist über eine Speicher-Markierung idempotent, der Spiel-Daemon wird also nie berührt.
// engine: scoreHighlights() — pure, deterministic
// win / bankruptcy / big-rent / auction-war / jackpot / lead-change / trade / teleport
// broadcaster: window -> headless Chromium /replay -> ffmpeg -> mp4 -> Storage -> publish
// .done marker = idempotent; daemon untouchedDer Browser ohne Oberfläche meldet sich über den Supabase-Cookie-Codec als Broadcaster an, damit das gesperrte /replay rendert. Eine Auth-Brücke tut dasselbe für den OBS-Browser auf der Sendemaschine, sodass er das laufende /spectate-Brett direkt rendern kann. Vorführpartien werden vorab als erledigt markiert und sind damit aus der Shorts-Verarbeitung ausgeschlossen.
