# Offene Punkte Stand 2026-09-09. Sortiert nach Dringlichkeit, nicht nach Aufwand. Erledigtes wandert raus, nicht ins Archiv — die Historie steht in Git. ## Blockiert, bis jemand am Stream-PC sitzt - [ ] **S2 abnehmen.** Der obs-websocket-Client ist gebaut und getestet, soweit es ohne OBS geht: Anmeldeverfahren, Pfadübersetzung, Warten auf die fertige Datei. Ungeprüft ist das tatsächliche Gespräch mit einem laufenden OBS. Bis dahin ist `!clip` nicht bewiesen. - [ ] **Strecke IRC → Datenbank im Livebetrieb.** Die Teile sind einzeln getestet, die Verdrahtung wird erst beim ersten echten Stream sichtbar. - [ ] **Layout umstellen** nach [`obs-layout.md`](obs-layout.md) und danach `calibrate` laufen lassen. ## Bekannte Lücke im Betrieb - [ ] **Aufräumen im Arbeitsordner.** Jede Rohdatei landet unter `work//` und bleibt dort liegen. Bei fünf Clips pro Stream und mehreren hundert MB je Datei läuft das Volume in wenigen Wochen voll. Gebraucht wird eine Aufbewahrungsregel — Vorschlag: Rohdateien der letzten 30 Clips behalten, ältere löschen, sobald `status = 'rendered'`. **Das ist der Punkt, der als Erstes weh tun wird.** - [ ] Was passiert, wenn der Rechner mitten im Rendern ausgeht? Clips bleiben auf `status = 'raw'` stehen und werden nach Neustart nicht wieder eingereiht. ## Untertitel verbessern Der Durchlauf am echten Clip war brauchbar, aber nicht gut. Was auffiel: - [ ] **Größeres Modell testen.** `ggml-small` machte aus „Danke" ein „Dank es" und aus „Sabrina" ein „Savina". `medium` ist etwa dreimal so langsam — bei 30-Sekunden-Clips nach dem Stream ist das egal. Vergleich an demselben Clip fahren und entscheiden. - [ ] **Wörter mit niedriger Wahrscheinlichkeit prüfen.** Whisper liefert je Token ein `p`. Bei den Fehlgriffen lag es unter 0,15, bei korrekten Wörtern über 0,9. Entweder weglassen oder gedimmt anzeigen. - [ ] **Schrift.** DejaVu Sans ist im Image vorhanden, aber unauffällig. Auf Shorts trägt eine fettere, rundere Schrift (Montserrat ExtraBold, Inter Black). Braucht eine Schriftdatei im Image und eine Lizenzprüfung. - [ ] **Nur das aktuelle Wort hervorheben** statt fortlaufend einzufärben. Der heutige Karaoke-Effekt lässt gesprochene Wörter gefärbt stehen; der Stil, der auf TikTok funktioniert, hebt genau ein Wort hervor. Braucht mehrere Dialogzeilen je Zeile statt einer. - [ ] **Position prüfen.** 340 px Abstand nach unten ist geschätzt, nicht gemessen. An einem echten Handy gegen die TikTok-, Reels- und Shorts-Oberfläche halten. - [ ] **Seitliche Ränder gegengeprüft**, aber nur rechnerisch gegen eine gemessene mittlere Zeichenbreite. Bei einer anderen Schrift (siehe Punkt oben) muss `CHAR_WIDTH_RATIO` in `subtitles.ts` neu eingemessen werden — sonst bricht die Zeile wieder an der falschen Stelle. - [ ] **Nur transkribieren, wenn Abdu spricht.** Bei getrennten Tonspuren reicht ein Pegelfilter auf der Mikrofonspur, damit aus Stille kein erfundener Text wird. ## Streamsetup - [ ] **Live-Captions verschieben.** Sie liegen im Gameplay-Band und sind fest eingebrannt. Zwei Vorschläge stehen in [`obs-layout.md`](obs-layout.md). Welche OBS-Quelle sie überhaupt zeichnet, sagt `abdulive sources` — das war vorher unbekannt. - [ ] **Spieluntertitel abschalten.** - [ ] **Bessere Bildquelle für die Facecam** — Plugin `Source Record` oder `Aitum Vertical`. Damit entfällt die 2,25-fache Vergrößerung. Lohnt sich erst, wenn regelmäßig Shorts entstehen. ## Auslieferung - [ ] **Code-Signing.** Das Paket ist nicht signiert, SmartScreen warnt bei jeder Installation vor einem unbekannten Herausgeber. Ein OV-Zertifikat kostet rund 200 EUR im Jahr, ein EV-Zertifikat mehr und braucht Hardware. Solange nur Abdu installiert, reicht ein Klick auf "Trotzdem ausfuehren" - sobald jemand Drittes das Paket bekommt, nicht mehr. - [ ] **CI einmal wirklich laufen lassen.** `.gitea/workflows/release.yml` ist geschrieben, der Runner (`ubuntu-latest`) steht — ausgefuehrt wurde sie aber noch nie. Beim ersten Tag zusehen, ob sie durchlaeuft. - [ ] **Hardware-Encoding.** Der mitgelieferte ffmpeg kann QSV, AMF und NVENC (`--enable-libvpl`, `--enable-amf`, `--enable-ffnvcodec`) - aus WSL2 heraus ging das nicht. `clipper.ffmpeg.encoder` steht weiter auf `libx264`. Auf Abdus Rechner messen, ob `h264_qsv` etwas bringt. ## Nach dem MVP - [ ] **Spitzen-Erkennung scharf schalten.** Sie läuft mit und schreibt jeden Kandidaten samt Punktzahl in `events`. Sobald ein paar Streams protokolliert sind: an echten Daten kalibrieren, dann `armed: true`. - [ ] Automatischer Upload zu TikTok und YouTube. - [ ] EventSub für Follows, Subs, Raids — bisher reicht IRC plus Polling. - [ ] Follower-Prüfung bei `!clip`, falls die Abklingzeiten nicht reichen. - [ ] Die übrigen acht Werkzeuge, siehe [`04-roadmap.md`](04-roadmap.md). ## Kleinigkeiten - [ ] Die Fortschrittsanzeige schreibt `\r`-Zeilen; im Protokoll der Aufgabe sieht das unschoen aus. Beim Umleiten in eine Datei besser unterdruecken.