LABASLABAS labaslabas.dev

leve v0.1.0

Short-form clip pipeline from audio/video sources. Transcribe, align, select engaging moments, burn captions, export.

About

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.

Features

Requirements

leve 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).

Download

leve-v0.1.0-darwin-arm64.tar.gz

macOS arm64 · ~10 MB · SHA256 in SHA256SUMS

Install

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/leve@v0.1.0

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/

Bring your own models

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.