Skip to main content
Glama

⚡ ShortsFlow

Drop in a podcast or interview, get captioned vertical clips. No account, no API key, no upload. Free and open source (MIT): no watermark, no credits, no subscription. Runs on your own PC.

Try it in two minutes

🪟 Windows, no setup

⬇ ShortsFlow-Setup.exe, open ShortsFlow, press Try a 2-minute sample, then Start.

🍎🐧 Mac or Linux

curl -fsSL https://raw.githubusercontent.com/ghost1412/shortsflow/main/install.sh | sh (needs Python 3.10+ and FFmpeg; installs into ~/.shortsflow).

💻 Any OS

pip install "shortsflow[clip]", then shortsflow doctor, then shortsflow clip my_video.mp4

☁️ Nothing to install

Open in Colab (free GPU)

No account or API key is needed to clip a video. A key (or a free local Ollama) adds AI-written titles and descriptions and lets the AI pick and score the moments (a cloud provider then receives the transcript text).

Related MCP server: vidcut

What you get from one long video

  • The moments. Local Whisper reads the speech; clips start and end on sentences, skip a mic check or a mumbled opening, and never overlap. Every clip says why it was picked.

  • The framing. Face-tracked 9:16 crops, a cut to whoever is speaking in a two-person talk, and the whole picture over a blurred copy for slides and screen recordings.

  • The captions. Animated word-by-word captions (Hormozi, glow box, bounce), your logo and handle, and an editor to re-cut or restyle any clip.

  • Tighter pacing. --tighten removes silences and pauses between words, never a spoken word, and keeps laughter and applause.

# the one command most people need
shortsflow clip interview.mp4 --captions

# a podcast: cut to whoever is talking, remove silences, animated captions
python main.py --source_video "https://www.youtube.com/watch?v=VIDEO_ID" --extract_mode shorts \
  --clip_count 3 --layout auto --smart_crop --tighten --use_remotion --caption_style HORMOZI

How good is it? We measure it

Clip quality is checked on public-domain and Creative Commons videos with no AI key at all, with a benchmark that runs on GitHub's runners (python scripts/clip_benchmark.py <session> --picture): clips that start and end on a sentence, no overlap, length near the asked one, a standalone opening line, titles that say only what the clip says, a face found and centred. The workflow is .github/workflows/clip_benchmark.yml. The results table, including the weak spots, is in docs/BENCHMARKS.md. We do not claim to beat Opus Clip on every video; a side-by-side on public footage is the next thing to publish.

ShortsFlow vs Opus Clip, Klap and Vizard

ShortsFlow

Opus Clip, Klap, Vizard

Price

Free, MIT

Subscription or credits

Watermark

None

On the free tier

Where your video goes

Stays on your machine; Whisper runs locally (text goes to an AI provider only if you add a key)

Uploaded to their cloud

Account

Not needed

Required

Best at

Podcasts and interviews, privacy, full control

Polish, hosted convenience

Privacy: what leaves your PC

Everything runs locally by default. Only these leave it, and each is optional: AI text providers (Gemini, Groq, Hugging Face, Ollama is local) receive the transcript text when you set a key; Gemini receives small frames for --visual_context when a key is set; OpenStreetMap place names for trip recaps (--recap_no_geocode turns it off); Microsoft's Edge voice service or ElevenLabs receive the text to speak in the dub and idea-to-video modes; Google Drive upload only when you ask. A pasted YouTube link is downloaded to your PC; use your own files where the video's terms require it.

More than clips

Browser app, desktop studio, CLI, Docker, REST API, an MCP server for AI agents, dubbing, trip and event recaps, photo reels, step-by-step videos, game moments, and 30+ idea-to-video formats. They are documented in docs/FEATURES.md (the full feature reference).

Help and contributing

  • Something wrong? Open an issue with shortsflow doctor output.

  • Roadmap and open tasks: ROADMAP.md. Tests: python -m pytest (offline).

  • Sample footage in the demos is public domain or Creative Commons and credited where used.

License

MIT. Remotion (animated captions) has its own licence for companies above its size threshold; see remotion.dev/license.

Available Tools

5 tools
extract_clipsA

Cut the best moments out of a long video (a local file path or a YouTube link) into captioned vertical shorts: it transcribes the speech with Whisper, scores the moments, crops to 9:16 with face tracking and burns in animated captions. It runs in the background: the call returns a job_id immediately and the work can take several minutes (longer on a computer without an NVIDIA GPU), so poll get_render_status until the job is 'completed' or 'failed'. Clipping works without any API key; an AI key only improves scoring and titles. Files are written under the ShortsFlow folder (sessions/...) and nothing is uploaded. Use generate_short instead to create a video from a topic.

Inputs: source_video (required), layout, tighten, language, +6 more.

generate_shortA

Create an original vertical short video from an idea: an AI-written script, voice-over, stock footage, background music and animated captions, rendered locally by the ShortsFlow pipeline. It runs in the background: the call returns a job_id immediately and the render takes a few minutes, so poll get_render_status until the job is 'completed' or 'failed'. It uses the user's own LLM, voice and stock-footage keys from the ShortsFlow .env, writes files only inside the ShortsFlow folder, and never uploads or posts anything. Use this to make a new short from a topic; use extract_clips instead to cut shorts out of an existing video.

Inputs: mode, vibe, prompt, script, +7 more.

generate_social_packageA

Write platform-ready text for a short: a title, description, hashtags and a short caption for YouTube Shorts, TikTok and Instagram Reels. It answers immediately (no job). It uses the configured AI model; if none is reachable it returns a generic template filled with the topic instead, so check the wording. It does not publish anything.

Inputs: topic (required), mode, category.

get_render_statusA

Check a background job started by generate_short or extract_clips. Returns a JSON object with status ('processing', 'completed', 'failed' or 'not_found'), progress (0-100), the last log lines, and an error message (the last lines of the log) when the job failed. Jobs are remembered only while this server is running. Call it every 20-30 seconds until the status is no longer 'processing'. It changes nothing.

Inputs: job_id (required).

list_supported_modesA

List the options the other tools accept: content modes for generate_short, caption styles, voice-over engines, aspect ratios and sound-effect presets. Instant, read-only, takes no input. Call it first if you are unsure which value to pass.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool occupies a distinct slot: two creation paths (extract_clips vs generate_short), one text-only tool (generate_social_package), one job poller (get_render_status), and one read-only options lister. The descriptions explicitly cross-reference each other ("use generate_short instead to create a video from a topic"), so the two video-producing tools cannot be confused.

    Naming Consistency5/5

    All five names follow a strict verb_noun snake_case pattern: extract_clips, generate_short, generate_social_package, get_render_status, list_supported_modes. There is no mixing of conventions or vague verbs.

    Tool Count5/5

    Five tools is a tight, well-scoped surface for a short-video pipeline: two render entry points, one status poller (required because renders are asynchronous), one text helper, and one options reference. Every tool earns its place and nothing is redundant.

    Completeness4/5

    The core lifecycle is covered: start a render (from topic or existing video), poll it, get platform text, and discover valid option values. Minor gaps remain — there is no cancel/abort for a running job, no list of past or active jobs, and no way to retrieve output file paths or clean up sessions, so an agent must infer results from status logs.

    Maintenance

    ActivityActive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      AI-native timeline editor for short-form video. Your agent cuts, captions, adds motion graphics and renders against a real, editable timeline over MCP — not a render queue. Human-in-the-loop by design: it calls request_review and waits while you supervise in a browser. Local-first and AGPL; your footage never leaves your machine.
      2
      AGPL 3.0
    • F
      license
      Not graded
      quality
      A
      maintenance
      A local MCP server that lets chat-based coding agents turn a folder of raw clips into finished, beat-synced montage videos by handling shot selection, music matching, subtitles, transitions, and rendering through natural language. It returns a timeline digest and contact sheet for approval before any frame is rendered.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      An MCP server that gives agents a video engine for cutting beat-synced 9:16 shorts from existing footage, generating original short films from a prompt, and swapping characters in a clip while preserving motion and sound. It handles the deterministic work — scene detection, tracked crops, captions and rendering — while generation runs on private Hugging Face ZeroGPU Spaces in the user's own account.
      3
      Apache 2.0