Open source · frame-accurate

Vertical clips from performance video. You make the calls.

Footlight turns 16:9 music and live-performance footage into clean 1080×1920 (9:16) H.264 clips for Reels, TikTok and Shorts. It automates the mechanical part — cut → crop → scale → encodeafter a human decides the moment and the framing. No transcript guessing. No auto-magic.

Apache-2.0 TypeScript engine + CLI Desktop GUI (Tauri) Lossless audio passthrough
The Footlight editor: a 9:16 crop box over a live performance, a 9:16 output preview, and a loudness timeline flagging quiet-to-loud swells.
Philosophy

Control-first, not auto-magic.

Transcript-based auto-clippers read speech to decide what to clip — so they're built for talking heads and fall apart on instrumental and live-performance footage where there's no transcript to key off. Footlight serves that underserved case: music and live performance, where the editor already knows the moment and the subject moves across the frame.

Transcript auto-clippers

Guess the moment for you

  • Read speech, so they need a talking head
  • Blind to a song's dynamics and a player's movement
  • A black box you fight, not a tool you drive
Footlight

Hands you the controls

  • You pick the moment; a loudness timeline surfaces quiet→loud swells as hints
  • You frame with a 9:16 box; AI subject-tracking is an opt-in accelerant, never a gate
  • Frame-accurate, reviewable, repeatable — driven by you
What's inside

A frame-accurate cutter, tuned for performance.

Everything is built around the way you actually clip a song — by ear and by eye.

The loudness timeline is your scrubber

Drag across it to set In / Out, click to seek, hover to preview frames. It draws volume over time and flags suggested quiet→loud swells — the drops and builds you actually want to clip — plus scene-cut ticks and ⏮ / ⏭ cut-jumps from auto scene detection.

9:16 framing box

Drag the orange box to reposition; drag a corner to punch in and zoom. A live 9:16 output preview — with optional social safe-area guides — shows the real vertical result as you frame.

Moving crop, keyframed

Drop keyframes for a time-keyed schedule that hard-switches the crop at cuts — align switches to the source's own scene-cuts and the change is invisible.

Optional AI auto-track

Bring your own key: AI subject tracking builds a smooth eased crop path across a shot — a reviewable suggestion you edit before rendering. Provider-agnostic, Gemini as reference. Opt-in, never a gate.

Queue, render, re-frame

Add clips to a queue — reorder, duplicate, click to re-edit — pick a destination, and render. Past renders are saved to History for one-click re-framing; your session autosaves.

Keyboard-driven

Space, ← / →, I / O, [ / ], S and more. Press ? for the shortcuts overlay. Lossless audio passthrough keeps the source as the quality ceiling.

From source to short

Four moves to a vertical clip.

01

Load

Browse, drag a video onto the window, or paste a path. Scenes are auto-detected on load.

02

Cut

Drag across the loudness timeline to set In / Out. Let the swell markers point you to the moment.

03

Frame

Move the 9:16 box, punch in on a corner, double-click to reset. Watch the live vertical preview.

04

Render

Add to the queue, choose a destination, render. Clean 1080×1920 H.264 lands in your folder.

prefer the terminal?

The engine is a CLI, too.

The same render engine drives a scriptable command line. Describe clips in a CSV or JSON manifest — one row per clip — and batch the whole queue. Inspect a source or list scene-cuts to seed a crop schedule.

renderbatch every clip in a manifest
probedimensions + a cropdetect suggestion
scenesdetected cut timestamps
footlight — zsh
# inspect a source — dims + a cropdetect hint
$ footlight probe show.mp4
1920×1080 · ar 1.778 · crop=1920:1080:0:0
# render every clip in a manifest → 9:16 H.264
$ footlight render clips.csv --outdir clips --crf 19
rise-in-the-river_2-04_2-19.mp4
rise-in-the-river_2-46_3-02.mp4
# list scene-cuts to seed a crop schedule
$ footlight scenes show.mp4
0.00 14.52 41.08 83.71 124.4 …

Run it from source.

There's no signed download — Footlight is open and you run it yourself. The browser GUI needs only Node; the native window adds the Rust toolchain. make doctor checks your setup in one shot.