Skip to content

v1.9.29 — Interview Polish pipeline

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 12 Apr 22:14
· 1471 commits to main since this release

OpenCut v1.9.29 — Interview Polish

Third of five feature releases. This is the marquee item — a real
one-click pipeline for interview / podcast content that composes six
existing OpenCut capabilities into a single button.

What's new

A new Interview Polish card sits at the top of the Cut tab. Hit
the big button on a selected clip and OpenCut runs the whole
interview-grade flow:

  1. Detect speech segments — silence removal
  2. Transcribe audio — Whisper (any installed backend)
  3. Find and cut repeated takes — Jaccard similarity on transcript
  4. Remove filler words — "um", "uh", "like", context-aware
  5. Speaker diarization — advisory; flags the step with a how-to-enable hint if WhisperX is available
  6. Generate captions + chapters — SRT, YouTube chapter markdown,
    and a final Premiere XML with every cut applied

Three opt-out checkboxes let you skip repeat-detection, filler cut,
or chapter generation if you don't want them on a given run.

UX

  • A real step checklist — not just a progress bar. Each of the 6
    steps renders with:
    • A status icon (pending / ok / failed / skipped)
    • Per-step stat detail: "3 fillers removed", "2 repeats cut",
      "8 chapters generated", "kept 247 segments"
    • A clear "why skipped" reason when a step is opted out or the
      backend dep is missing
  • Result strip shows the compression ratio ("Compressed to 62% of
    original (18:34)") plus three one-click actions:
    • Import to Premiere — pulls the XML into the active project,
      journaled so you can revert from the v1.9.28 Journal tab
    • Open SRT — launches the captions file in its default app
    • Open Chapters — opens the YouTube chapter markdown

Under the hood

  • New POST /interview-polish endpoint in routes/captions.py
    (~230 lines). Composes existing core modules directly —
    captions.transcribe, fillers.detect_fillers,
    repeat_detect.detect_repeated_takes +
    merge_repeat_ranges, chapter_gen.generate_chapters — and
    carries intermediate results from one step to the next so the
    transcript isn't re-run between stages.
  • Per-step status is captured in a steps array in the job result.
    The frontend renders each entry as a checklist row.
  • Range subtraction for repeat removal is inlined in the route
    because it's the only caller; no speculative shared helper.
  • Diarization is advisory in this release — shipping speaker labels
    requires an HF token in settings, so we report the step as skipped
    with a clear "Run Captions → WhisperX with an HF token to label
    speakers" hint instead of silently failing.

Tests

  • 4 new cases in TestInterviewPolish: route registered, CSRF
    enforced, missing filepath → 400 INVALID_INPUT, bad filepath
    → 400.
  • Full focused suite: 155 passed, 3 skipped.

Artifact

Windows x64 PyInstaller build attached as
OpenCut-Server-v1.9.29-win-x64.zip (~226 MB).

What's next

The planned v1.9.30 (live audio preview) and v1.10.0 (sequence
assistant) are in progress as part of the same feature-release
cycle. See the roadmap comment in v1.9.27 release notes.