Any camera with audio already captured every shot you took on stage. Splitsmith turns that audio
into per-shot splits you can review and coach inside the app — shot-by-shot playback, multi-shooter compare,
per-shot notes — or export an FCPXML timeline with frame-aligned markers you can pop open in
Final Cut Pro and step through on M / Shift+M.
The RO's timer only records your total stage time — the splits live in your video, and this is how you get them out.
Drop a folder of stage clips from any camera. The engine auto-matches them to stages by file timestamp.
Step 02
Beep
Auto-snap to the start beep on each stage. Low-confidence detections land in a review queue.
Step 03
Audit
Waveform + per-shot markers from a 3-voter ensemble. Click a marker to inspect votes. Drag to fine-tune.
Step 04
Export
Per-stage or whole-match FCPXML. Open in Final Cut Pro, navigate with M / Shift+M.
02
Two ways to use Splitsmith
Path A · In the app
Coach in-app
Review every stage shot-by-shot without leaving Splitsmith. The video timeline,
shot ruler, and per-shot list stay in sync as the playhead moves.
Shot-by-shot playback with playhead-synced video
Multi-shooter compare — squadmates side-by-side, aligned to the beep
Per-shot coaching notes and improvement flags
No Final Cut Pro required
Path B · Take it out
Export to Final Cut Pro
When you'd rather edit in your NLE, export an FCPXML timeline with a frame-aligned
marker on every shot. Open it in Final Cut Pro and step through marker-to-marker.
Per-stage or whole-match FCPXML
Frame-aligned markers, one per detected shot
Navigate marker-to-marker on M / Shift+M
More NLE formats coming
03
What goes in. What comes out.
Inputs
Any camera with audio
VIDEOHead, chest, gimbal, handheld — if it recorded the beep and the shots, it works. MP4, MOV, MKV, .360, and more
Outputs · per stage
Reviewable training data
CLIPLossless trim around the start beep
SPLITSPer-shot times — the editable source of truth
# Install from PyPI and launch the UI# The UI auto-downloads ~440 MB of detection models in the background on first boot.$uv tool install splitsmith
$splitsmith ui
Prefer the CLI? The envelope-only single-clip path needs no model download:
# One-shot pipeline: detect shots, write report + FCPXML$splitsmith single \
--video path/to/your_stage.mp4 \
--time 14.74 \
--output ./demo_analysis \
--stage-name "Per told me to do it" \
--stage-number 3
Running a server, worker, or self-hosted agent? Pull the published image from GHCR - same image, the subcommand picks the role:
# Server / worker roles - :edge tracks main, :X.Y.Z pins a release$docker pull ghcr.io/mandakan/splitsmith:latest
# Or run the whole stack (server, worker, Postgres, MinIO) from the release$docker compose -f docker-compose.yml -f docker-compose.ghcr.yml up -d
Building from source instead? Clone, sync, and build the UI:
Every release retrains the shot-detection ensemble against a growing
corpus of audited stages — real beep-to-last-shot audio with
hand-labeled shot times across head, chest, gimbal, and handheld
setups. The fixtures shipping today are from me and a handful of
squadmates; each one sharpens the next release on every camera.
Soon, anyone running Splitsmith will be able to opt in and share
their own audited stages so the corpus — and everyone's detection
— keeps growing.
Contributor uploads coming soon
Hosted Splitsmith
Coming soon
Share projects with a coach or a squadmate for review, without anyone
needing a local environment.