v1.9.29 — Interview Polish pipeline
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:
- Detect speech segments — silence removal
- Transcribe audio — Whisper (any installed backend)
- Find and cut repeated takes — Jaccard similarity on transcript
- Remove filler words — "um", "uh", "like", context-aware
- Speaker diarization — advisory; flags the step with a how-to-enable hint if WhisperX is available
- 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
- Import to Premiere — pulls the XML into the active project,
Under the hood
- New
POST /interview-polishendpoint inroutes/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
stepsarray 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 → 400INVALID_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.