# Kopie als config/config.yaml anlegen. Secrets gehoeren in .env, nicht hierher. channel: login: abdulive_ userId: "" # wird beim ersten `pnpm auth` gefuellt language: de timezone: Europe/Berlin bot: login: abdulive_bot ingest: viewerPollSeconds: 60 chattersPollSeconds: 300 sessionGapMinutes: 5 # kuerzere Luecken gelten als derselbe Stream spike: windowSeconds: 15 baselineMinutes: 10 factor: 3 minDelta: 4 cooldownSeconds: 60 armed: false # erst nach Kalibrierung auf true laughEmotes: [KEKW, LUL, OMEGALUL, PogChamp, Pog] # Woher `abdulive update` neue Fassungen holt. Erwartet wird dort # `abdulive.json` und die darin genannte ZIP-Datei. # # Leer = keine automatischen Updates. Liegt die Adresse hinter einer # Anmeldung (privates Gitea), gehoert der Zugriffstoken NICHT hierher, # sondern auf die Einrichtungsseite - siehe ADR-0005. update: url: "https://git.zeasy.dev/ZeasyAlex/abdulive/releases/download/latest" obs: url: ws://127.0.0.1:4455 replayBufferSeconds: 90 chapterScenes: [Gameplay, "Just Chatting", Startbildschirm] clipper: enabled: true source: obs-replay # obs-replay | twitch alsoCreateTwitchClip: true # Aus dem 90-Sekunden-Puffer werden die letzten Sekunden genommen - # dort liegt der Moment, der die Ausloesung verursacht hat. tailSeconds: 45 renderWhileLive: false # true = sofort rendern, false = erst nach Streamende audio: # OBS nimmt getrennte Spuren auf. Untertitel entstehen NUR aus dem Mikrofon - # Spielton im Transkript macht Whisper unbrauchbar. Die Spur im fertigen # Video bleibt die Mischung. transcribeTrack: 2 # OBS-Spur mit dem Mikrofon outputTrack: 1 # OBS-Spur mit der Mischung (kommt ins Short) whisper: binary: whisper-cli # whisper.cpp, im Image enthalten model: ggml-small.bin language: de threads: 4 ffmpeg: preset: veryfast crf: 20 encoder: libx264 # keine NVIDIA-GPU da, QSV aus WSL2 unzuverlaessig niceness: 15 # Encoding laeuft nachrangig zum Stream # Abklingzeiten sind nicht optional: ohne sie ist !clip nach zwei Streams aus. cooldownGlobalSeconds: 60 cooldownUserSeconds: 300 followersOnly: false triggers: chatCommand: "!clip" onSpike: false # erst nach Kalibrierung der Spitzen-Erkennung # Der Hotkey wird in OBS auf "Wiedergabepuffer speichern" gelegt. Es gibt # bewusst keinen eigenen Hotkey-Dienst - siehe ADR-0004, Punkt 4. broadcaster: enabled: true mode: draft # draft | live delaySecondsAfterOnline: 60 cooldownHours: 6 platforms: discord: true bluesky: true mastodon: false instagramStoryImage: true community: greetings: enabled: true minSecondsBetween: 20 maxPerStream: 10 returningAfterDays: 21 milestones: [5, 10, 25, 50, 100] suppressWhileStreamerSpeaking: true overlayHint: true raidScout: minViewers: 5 maxViewers: 30 minUptimeMinutes: 30 maxUptimeMinutes: 300 languages: [de] topN: 5 recap: enabled: true delayMinutesAfterOffline: 10 minStreamMinutes: 20 hideViewerNumbersIfWeak: true topChatters: 3 topClips: 2 loyalty: enabled: false # spaetere Ausbaustufe overlay: port: 4791 dashboard: port: 4792 ingestServer: port: 4790