Trim filler
Investigation on using Claude Code to automatically generate profitable YouTube videos.
npx -y skills add jperrello/C0BALT_CUT --skill trim-fillerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Semantic dead-air / filler removal. Claude reads a clip-local word-timed transcript and marks filler words, trail-offs, false starts, repeated re-starts, and short digressive asides for removal. Emits keeps.json (ranges to keep) and transcript.trimmed.json (kept words with shifted timestamps). Pairs with cut-filler, which applies the cuts to the clip's video.
SKILL.md
2.4 KB, 561 tokens by cl100k_base, as published. Nobody here has run it
trim-filler
Tightens a podcast clip by stripping low-value words, not just silence. Where tighten-pace cuts inter-word gaps > gap_max, trim-filler cuts whole spans of speech that don't carry the point — "uh", "um", "you know what I mean", false starts, and the brief tangents speakers fall into mid-sentence.
Example: "I opened a restaurant that was like uhm — I love restaurants haha — yeah me too anyways it sold burgers" → "I opened a restaurant that sold burgers".
Invoke
.claude/skills/trim-filler/trim-filler.sh <in_transcript> <out_keeps> <out_transcript> [pad=0.05]
in_transcript— clip-local word-timed transcript JSON (output oftranscriberebased to the clip)out_keeps— writtenkeeps.jsoncontaining the keep ranges and removal rationaleout_transcript— written clip-local transcript JSON with only kept words and shifted timestampspad— kept padding around each retained span (sec)
Output shape — keeps.json
{
"source": "<original transcript path>",
"keeps": [[0.0, 4.21], [5.83, 12.04], ...],
"removed": [
{"t0": 4.21, "t1": 5.83, "words": "uhm — I love restaurants haha — yeah me too anyways", "reason": "filler + digression"}
],
"removed_total": 1.62
}
How
- Build a numbered transcript (one word per line:
<idx>\t<t0>\t<t1>\t<word>). - Ask Claude (
claude -p) which index ranges to REMOVE because they are filler, trail-offs, false starts, or short asides that don't carry the speaker's point. Speech that delivers the actual content stays. - Parse Claude's JSON reply, build the complement (keeps), pad each kept span, merge overlaps, write both outputs.
Re-runs are idempotent via an mtime+pad signature in <out_keeps>.tfmeta.
Pairs with
cut-filler— consumeskeeps.jsonand re-encodes the clip's video+audio.
Caveats
- Operates per-clip after
cut-clip + rebase. Don't run on the full source transcript — Claude context budget. - If Claude returns "no cuts", outputs are pass-through.