Files
abdulive/docs/offene-punkte.md
ZeasyAlexandClaude Opus 5 e87879de9e Uebergabe auf den aktuellen Stand
Stand 2026-09-15. Der Discord-Server ist dazugekommen, der Rest ist
unveraendert: S2 wartet weiter auf ein laufendes OBS.

- Neuer Abschnitt "Der Discord-Server steht": was da ist, und dass die drei
  Webhooks fuer Broadcaster, Recap und Clipper bereitliegen. Wer diese
  Werkzeuge baut, muss nur noch posten.
- Neuer Abschnitt "Discord: was gemessen ist", nach dem Vorbild der
  Windows-Fallen. Vier Dinge, die nicht in der Doku stehen, in der man
  zuerst sucht: das Limit von zwei Umbenennungen je zehn Minuten, die
  Rangfolge-Regel hinter dem irrefuehrenden "Missing Permissions", die
  Schwelle fuer Onboarding und die Namensnormalisierung.
- Zwei Handgriffe fuer Abdu ergaenzt: sich selbst die Rolle geben, und den
  Einladungslink verteilen. An Letzterem haengt, ob der Server ueberhaupt
  jemanden bekommt.
- Ehrlich dazugeschrieben, was offen ist: der Knopf haengt am Daemon, und
  der Bot ist nie unter Last gelaufen.
- Der Hinweis auf die zwei Remotes, damit sie nicht auseinanderlaufen.
- 93 -> 162 Tests.

offene-punkte.md bekommt einen Discord-Abschnitt, die Roadmap den Hinweis,
dass die Discord-Seite von M3 schon steht.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 22:05:03 +02:00

115 lines
6.0 KiB
Markdown

# 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/<clipId>/`
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.
## Discord
- [ ] **Den Bot unter Last sehen.** Gleichzeitige Klicks auf den Rollen-Knopf
sind nie vorgekommen, ebenso wenig eine Laufzeit über Tage. Die
Gateway-Verbindung kann fortsetzen und wiederverbinden, aber beides ist
nur gegen einen nachgebauten Server geprüft.
- [ ] **Onboarding einschalten, sobald der Server groß genug ist.** Discord
verlangt sieben Vorgabekanäle mit fünf beschreibbaren, wir haben fünf und
drei. Die Frage liegt fertig auf dem Server, nur ausgeschaltet. Dann
könnte der Knopf entfallen und mit ihm die Gateway-Verbindung.
- [ ] **Twitch-Konto unter Integrationen verbinden**, damit Subs automatisch
eine Rolle bekommen.
- [ ] **Stammgast automatisch vergeben.** Bisher von Hand. Die Daten dafür
liegen längst in der Datenbank, es fehlt die Brücke zwischen
Twitch-Konto und Discord-Konto.
## 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.