Short-form clip pipeline from audio/video sources. Transcribe, align, select engaging moments, burn captions, export.
leve turns long-form audio and video into short-form, captioned clips — all from the command line. Point it at a podcast episode, talk, or YouTube URL; leve transcribes the audio, aligns word-level timestamps, selects engaging moments, and exports captioned clips ready for Shorts, Reels, or TikTok. It is built for podcasters and YouTubers turning long-form content into shorts, and it runs entirely on your machine: CLI-only, no SaaS, no uploads, no account.
leve init — scaffold a workspace from a local file or YouTube URLleve run — run the pipeline: download → transcribe → align → select → exportleve status — see where you are in the pipelineleve condense — remove silent pauses from the source videoleve export clip — render a selected clip (or all clips) with captionsleve export range — create a clip from explicit timestamps and export itleve export source — export the whole source with caption overlaysleve doctor — check system dependenciesleve reset — reset pipeline stage(s) to pendingleve clip — manage clips (add, list, select, unselect)ffmpegyt-dlp (only for YouTube URLs)python3 + uvggml-*.bin whisper modelmms_fa_uint8.onnx alignment modelleve does not bundle, download, or host models — the whisper and MMS-FA models are the two most likely source of first-run confusion, so grab them before you start (see "Bring your own models" below).
macOS arm64 · ~10 MB · SHA256 in SHA256SUMS
Option 1 — one-liner (recommended):
curl -sSf https://raw.githubusercontent.com/lucastrunce/leve/v0.1.0/install.sh | sh
Option 2 — from source (requires a checkout
for share/scripts or a LEVE_SCRIPTS_DIR
override):
go install github.com/lucastrunce/leve/cmd/[email protected]Option 3 — manual download:
curl -fsSL -O https://pub-a7b67eccf154442b85bd31333515dab4.r2.dev/leve-v0.1.0-darwin-arm64.tar.gz
curl -fsSL -O https://pub-a7b67eccf154442b85bd31333515dab4.r2.dev/SHA256SUMS
shasum -a 256 -c SHA256SUMS
tar -xzf leve-v0.1.0-darwin-arm64.tar.gz
sudo mv leve /usr/local/bin/
sudo mkdir -p /usr/local/share/scripts
sudo cp -R share/scripts/. /usr/local/share/scripts/leve does not bundle, download, or host models — you download them once and point leve at them.
Whisper model — download any
ggml-*.bin model (recommended:
ggml-large-v3.bin) from
ggerganov/whisper.cpp, then either set [paths] whisper_model in
~/.leve/etc/config.toml, set
LEVE_WHISPER_MODEL, or drop the file at
~/.leve/models/.
MMS-FA alignment model — download
mms_fa_uint8.onnx (~303 MB, CC-BY-NC-4.0) from
xycld/lyric-align-mms-fa:
curl -L https://huggingface.co/xycld/lyric-align-mms-fa/resolve/main/mms_fa_uint8.onnx -o ~/.leve/models/mms_fa_uint8.onnx
Then either set [paths] mms_fa_model /
LEVE_MMS_FA_MODEL, or leave it unset and let
align.py use the HuggingFace cache.