Skip to content

Releases: lucyfengcl-art/video-prep

v0.5.0 - safer subtitles and flexible styling

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 16 Jul 21:16

What’s new

This release hardens subtitle generation against the real failure modes found in multi-clip Mandarin edits.

  • Enables Whisper VAD and anti-hallucination decoding while preserving confidence metadata.
  • Drops or clamps subtitle cues that extend beyond their source media.
  • Prevents malformed per-clip subtitles from spilling into the next clip during merge.
  • Writes NN.subtitle-warnings.json when suspicious cues are corrected or need review.
  • Makes the per-clip cache aware of source identity and processing options.
  • Adds ASS-based preview styling with bold text, normalized vertical position, global backgrounds, and black backgrounds for selected source clips.
  • Adds regression coverage for the observed repeated-tail and long end-of-clip hallucinations.

New styling options

video-prep-edit ./raw \
  --subtitle-font-size 11 \
  --subtitle-bold \
  --subtitle-y 0.75 \
  --box-clips 2

Package version: 0.5.0. Skill version: 2.1.0.

Verification: 55 tests pass, including real subtitle-boundary regression cases and ASS styling tests.

v0.4.0 — skill renamed to /video-prep for consistent naming

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 12 Jul 12:31

What's new

The skill and the plugin now share one name: video-prep. Previously the plugin was video-prep but the skill invoked as /prep-clips, which was confusing.

  • Skill renamed prep-clipsvideo-prep. Invoke it as /video-prep (fully qualified: video-prep:video-prep).
  • skills/prep-clips/skills/video-prep/; all references updated across README (EN + zh), AGENTS.md, BLOCKS.md, and the plugin/marketplace manifests.

⚠️ Breaking

The invocation changed from /prep-clips to /video-prep. If you referenced /prep-clips in your own notes or workflows, update them. Re-install/update the plugin and start a fresh session to pick up the new name.

Naming/docs only — no code or dependency changes. Skill version 2.0.0; plugin/package 0.4.0.

v0.3.4 — first-contact intro speaks the user's language

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 12 Jul 12:21

What's new

Builds on v0.3.3's first-contact intro: the intro now answers in whatever language the user writes in as an explicit rule (Chinese in → Chinese intro, English in → English, and so on), rather than relying on the model's default instinct. The English template in the skill is a reference for what to say — the agent translates it instead of echoing English. Folder names (./raw) and CLI flags are kept verbatim.

Docs/behavior only — no code or dependency changes. Skill version 1.2.1; plugin/package 0.3.4.

v0.3.3 — skill introduces itself on first contact

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 12 Jul 12:06

What's new

The /prep-clips skill now introduces itself when a user invokes it without a concrete task.

  • First-contact intro — a bare /prep-clips, a greeting, or "what can this do?" now triggers a short capability overview and a menu of example prompts, instead of silently waiting for clips. New users discover what the tool does and how to ask for each part.
  • Capability → how-to-invoke map — a table routing what a user wants ("cut the ums", "I have 20 clips", "bigger subtitles") to the trigger phrases and the section that handles it.
  • After running a capability, the agent now surfaces the other things the skill can do, so the full toolkit is discovered over time.

Docs/behavior only — no code or dependency changes. Skill version 1.2.0; plugin/package 0.3.3.

v0.3.2 — Platform-neutral skill invocation

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 28 Jun 10:59
a0dba18

Rewrites the prep-clips SKILL.md invocation so it works in any skill-aware agent (Codex, etc.), not just Claude Code: bare console-script names when the CLI is on PATH, or the bundled self-locating launcher otherwise, with the skill dir resolved from whatever env var the host exposes. Docs only; no code changes.

v0.3.1 — Docs synced to 0.3.0 behavior

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 28 Jun 10:36
c45abe7

Documentation-only release: AGENTS.md, README (EN + 中文), SKILL.md, and BLOCKS.md updated to match the 0.3.0 feature set (natural ordering, multilingual --language/auto + language-aware subtitle wrapping, -j parallel processing, and the suggest-don't-cut filler workflow). No code changes.

v0.3.0 — Multilingual, filler suggestions, parallel processing

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 28 Jun 10:04
48c364f

Multilingual

  • Any Whisper language via --language (e.g. en) or --language auto to detect (default stays zh).
  • Language-aware subtitle wrapping: English wraps on whole words (cap 42), Chinese by character (cap 20); --max-chars -1 = auto, 0 disables. Fixes mid-word English wrapping.

Filler words: suggest, don't auto-cut

  • Built-in per-language filler lists (zh, en); --word optional.
  • Case-insensitive matching; multi-token words supported (于是, "you know").
  • Suggest-by-default — lists matches with context and cuts nothing without --indices; --json for tool/agent-driven selection.

Speed

  • video-prep-edit -j N parallelizes uncached clips (~1.4×); ordering, caching, single-pass merge preserved.

41 tests pass.

v0.2.0 — Robustness & speed fixes

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 23 Jun 06:52

Hardening pass from a real 13-clip edit that surfaced several silent failures, plus a transcription speedup. 32 tests pass.

Correctness

  • Ordering: natural-sort directory inputs so 1,2,…,10,13 merge in numeric order without zero-padding (was lexical 1,10,11,2,…).
  • Concat: always re-encode via the concat filter with per-input normalization (scale/pad, fps, SAR, yuv420p, 48k, mono). The old stream-copy demuxer could exit 0 while producing frozen video / drifting audio / clicks on mixed time bases, resolutions, and mono-vs-stereo inputs.
  • A/V sync: lock each clip's audio to its frame-aligned video length (apad + -shortest) and force true 30fps CFR, so per-clip gaps no longer accumulate into audible drift.

Subtitles

  • Split over-long Whisper cues at punctuation with proportional timing (--max-chars, default 20) so burned-in subtitles no longer wall the frame.

Speed

  • Default model large-v3-turbo (~2× faster on CPU, negligible quality loss); --model large-v3 for maximum accuracy.

Docs

  • READMEs (EN + 中文): natural ordering, new model, --max-chars, and a "speeding up a multi-clip edit" note (use the mtime cache; never pairwise-merge).

v0.1.1

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 21 Jun 13:49

Fixes

  • All-black video on iPhone .MOV clips. auto-editor v29 renders all-black video when a file's audio stream precedes its video stream (the iPhone ordering). The cleanup step now remuxes such inputs video-first (lossless stream copy) before editing, so the picture is preserved. If you hit black output on v0.1.0, upgrade to this release.

Clean up raw video clips before editing: cut silence, transcribe subtitles (any language, Mandarin by default), normalize speed, stitch in filename order, and optionally burn subtitles. Outputs clean per-clip .mp4 + .srt ready to drop into any editor.

Install / upgrade

Claude Code
```
/plugin marketplace update video-prep
/plugin install video-prep
```

Codex / CLI
```sh
uv tool upgrade video-prep # or: uv tool install git+https://github.com/lucyfengcl-art/video-prep
```

Requires `uv` and `ffmpeg` (+ `ffmpeg-full` and a CJK font to burn subtitles).

v0.1.0

Choose a tag to compare

@lucyfengcl-art lucyfengcl-art released this 20 Jun 18:26

First release of video-prep — a cross-platform tool that does the tedious cleanup pass on raw video clips before editing: cut silence, transcribe subtitles (any language, Mandarin by default), normalize speed, stitch in filename order, and optionally burn subtitles. Outputs clean per-clip .mp4 + .srt ready to drop into any editor.

Install

Claude Code
```
/plugin marketplace add lucyfengcl-art/video-prep
/plugin install video-prep
```

Codex / CLI
```sh
uv tool install git+https://github.com/lucyfengcl-art/video-prep
```

Requires `uv` and `ffmpeg` (+ `ffmpeg-full` and a CJK font to burn subtitles). Transcription runs on CPU on any OS, or a CUDA GPU automatically if present.

Highlights

  • `faster-whisper` transcription (macOS/Windows/Linux, Intel/ARM)
  • Ships as a Claude Code plugin with the `/video-prep:prep-clips` skill + self-locating `uv` launcher
  • `AGENTS.md` for Codex / shell-driven agents
  • Filler-word removal and subtitle-burning helpers