Skip to content

Expand batch command to support edit operations #19

@kiyeonjeon21

Description

@kiyeonjeon21

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.tsexecuteSilenceCut, 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions