Description
The vibe batch command currently only supports import and concat. Content creators often need to apply the same edit to many videos at once (e.g., add captions to 50 interview clips).
Proposed usage
# Add captions to all videos in a directory
vibe batch caption ./videos/ -s bold -o ./captioned/
# Remove silence from multiple files
vibe batch silence-cut ./interviews/*.mp4 -o ./trimmed/
# Apply color grade to footage
vibe batch grade ./footage/ --preset cinematic-warm -o ./graded/
# Noise reduction on noisy recordings
vibe batch noise-reduce ./noisy/ -s high -o ./clean/
What to implement
File: packages/cli/src/commands/batch.ts
Add a generic batch apply subcommand or individual batch subcommands:
Approach: Generic batch wrapper
// vibe batch apply <edit-command> <input-dir> [options] -o <output-dir>
vibe batch apply caption ./videos/ -s bold -o ./captioned/
vibe batch apply silence-cut ./raw/ -o ./clean/
This wraps existing edit commands (executeCaption, executeSilenceCut, etc.) in a loop with:
- File discovery (glob pattern or directory)
- Parallel execution with concurrency limit (
--concurrency 3)
- Progress reporting (X/Y completed, failures)
- Summary report at the end
Key details
- Import execute functions from existing edit commands (they're already exported)
- Use
ora spinner with file count progress
- Handle errors per-file without stopping the batch
- Create output directory if it doesn't exist
Pattern to follow
Look at packages/cli/src/commands/batch.ts for the existing batch import and batch concat patterns. The edit execute functions are in:
packages/cli/src/commands/ai-edit.ts — executeSilenceCut, executeCaption, etc.
How to verify
pnpm build && pnpm lint
mkdir test-batch && cp video1.mp4 video2.mp4 test-batch/
pnpm vibe batch caption ./test-batch/ -s bold -o ./test-output/
ls ./test-output/ # should contain captioned versions of both videos
Description
The
vibe batchcommand currently only supportsimportandconcat. Content creators often need to apply the same edit to many videos at once (e.g., add captions to 50 interview clips).Proposed usage
What to implement
File:
packages/cli/src/commands/batch.tsAdd a generic
batch applysubcommand or individual batch subcommands:Approach: Generic batch wrapper
This wraps existing edit commands (
executeCaption,executeSilenceCut, etc.) in a loop with:--concurrency 3)Key details
oraspinner with file count progressPattern to follow
Look at
packages/cli/src/commands/batch.tsfor the existingbatch importandbatch concatpatterns. The edit execute functions are in:packages/cli/src/commands/ai-edit.ts—executeSilenceCut,executeCaption, etc.How to verify