Edit video by editing text

5 min readeditortranscriptdescriptcaptionsfillergrowth

The Descript-style workflow: delete a sentence from the transcript → the video cuts to match. Kuhukoo runs Whisper locally in your browser for word-level timings, so nothing about your script leaves your device.

When you see the tab

Open the video editor on any video clip. In the tab row, click 📝 Transcript (next to Captions).

First open — transcribing

Kuhukoo runs Whisper.js on your video (word-level timestamps). First open on a fresh video downloads the ~40 MB model + runs the transcription. Subsequent opens on the same clip use the session-scoped cache — instant.

Silent videos ("no spoken words detected") show a hint; use Trim / Split for those.

Karaoke follow + click-to-seek

  • The active word highlights as the video plays (amber background).
  • Click ANY word → video seeks to that word's start time.

Great for finding the moment you actually mean rather than scrubbing the timeline.

Cut by selection

  1. Select transcript text (drag or shift-arrow).
  2. A floating black toolbar appears: N words selected · ✂️ Cut · ⇥ Trim to this · Cancel.
  3. ✂️ Cut removes the selection from the video. Cut text renders struck-through in the panel.
  4. ⇥ Trim to this keeps ONLY the selection (adds head + tail cuts).

Every cut becomes a chip you can undo with ×. Multi-range cuts stack; they merge if they touch (< 80 ms gap).

Word-boundary snap + padding

Selections snap to whole word boundaries with ±40 ms padding so consonants don't get clipped. This is invisible unless you look closely at the resulting clip.

✨ Remove filler words

Click ✨ Remove filler words to open the preview modal. Kuhukoo scans the transcript for these patterns:

  • Um / Umm
  • Uh / Erm
  • Hmm / Mm
  • Like (interjection)
  • You know

Every hit shows up as a per-instance checkbox grouped by kind, with a "Check all / Uncheck all" per group. Click Remove N to apply — each becomes a micro-cut with crossfade-safe padding.

Honest limits

  • English-first. The heuristic patterns match English filler words; other languages may need per-language tuning (roadmapped).
  • "Like" can over-flag on verbal use ("I like tea"). The preview modal is your escape hatch — uncheck any false positives before applying.
  • Approximate timings. Whisper's word timestamps are ±100 ms in practice. Word-boundary snap + padding smooths the audible impact, but if you're doing frame-precise music-video work you may want to use the Trim / Split tools instead.
  • Non-primary sources. The tab is scoped to the FIRST video source (source[0]). Multi-source sessions from Auto-Assemble use the transcript panel for the primary clip only; use per-segment Trim for the rest.

What "Save" ships

Every cut modifies session.segments natively (E03 primitive), so the export bake requires no changes:

  • Timeline shortens by the sum of cut durations.
  • Captions regenerate in edited-timeline seconds — no re-transcription.
  • Music tracks auto-trim / extend to the new total.
  • Voiceover / SFX lanes keep absolute-time positions (they were placed relative to the source's timeline, not the transcript).

Undo

Every cut is undoable via its chip's ×. The panel doesn't yet have a global "Undo all" — that's a queued follow-up.

Feedback

Multi-language filler detection is the top ask. Report the video shapes where the tab helped you most (or missed): /help/report-bug.

Was this helpful?

Still stuck? Contact support — we reply within one business day.