Transcript-first content engine for podcasts, talking-head videos, tutorials, and short-form social packages.
QuackVideo turns one recording into a reviewable set of platform-ready files. It does not upload or schedule posts.
- Python 3.12+
- uv
- FFmpeg and ffprobe on
PATH
uv sync --extra dev
make verifyquackvideo project init --name studio --workspace workspace
quackvideo ingest recording.mp4 --profile talking-head --workspace workspace
quackvideo run EPISODE_ID --until analyze --workspace workspace
quackvideo review list EPISODE_ID --workspace workspace
quackvideo review approve EPISODE_ID MOMENT_ID --workspace workspace
quackvideo compose EPISODE_ID --workspace workspace
quackvideo package EPISODE_ID --workspace workspaceProfiles: podcast, talking-head, tutorial, social.
Every command accepts --json for agents.
workspace/episodes/<id>/
source/ immutable copy of the recording
artifacts/ingest/ probe + QC
artifacts/normalize/ loudnorm audio + mezzanine
artifacts/transcript/ json, srt, vtt, markdown
artifacts/analyze/ chapters + ranked moments
artifacts/review/ approval manifest
artifacts/compose/ approved clips + captions
artifacts/packages/ per-platform handoff directories
Compose and package run only after at least one moment is approved.
Default transcription is fake (deterministic, for tests and dry runs).
export QUACKVIDEO_TRANSCRIPTION_PROVIDER=openai
export QUACKVIDEO_OPENAI_API_KEY=...Analysis defaults to a heuristic ranker that uses transcript windows, duration policy, scene cuts, and imported performance signals.
quackvideo metrics import EPISODE_ID stats.csv --workspace workspaceCSV columns: moment_id,platform,views,retention_3s,retention_30s,ctr,comments.
MIT