Files
abdulive/docs/projects/vod-chapters.md
T
ZeasyAlexandClaude Opus 5 d09e2b945a Struktur, Doku und S0-Toolchain fuer das abdulive-Toolkit
Monorepo-Geruest fuer neun Streamer-Tools plus den Ingest-Daemon, der
unter sechs davon liegt. Enthaelt:

- docs/: Ueberblick, Architektur, Twitch-Integration, Datenmodell,
  Roadmap, Setup, Hebel-Analyse und den MVP-Plan "Clip-Knopf"
- docs/projects/: je eine Spezifikation pro Tool
- docs/decisions/: vier ADRs (TS-Monorepo, SQLite, EventSub/IRC, Docker)
- docker/: Image mit ffmpeg und whisper.cpp, abhaengigkeitsfreier
  Entrypoint mit check-env, fetch-model und calibrate
- config/layout.yaml: aus einem VOD-Screenshot eingemessener
  Facecam-Ausschnitt (440x330 oben links, Chat-Overlay ab x=1270)

Noch kein Anwendungscode - Scheibe S0 aus docs/07-mvp-plan.md.

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

2.0 KiB

5 — VOD-Kapitel (apps/vod-chapters)

Wirkrichtung: Steuerung und ein wenig Reichweite (YouTube-Zweitverwertung).

Was aufgezeichnet wird

Während des Streams sammelt der Ingest ohnehin schon:

Signal Quelle wird Kapitel?
Kategoriewechsel EventSub channel.update immer
Titelwechsel EventSub channel.update wenn Kategorie gleich bleibt
OBS-Szenenwechsel obs-websocket nur bei Szenen aus der Whitelist
Stream-Marker POST /helix/streams/markers immer
erstellter Clip clips als Kapitel-Kandidat

OBS-Szenen sind das rauschendste Signal — ein Wechsel auf "BRB" und zurück sind zwei Wechsel, die kein Kapitel sind. Deshalb Whitelist in config/obs-scenes.yaml plus Mindestabstand von 5 Minuten zwischen Kapiteln; kürzere Segmente werden mit dem vorherigen verschmolzen.

Ausgabe

Nach stream.offline: VOD über GET /helix/videos?user_id=&type=archive&first=1 holen, Zeitstempel relativ zu streams.started_at umrechnen, Text erzeugen:

00:00 Start & Begrüßung
00:14 Elden Ring — Malenia, Versuch 40
01:32 Pause
01:47 Elden Ring — sie ist tot
02:55 Just Chatting — Community-Fragen

Format wählbar: Twitch-VOD-Beschreibung, YouTube-Kapitel (identisch, muss aber bei 00:00 beginnen und mindestens drei Einträge mit je mindestens 10 s haben, sonst zeigt YouTube keine Kapitel an), Discord-Nachricht.

Twitch erlaubt kein Setzen der VOD-Beschreibung über die API — der Text landet deshalb in data/vods/<datum>/chapters.txt und wird per Push-Nachricht zugestellt, plus als Block im Recap-Post. Einfügen dauert zehn Sekunden.

Kapitel-Titel

Der Rohtitel ist der Twitch-Titel bzw. der Kategoriename. Optional (Ausbaustufe 2) eine Verdichtung aus dem Chat: die häufigsten Substantive im Segment als Zusatz. Erst sinnvoll, wenn genug Chat-Volumen da ist.

Abnahmekriterien

  • Ein Testtream mit zwei Kategoriewechseln und drei Szenenwechseln erzeugt genau die erwarteten Kapitel.
  • Zeitstempel weichen vom VOD um weniger als 5 s ab.
  • Kein Kapitel unter 5 Minuten Länge.