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>
115 lines
6.0 KiB
Markdown
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.
|