Changelog

What's shipped recently

A running list of pipeline releases. The version number tracks the recorder service; the dashboard, renderer, and publisher all release together as one unit.

v3.6
Latest

Absolute scoring

  • Virality is now an absolute 0–100 metric, not a relative one. Boring segments produce zero clips — the pipeline never publishes filler to fill a quota.
  • Added a DeepSeek 1–10 quality gate before any GPU rendering. Transcripts scoring below 6 are skipped.
  • Cleaned up the emotion-keyword dictionary: removed over-frequent fillers, added boring-keyword penalties for donation read-outs, ad reads, and opening greetings.
  • No fallback clips: if the scored windows array comes back empty after gating, the segment yields zero clips instead of falling back to "loudest available".
v3.5

Hook overlays & profanity censoring

  • Hook-title overlay: AI-written headline appears over the first portion of the clip with fade-out (5s or 40% of clip length, whichever is shorter).
  • Profanity censoring: detected swearing is silenced in audio (volume = 0 on those word ranges) and replaced with stars in the burned-in subtitles.
  • Improved DeepSeek prompt: titles are now max 50 characters, no emoji, tightly bound to actual content of the clip.
  • CTA outro redesigned: 5-second purple "ПОДПИШИСЬ" card with a green channel link and Liberation Sans typography.
  • Dashboard redesign: CSS variables, Inter font, Twitch purple, underline tabs, backdrop blur on modals.
v3.4

Robust capture & 720p support

  • Switched recording from .mp4 to MPEG-TS — partial files now stay readable by ffprobe, so a Twitch hiccup mid-segment no longer trashes the segment.
  • Three-level resolution probe (standard → deep → frame-level) handles edge cases where some metadata fields are missing.
  • 720p sources (1280×720) now process correctly with even-numbered crop dimensions.
  • Deploy helper extended to upload both app.py and Dockerfile in one shot.
v3.3

Loudness, fades, and split layouts

  • Audio loudness pass: EBU R128 at −16 LUFS plus soft-knee compressor and audio fade in / out.
  • Hook-aligned cuts: peak emotion / loudness moment now lands inside the first 20% of every clip, hook phrases positioned at the beginning.
  • Webcam top-split refined to 40 / 60 ratio (768px / 1152px) with face-zoom step in the top panel — face is now larger and positioned with 30% top bias.
  • Progress bar overlay: thin Twitch-purple line growing across the bottom edge of the clip.
  • Video fade: 0.4s in / 0.8s out for clean openings and exits.
  • Liberation Sans installed in the Dockerfile for consistent subtitle typography.
v3.2

Smart vertical layouts

  • Three vertical layout modes shipped: gameplay_only, webcam_only, webcam_top_split.
  • Webcam region configurable per streamer in normalized 0..1 coordinates (x, y, w, h).
  • Webcam-only mode takes the largest possible 9:16 window centered on the streamer's face — face stays vertically centered regardless of source resolution.
  • English Whisper language support added (language param flowing through transcribe → subtitles → scoring → render).
  • Test tab in the dashboard with multi-timestamp preview and live processing log.
v3.1

Karaoke subtitles

  • Word-level karaoke subtitles: exactly one yellow word at any instant, scaled up by 25%, white otherwise.
  • Smooth-fill (\kf) explicitly avoided in favor of the snappy single-word highlight.
  • Liberation Sans 72pt with hard outline, BorderStyle 1, ScaledBorderAndShadow disabled — readable on a 6-inch phone.
  • Telegram delivery integration with admin alerts for low disk, ffmpeg failures, clip exceptions, recorder restart.
  • Test endpoint /api/test/run for one-shot rendering on a pre-recorded MP4.

Want to know what's next?

The pipeline is in active development. Get in touch if you have a use case that doesn't fit yet.

Contact support Browse features