shorts-generator
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Basarisiz
- rm -rf — Recursive force deletion command in .github/workflows/docker-publish.yml
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Self-hosted Opus Clip / Klap / Vizard alternative: turn long videos into captioned 9:16 Shorts with local Whisper, face tracking, active-speaker cuts and Remotion captions. MCP-ready, MIT.
⚡ ShortsFlow AI Studio
The self-hosted Opus Clip alternative.
Paste a podcast or YouTube link, get captioned 9:16 Shorts that cut to whoever is talking. Free, local, no watermark, no credit caps.
Clip long videos with local Whisper, an LLM that scores the hooks, face-tracked 9:16 crops, a stacked two-speaker split or active-speaker switching, and Remotion spring captions.
Or generate from an idea with 30+ formats (facts quizzes, explainers, top-5 lists, stories) and drive everything from a browser UI, the CLI, Docker, Colab or an MCP agent.
🎬 Running in production: the YouTube channel @spottheliee is generated and posted entirely by ShortsFlow - 6 "spot the lie" Shorts a day from one GitHub Actions workflow.
⭐ If ShortsFlow saves you an Opus Clip subscription, please star the repo - it helps more creators find it.
⚡ Quick Start - pick one
| Option | Command | Best for |
|---|---|---|
| ☁️ Google Colab (free GPU, zero install) | Trying it in 5 minutes | |
| 🐳 Docker (browser WebUI) | docker run -p 7860:7860 -e GEMINI_API_KEY=your_key ghcr.io/ghost1412/shorts-generator → open http://localhost:7860 |
Servers, Linux, no Python setup |
| 🌐 Browser WebUI | pip install -r requirements-full.txt && python webui.py |
Local use with a GPU |
| 🖥️ Desktop Studio GUI (Windows) | setup.bat && launch.bat |
Windows desktop |
| 🤖 AI agents | python mcp_server.py or point your agent at SKILL.md |
Claude Code, Cursor, n8n |
git clone --depth 1 https://github.com/ghost1412/shorts-generator.git
cd shorts-generator
🐧 Linux / macOS:
chmod +x setup.sh && ./setup.sh && python3 webui.py
⚡ ShortsFlow vs Opus Clip, Klap & Vizard
| ⚡ ShortsFlow | Paid clippers | |
|---|---|---|
| Price | Free (MIT). You pay only for the LLM key you choose, or $0 with Ollama | ~$19-49 / month with minute or credit caps |
| Where your video goes | Stays on your machine; Whisper runs locally | Uploaded to their cloud |
| Watermark / export limits | None | Watermark and caps on lower tiers |
| Face-tracked 9:16 reframing | ✅ | ✅ |
| Podcast layouts | ✅ single, stacked split, active-speaker switching | ✅ varies by tool |
| Word-level animated captions | ✅ Remotion (Hormozi, Glow Box, Bounce, Minimal) | ✅ |
| Virality / hook score per clip | ✅ in --output_json (WebUI view planned) |
✅ |
| Dubbing | ✅ | Often a paid add-on |
| Idea-to-video (facts, explainers, stories) | ✅ 30+ modes | ❌ clipping only |
| Automation | ✅ CLI, MCP server, Docker, GitHub Actions | API usually on higher tiers |
| Polished timeline editor | ❌ not yet | ✅ |
| Multi-platform scheduling | YouTube upload only | ✅ |
Honest take: the paid tools have a nicer editor and scheduling. ShortsFlow wins on cost, privacy, and being scriptable.
🖥️ Desktop Studio GUI (gui_app.py)
- 3-Column Single-Window Studio Layout: Live 9:16 vertical canvas preview, mode picker, preset cards, and 1-click render launcher.
- Interactive Remotion Presets: 1-click selection between
HORMOZI,GLOW_BOX,BOUNCE, andMINIMALspring captions.
🎬 Video Generator Modes
| Mode | Visual Format | Quick Command |
|---|---|---|
| ✂️ AI Clipping | Slices long YouTube/local videos into high-scoring vertical shorts | py main.py --source_video "URL" --smart_crop |
| 🔢 Top 5 Countdown | Numbered listicle countdown shorts (#5 ➔ #1) with rank badges | py main.py --mode TOP_5 --category "inventions" |
| 💬 Chat Story | Animated text message conversation shorts (iMessage format) | py main.py --mode CHAT_STORY --category "mystery" |
| 👥 Podcast | 2-speaker debate shorts with alternating multi-voice synthesis | py main.py --mode PODCAST --prompt "AI future" |
| 🌐 Video Dubbing | Multilingual video translation & voice re-synthesis | py main.py --mode DUB --source_video "clip.mp4" --target_lang es |
| 🧮 Manim Explainer | Programmatic 2D/3D math, CS, and science animations | py main.py --mode EXPLAINER --prompt "Gravity" |
| 💡 AI Facts | High-energy trivia & mystery facts with scene stock loops | py main.py --mode FACTS --category "space" |
| 📖 AI Story | Narrative story voiceover with visual scene stitching | py main.py --mode STORY --category "sci-fi" |
| 🤔 This or That (WYR) | Split-screen dilemma challenge with VS central badge | py main.py --mode WYR --category "superpowers" |
| 🧩 Emoji Guess | Interactive emoji puzzle game with animated reveal | py main.py --mode EMOJI_GUESS --category "movies" |
| 📰 News Breakdown | RSS news headline summary with cartoon personas | py main.py --mode NEWS --cartoon --persona mafia_cat |
🎛️ Engine Power Capabilities
| Capability | Supported Technologies & Flags |
|---|---|
| 🎙️ Voice Synthesis & Cloning | Zero-Shot Voice Cloning (--clone_voice "sample.wav"), VoiceStudio Local REST (--tts_provider voicestudio), ElevenLabs, EdgeTTS |
| 📐 Aspect Ratios | 9:16 (Vertical), 16:9 (Landscape), 1:1 (Square), 4:5 (Social Feed) via --aspect_ratio |
| 🔊 Audio Mastering & SFX | Auto SFX (whoosh, pop, riser, boom), Dynamic BGM Audio Ducking (--auto_ducking), Studio Master Filter (--enhance_audio) |
| 🎥 Motion & Visual Filters | Dynamic Camera Push-In Zoom (--enable_zoom), 12 Color Grade Presets (--video_filter cyberpunk, kurosawa, teal_orange) |
| 📦 Batch Automation | Automated queue execution from CSV / text lists (--batch_file "topics.txt") |
| 🤖 Multi-LLM Matrix | Google Gemini, Local Ollama (qwen3:8b), DeepSeek, Groq, Anthropic, OpenRouter (--llm_provider) |
🎨 Visual Color Grading Presets (--video_filter)
| Preset Name | Visual Atmosphere | Preset Name | Visual Atmosphere |
|---|---|---|---|
dynamic |
AI auto-switches color grade per scene beat | kurosawa |
Black & White high-contrast samurai |
cyberpunk |
Neon boosted purples/blues for night sci-fi | teal_orange |
Blockbuster movie cinematic color balance |
cinematic_warm |
Golden hour warmth for scenery & drama | vibrant_action |
Sharp contrast & saturation for sports/action |
vintage_vhs |
Analog retro tape scanlines & color shift | moody_dark |
Dark fantasy / horror shadow contrast |
🤖 Model Context Protocol (MCP) & AI Agent Server
ShortsFlow AI Studio provides a native MCP Server (mcp_server.py) allowing AI assistants (Claude Desktop, Cursor, Antigravity, n8n, AutoGPT) to create shorts autonomously:
# Launch MCP Server over standard I/O for AI IDEs & Workflow Engines
python mcp_server.py
Available MCP Tools:
generate_short: Create AI shorts from topics or prompts.extract_clips: Slice long YouTube videos into vertical shorts with face tracking, a stacked two-speaker split (layout: split) or active-speaker switching (layout: active).generate_social_package: Generate platform metadata (.meta.json) for YouTube Shorts, TikTok, and Reels.get_render_status: Query live rendering job progress.
🔌 REST API & Webhooks
pip install -r requirements-full.txt
SHORTSFLOW_API_KEY=change-me python -m api # http://127.0.0.1:8080/docs
curl -X POST localhost:8080/v1/clips -H "Authorization: Bearer change-me" -H "Content-Type: application/json" -d '{"source_video": "https://youtu.be/VIDEO_ID", "layout": "active", "clip_count": 3, "webhook_url": "https://example.com/hook"}'
# -> {"id": "a1b2c3", "status": "queued", "url": "/v1/jobs/a1b2c3"}
curl localhost:8080/v1/jobs/a1b2c3 -H "Authorization: Bearer change-me" # status + files[] download links
POST /v1/shorts generates from an idea (mode, category, prompt...). Webhooks are signed withX-ShortsFlow-Signature: sha256=<HMAC of body> when SHORTSFLOW_WEBHOOK_SECRET is set. Jobs run one at a time by default
(SHORTSFLOW_MAX_CONCURRENT). A ready-made n8n flow lives in examples/n8n/.
💡 Top Command Recipes
# 1. Podcast Shorts that cut to whoever is talking (stacked split when unsure) + silence removal
py main.py --source_video "https://www.youtube.com/watch?v=VIDEO_ID" --extract_mode shorts --layout active --tighten --use_remotion
# 2. High-Retention Short with Voice Cloning, Zoom Motion & Audio Ducking
py main.py --mode FACTS --category "cyberpunk AI" --tts_provider voicestudio --clone_voice "my_voice.wav" --enable_zoom --auto_ducking --use_remotion
# 3. Render Landscape 16:9 YouTube Video with SFX
py main.py --mode EXPLAINER --prompt "Quantum physics" --aspect_ratio 16:9 --sfx_preset whoosh
# 4. Translate and Dub Video into Spanish
py main.py --mode DUB --source_video "https://www.youtube.com/watch?v=VIDEO_ID" --target_lang es --use_remotion
# 5. Process Batch Content Calendar Queue
py main.py --batch_file "topics.txt" --mode FACTS --aspect_ratio 9:16 --use_remotion
⚙️ Environment Configuration (.env)
Rename env.example to .env:
GEMINI_API_KEY=your_gemini_key_here
HF_API_KEY=your_huggingface_key_here
PEXELS_API_KEY=your_pexels_key_here
# Local Voice Studio & Production Defaults
VOICE_PROVIDER=auto
VOICE_STUDIO_URL=http://localhost:8000/v1/audio/speech
DEFAULT_ASPECT_RATIO=9:16
AUTO_DUCKING=true
🤖 AI Agent Onboarding
If you are an AI Coding Agent (Cursor, Antigravity, Claude Code, Copilot, AutoGPT) onboarding into this codebase, see AGENTS.md for structured architectural context, module maps, CLI skills, and execution rules, and ROADMAP.md for the open task board.
⭐ Star History
📄 License
ShortsFlow AI Studio is open-source software licensed under the MIT License.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi