ZeasyAlexandClaude Opus 5 684f10eb02 S2: obs-websocket, Wiedergabepuffer und der !clip-Ausloeser
Eigener obs-websocket-v5-Client (das Protokoll ist klein genug, und das
Projekt bleibt ohne Abhaengigkeiten). Anmeldung, Wiederverbindung mit
wachsender Pause, Ereignisse fuer ReplayBufferSaved und Szenenwechsel.

Der Clipper loest zwei Wege gleichzeitig aus: OBS-Wiedergabepuffer fuer die
Rohdatei in Aufnahmequalitaet, Twitch-Clip fuer die teilbare URL. Faellt
einer aus, ist der andere trotzdem etwas wert. Ein direkt in OBS gedrueckter
Hotkey wird ohne unseren Umweg erkannt und als vollwertiger Ausloeser
behandelt.

Die Pfaduebersetzung Windows -> Container hat eine eigene Datei und eigene
Tests - das ist die Stelle, an der die Pipeline am ehesten scheitert. Dazu
Warten auf den abgeschlossenen Schreibvorgang, bevor die Datei uebernommen
wird.

Zum Testvektor der OBS-Anmeldung: die Spezifikation nennt Salt und Challenge,
aber kein erwartetes Ergebnis. Der Erwartungswert wurde unabhaengig mit
Pythons hashlib aus derselben Beschreibung gerechnet; der Test sagt das im
Kommentar, statt einen amtlichen Vektor vorzutaeuschen.

29 Tests gruen. Die Abnahme von S2 braucht ein laufendes OBS und steht aus.

Ausserdem: ADR-0006 haelt fest, dass alles unter einem Dach laeuft - eine
lokale Weboberflaeche plus Kindprozesse fuer Rechenarbeit. Die Prozessliste
in der Architekturdoku ist entsprechend ersetzt. Der Onboarding-Assistent
ist als Teil von S5 aufgenommen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VTGjd92LsDDWF3frd9FTB
2026-09-09 10:10:54 +02:00

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

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"
S
Description
No description provided
Readme
2.3 MiB
0 Stars 1 Watchers 0 Forks
2026-10-26 12:04:25 +00:00
Languages
TypeScript 73.9%
JavaScript 11%
HTML 8.3%
CSS 3.3%
PowerShell 2.4%
Other 1.1%