Skip to content

samerGMTM22/OpenClaw-RoughCut

RoughCut banner

RoughCut

RoughCut is a local-first rough cut generator for Final Cut Pro on macOS. Point it at a talking-head video and it will remove long silences and optionally remove bad takes and fluff, producing FCPXML variants that relink to the original media.

What it does

  • Removes long silences using FFmpeg silencedetect.
  • Tightens low-energy sections with an RMS energy gate.
  • Optionally removes bad takes using a local disfluency model + retake detection.
  • Optionally removes fluff/off-topic content using Gemini.
  • Produces a pack of .fcpxml variants for import into Final Cut Pro.

Quickstart (Local)

One command (auto-installs dependencies on first run):

bash scripts/dev.sh
  • Opens the web UI at http://localhost:5173.
  • Starts the API server at http://127.0.0.1:8000.

API server only (headless):

bash scripts/dev.sh start-server

Stop whatever is running:

bash scripts/dev.sh stop

Use With OpenClaw

See docs/openclaw.md.

Headless runner (what agents execute):

bash scripts/openclaw/roughcut.sh \
  --video "/absolute/path/to/video.mp4" \
  --out "/absolute/path/to/output_dir" \
  --remove-bad-takes true \
  --remove-fluff false

If you want RoughCut to download the input video first (recommended for agent-hosted Macs), pass a direct HTTPS download URL:

bash scripts/openclaw/roughcut.sh \
  --video-url "https://example.com/path/to/video.mp4" \
  --out "/absolute/path/to/output_dir" \
  --remove-bad-takes true \
  --remove-fluff false

Outputs

Each job writes to server/jobs/<jobId>/ and produces:

  • xml_variants.zip (on disk)
  • RoughCut.xml_variants.zip (download filename)
  • VIDEO_STEM.<variant>.fcpxml files inside the zip
  • debug.zip (on failures)
  • transcripts and decision JSONs for debugging

Import into Final Cut Pro:

  1. Unzip RoughCut.xml_variants.zip.
  2. In Final Cut Pro: File -> Import -> XML...
  3. Choose the .fcpxml variant you want.

Configuration

  • Runtime defaults come from .env (see .env.example) and server/app/settings.py.
  • UI settings are stored in server/config.json (git-ignored) and override .env.

LLM keys

  • GEMINI_API_KEY is only required if you enable fluff removal.
  • OPENAI_API_KEY is optional (if you switch provider to OpenAI in the UI).

Troubleshooting

  • First run may build whisper.cpp and download models. Ensure:
    • Xcode Command Line Tools: xcode-select --install
    • CMake: brew install cmake
  • Missing ffmpeg: install via Homebrew or place binaries in ./bin and add to PATH.
  • If ports are stuck (5173/8000): bash scripts/dev.sh stop
  • Logs:
    • server/run/web.log
    • server/run/server.log
  • whisper.cpp build failed on macOS: run xcode-select --install, then retry.
  • dyld libwhisper.1.dylib missing: delete server/bin/whispercpp and restart to rebuild.
  • whisper.cpp download failed: set WHISPER_CPP_PATH and WHISPER_CPP_MODEL_PATH to local paths, or set WHISPER_CPP_AUTO_DOWNLOAD=false and manage installs manually.
  • Transcription is slow: ensure you are using a Metal-enabled whisper.cpp binary on Apple Silicon.

Security and privacy

  • No media is uploaded to the cloud.
  • Only transcript text and timestamps are sent to Gemini (fluff removal and/or XML variants), depending on your config.

Contributing

See CONTRIBUTING.md.

License

MIT (see LICENSE).

About

This is an OpenClaw tool that allows users with OpenClaw installed on a Mac device to add media files/video footage which is raw. This tool will get OpenClaw to support people in cutting that raw footage by removing silences, removing bad takes, and even removing fluff.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors