whisper.cpp laeuft ueber die Tonspur und liefert Tokens; daraus werden Woerter mit Zeitstempeln (Wortstuecke wie "Sav"+"ina" wieder zusammengesetzt) und daraus kurze Zeilen im ASS-Format mit wortweiser Hervorhebung. SRT und Transkript fallen nebenbei ab. An einem echten deutschen Clip geprueft. Drei Fehler kamen erst dabei heraus: Zeilen mit einem einzigen Wort bei zoegerndem Sprechen, ein Nachlauf, der in die naechste Zeile ragte (ASS stapelt gleichzeitige Zeilen uebereinander), und ein Uebertragsfehler im Zeitformat bei 59,999 s. Layout wird jetzt VORGEGEBEN statt nachgemessen: ein Vergleich zweier Aufnahmen zeigte, dass die Facecam von Stream zu Stream anders liegt. Das Profil "default" beschreibt die Vorgabe (Facecam 480x270 oben links, Chat ab x=1405, Gameplay-Band 890 breit mittig auf x=960), "bestand-2026-09" haelt den alten Zustand fuer altes Material fest. Dazu eine Ausrichtungsvorlage als Bild, die in OBS ueber die Szene gelegt wird, und docs/obs-layout.md. Befund am echten Clip: im Streambild sind bereits zwei Textebenen eingebrannt (Spieluntertitel und ein Live-Caption-Overlay). Beides ist im Layout-Dokument behandelt. 53 Tests gruen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VTGjd92LsDDWF3frd9FTB
abdulive-toolkit
Werkzeugkasten für den Twitch-Kanal abdulive_. Ein Monorepo mit mehreren kleinen Diensten, die sich einen gemeinsamen Kern teilen: Twitch-Auth, Helix-Client, EventSub/IRC-Ingest und eine SQLite-Datenbank.
TypeScript auf Node 24, ohne Laufzeitabhängigkeiten und ohne Build-Schritt —
Node führt die .ts-Dateien direkt aus, SQLite und WebSocket sind eingebaut.
Betrieb über Docker Compose.
Zielgröße des Kanals: ~5–30 gleichzeitige Zuschauer. Alles hier ist auf diese Phase optimiert — nicht auf Skalierung, sondern auf Wachstum und Bindung.
Die neun Tools
| # | Tool | Ordner | Zweck | Status |
|---|---|---|---|---|
| 1 | Clip-to-Shorts | apps/clipper |
Clips → 9:16 mit Untertiteln, Upload-fertig | geplant |
| 2 | Go-Live-Broadcaster | apps/broadcaster |
Stream-Start → Discord/Bluesky/Instagram | geplant |
| 3 | Raid- & Netzwerk-Tool | apps/raid-scout |
Raid-Ziele finden, Raid-Historie führen | geplant |
| 4 | Analytics-Dashboard | apps/dashboard |
Viewer vs. Chat, Titel-Performance, Retention | geplant |
| 5 | VOD-Kapitel | apps/vod-chapters |
Szenen-/Kategoriewechsel → Timestamps | geplant |
| 6 | Community-Gedächtnis | apps/community |
Chatter-Profile, Begrüßungen, Overlay-Hinweise | geplant |
| 7 | Chat steuert Dinge | apps/overlay-server + apps/overlay-web |
Overlay, Soundboard, Minigames, Umfragen | geplant |
| 8 | Punktesystem + Shop | apps/loyalty |
Punkte mit echten Konsequenzen | geplant |
| 9 | Stream-Recap | apps/recap |
Zusammenfassung nach Streamende in Discord | geplant |
Dazu der Dienst, der unter allen anderen liegt:
| — | Ingest-Daemon | apps/ingest | IRC + Helix → DB, Einrichtungsseite | läuft |
Doku
docs/00-overview.md— Was hier gebaut wird und warumdocs/01-architecture.md— Aufbau, Datenfluss, Prozessedocs/02-twitch-integration.md— Auth, Scopes, EventSub, Rate Limitsdocs/03-data-model.md— Datenbankschemadocs/04-roadmap.md— Reihenfolge und Meilensteinedocs/05-setup.md— Lokal einrichtendocs/06-hebel-analyse.md— Womit anfangen und warumdocs/07-mvp-plan.md— MVP „Clip-Knopf": Umfang, Scheiben, Zeitplandocs/projects/— je ein Spec-Dokument pro Tooldocs/decisions/— Architekturentscheidungen (ADRs)
Schnellstart
Alles läuft in Docker — auf dem Rechner werden nur Docker Desktop und OBS
gebraucht, ffmpeg und whisper.cpp stecken im Image.
Siehe docs/05-setup.md.
Copy-Item config\config.example.yaml config\config.yaml
docker compose build
docker compose run --rm toolkit check-env
docker compose run --rm toolkit fetch-model
docker compose up -d
Dann http://localhost:4792/setup öffnen und die Twitch-Zugangsdaten eintragen. Sie werden verschlüsselt im Docker-Volume abgelegt, nicht in einer Datei im Projekt (ADR-0005).
Aktueller Stand
Scheiben S0 und S1 des MVP „Clip-Knopf" sind fertig: Container-Toolchain,
Einrichtung im Browser, Twitch-Auth, Datenbank und Chat-Aufnahme. Als Nächstes
S2 — OBS-Anbindung und der !clip-Trigger. Fahrplan:
docs/07-mvp-plan.md.
Tests
docker run --rm -v "${PWD}:/app" -w /app node:24-bookworm-slim node --test "packages/**/*.test.ts" "apps/**/*.test.ts"