Das Repo ist jetzt oeffentlich, die Pakete haengen an der Veroeffentlichung `latest`. Damit funktioniert `abdulive update` ohne Token. - config.example.yaml traegt die gepruefte Update-Adresse - .gitea/workflows/release.yml baut beim Tag und ersetzt `latest` - Byte Order Mark: Notepad und `Set-Content -Encoding utf8` schreiben eines, und ohne Behandlung hiess der erste Schluessel in der config.yaml "\ufeffchannel" - die Einstellung waere stillschweigend ignoriert worden - Der YAML-Leser hatte gar keine Tests; er liest die Konfiguration, an der alles haengt. Jetzt acht. Der Updater ist einmal komplett durchgelaufen: 0.4.0 erkannt, 119 MB geladen, Pruefsumme geprueft, bereitgelegt, von launcher.ps1 getauscht. 93 Tests, Typpruefung sauber. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ
5.2 KiB
5.2 KiB
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
!clipnicht 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.mdund danachcalibratelaufen 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, sobaldstatus = '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-smallmachte aus „Danke" ein „Dank es" und aus „Sabrina" ein „Savina".mediumist 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_RATIOinsubtitles.tsneu 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. Welche OBS-Quelle sie überhaupt zeichnet, sagtabdulive sources— das war vorher unbekannt. - Spieluntertitel abschalten.
- Bessere Bildquelle für die Facecam — Plugin
Source RecordoderAitum 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.ymlist 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.encodersteht weiter auflibx264. Auf Abdus Rechner messen, obh264_qsvetwas bringt.
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, dannarmed: 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.
Kleinigkeiten
- Die Fortschrittsanzeige schreibt
\r-Zeilen; im Protokoll der Aufgabe sieht das unschoen aus. Beim Umleiten in eine Datei besser unterdruecken.