OpenShorts
About
Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube: AI moment detection, 9:16 reframing, captions and dubbing.
Details
- Author
- mutonby
- Categories
- Other, Web Scraping
Jump to
Setup
Install OpenShorts in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/mutonby/openshorts
Follow the installation instructions in the repository README, then restart your MCP client.
Open source AI video platformwith 3 tools in one:Clip Generator,AI Shorts (UGC videos with AI actors), andYouTube Studio.
Two ways to run it, same software either way:
Self-hosting is genuinely free and always will be. It costs you a machine, your own API keys and the time to keep it running. The hosted plans exist to cover that hardware and those keys, not to unlock features.
https://github.com/user-attachments/assets/b45fa983-16b4-48b5-ac5b-a267836b9ad9
Click the image above to watch the full walkthrough.
Turn your long-form videos — podcasts, webinars, livestreams, vlogs, interviews — into viral-ready 9:16 shorts for TikTok, Instagram Reels, and YouTube Shorts.
Generate marketing videos with AI actors forany product or business. No camera, no studio, no influencer budget. Just describe your product or paste a URL.
- Two cost modes: Low Cost ($0.65/video) and Premium ($2/video)
- Works for any business: SaaS, restaurants, e-commerce, coaching, local businesses
- AI-generated actors with lip-sync, voiceover, b-roll, and TikTok-style subtitles
- Choose from a shared avatar gallery or upload your own photo
- Publish directly to TikTok, Instagram, and YouTube
Complete free AI YouTube toolkit: thumbnails, titles, descriptions, and direct publishing.
- AI thumbnail generator with face overlay
- 10 viral title suggestions with refinement chat
- Auto-generated descriptions with chapter timestamps
- One-click publish to YouTube
All generated videos and avatars are saved to a public gallery with SEO pages for each video.
- Public gallery page with hover-to-play (/gallery)
- Individual SEO video pages with og:video meta tags (/video/{id})
- JSON-LD structured data for search engines
- Avatar gallery with prompt history
- Viral Moment Detection: Google Gemini 3.0 Flash analyzes transcripts and scene boundaries to detect 3-15 high-potential moments
- Smart 9:16 Cropping: Dual-mode AI reframing — TRACK mode (MediaPipe + YOLOv8 face tracking) and GENERAL mode (blurred background)
- Auto Subtitles: faster-whisper with word-level timestamps, styled and burned into clips
- AI Voice Dubbing: ElevenLabs integration for 30+ languages with voice cloning
- Hook Text Overlays: AI-generated attention-grabbing text overlays
- AI Video Effects: Gemini-generated FFmpeg filters for professional effects
- Analyze: Scrape website URL + web research, or generate from manual description
- Script: AI writes viral scripts (hook - problem - solution - CTA format)
- Actor: Generate AI actors with Flux 2 Pro or select from shared gallery
- Voice: ElevenLabs TTS voiceover (English/Spanish, male/female)
- Video: Talking head generation (Hailuo 2.3 Fast img2video + VEED Lipsync)
- B-roll: AI-generated visuals with Ken Burns effect
- Composite: FFmpeg final assembly with subtitles and hook overlays
- Publish: Direct posting to TikTok, Instagram Reels, YouTube Shorts via Upload-Post
- AI-powered title generation with 10 viral options
- Interactive refinement chat for titles
- AI thumbnail generation with custom face + background
- Auto descriptions with chapter timestamps from Whisper transcript
- Direct YouTube publishing via Upload-Post
- One-click postingto TikTok, Instagram Reels, and YouTube Shorts simultaneously
- Schedule uploadsfor any date and time — plan your content calendar and let OpenShorts publish automatically
- Multi-platform distribution— publish to all your social networks at once from a single interface
- Upload-Post integration with async uploads
- S3 cloud backup (private bucket for clips, public bucket for gallery/avatars)
- SEO gallery pages served by FastAPI with JSON-LD structured data
- Shared avatar gallery across all users
- Async job queue with configurable concurrency
- Content creators— Turn long videos into shorts automatically, publish to all platforms at once
- Marketing agencies— Generate UGC videos for clients at scale, no actors or studios needed
- SaaS founders— Create product demos and marketing shorts from just a URL
- E-commerce brands— Product videos with AI actors for TikTok Shop, Instagram, YouTube
- Local businesses— Restaurants, gyms, real estate, coaching — affordable video marketing
- Developers— Self-host, customize the pipeline, integrate via API
Videos generated with OpenShorts AI Shorts — no camera, no studio, no actors:
Browse all videos atopenshorts.app/gallery
Self-hosting OpenShorts is free. You provide the machine and you only pay for the AI APIs you use, and most have generous free tiers:
Bottom line:You can clip videos for practically free with Gemini, and publish 10 videos/month to all social networks at zero cost with Upload-Post.
- Docker & Docker Compose
- Google Gemini API Key(Free — get it here) — required for all AI features
- fal.ai API Key(Pay-per-use) — required for AI Shorts (actor generation, video, lip-sync)
- ElevenLabs API Key(Free tier) — required for voiceover/dubbing
- Upload-Post API Key(free tier) — required for direct social posting
git clone https://github.com/your-username/OpenShorts.git cd OpenShorts
cp .env.example .env # Edit .env with your AWS keys for S3 backup
- Go toSettingsand enter your API keys (Gemini, fal.ai, ElevenLabs, Upload-Post)
- Clip Generator: Upload a long-form video to generate viral shorts
- AI Shorts: Describe your product or paste a URL to generate UGC marketing videos
- YouTube Studio: Generate thumbnails, titles, and descriptions for YouTube
- UGC Gallery: Browse all generated videos and avatars
- Ingest— Local video upload (or self-hosted URL ingest via yt-dlp)
- Transcribe— faster-whisper with word-level timestamps
- Detect— PySceneDetect for scene boundaries
- Analyze— Gemini identifies 3-15 viral moments (15-60s each)
- Extract— FFmpeg precise clip cutting
- Reframe— AI vertical cropping with subject tracking
- Effects— Subtitles, hooks, AI video effects
- Publish— S3 backup + Upload-Post social distribution
- Analyze— Website scraping + Gemini web research (or manual description)
- Script— Gemini generates viral scripts with segments
- Actor— Flux 2 Pro portrait generation (or gallery/upload)
- Voice— ElevenLabs TTS voiceover
- Video— Hailuo 2.3 Fast img2video + VEED Lipsync (Low Cost) or Kling Avatar v2 (Premium)
- B-roll— Flux 2 Pro image generation + Ken Burns effect
- Composite— FFmpeg assembly with ASS subtitles and hook overlays
- Gallery— Upload to public S3 with metadata for SEO pages
- Publish— Upload-Post to TikTok, Instagram, YouTube
Automate It: MCP Server, REST API and Webhooks
You don't need the dashboard. The whole pipeline is callable by AI agents and scripts.
OpenShorts ships a built-inMCPserver, so Claude, ChatGPT, Cursor or any MCP client can clip and publish videos for you:
# Hosted (create an API key in your account page at openshorts.app): claude mcp add --transport http openshorts https://mcp.openshorts.app/mcp \ --header "Authorization: Bearer osk_..." # Self-hosted (no key needed, BYOK rules apply): claude mcp add --transport http openshorts http://localhost:8000/mcp
Tools:process_video,get_job_status,list_clips,get_quota,add_subtitles,publish_clip. A prompt like"clip this podcast and schedule the best 3 to TikTok"is now a one-liner in your agent of choice.
Hosted accounts can mintosk_...API keys (account page). A key authenticates as you everywhere — same plan, same minutes, same job ownership:
curl -X POST https://api.openshorts.app/api/process \ -H "Authorization: Bearer osk_..." -H "Content-Type: application/json" \ -d '{"url": "https://youtube.com/watch?v=...", "acknowledged": true, "webhook_url": "https://your-server.com/hooks/openshorts"}'
Interactive docs at/docs(OpenAPI) on any instance.
Passwebhook_url(and optionallywebhook_secret) toPOST /api/processand you get exactly onePOSTwhen the job reaches a terminal state — no polling loops in your n8n / Zapier / cron pipelines:
{"event": "job.completed", "job_id": "…", "clips": [{"index": 0, "title": "…", "video_url": "…", "download_url": "…"}]}
With a secret, the body is signed:X-OpenShorts-Signature: sha256=<hmac-sha256(body)>.
The same API from the terminal, zero dependencies (cli/):
pip install openshorts # or: uvx openshorts export OPENSHORTS_API_KEY=osk_... # hosted # export OPENSHORTS_API_URL=http://localhost:8000 # self-hosted, no key openshorts process "https://youtube.com/watch?v=..." --wait openshorts clips <job_id> openshorts publish <job_id> 0 --platforms tiktok,youtube
skills/openshorts/SKILL.mdfollows the openAgent Skillsstandard, so it works in any skill-capable agent:
# Claude Code (and most agents): copy the folder into the skills directory cp -r skills/openshorts ~/.claude/skills/ # Hermes Agent: install straight from this repo hermes skills install mutonby/openshorts/skills/openshorts # OpenClaw: from ClawHub openclaw skills install @mutonby/openshorts
An importable workflow (video URL in, published-ready clips out, no polling) lives inexamples/n8n/.
Client-side (encrypted in localStorage):
- Non-Root Execution: Containers run as dedicatedappuser
- Concurrency Control: Semaphore-based job queue (MAX_CONCURRENT_JOBS)
- Auto-Cleanup: Automatic purging of old jobs (1h retention)
- Encrypted Keys: API keys encrypted client-side, never stored server-side
- Upload Validation: Image uploads validated for format and minimum size
- File Limits: 2GB upload limit protection
- Register:app.upload-post.com/login
- Create Profile: Go toManage Users
- Connect Accounts: Link TikTok, Instagram, and/or YouTube
- Get API Key: Navigate toAPI Keys
- Use in OpenShorts: Paste the key in Settings
Contributions are welcome! Whether it's adding new AI models, improving the lip-sync pipeline, or building new features — feel free to open a PR.
MIT License for the core application — OpenShorts is yours to use, modify, and scale.
AI-powered Business Helper that analyzes thousands of YouTube videos to extract precise insights, timestamps, and actionable strategies. Instantly find the most relevant moments from podcasts, interviews, and lectures—turning long-form content into targeted business intelligence.
AI post-production for audio and video — transcribe, summarize, find clips, cut horizontal or 9:16 vertical clips, publish to YouTube. Per-job pricing, no account.
Remote MCP that scrapes customer comments and reviews from Reddit, YouTube, Amazon, TikTok, app stores, and 25+ other platforms, then turns them into ad angles and customer language for marketers.
100% Free AI audio and video transcription with speaker diarization and YouTube support.
Give your AI the ability to read the web. Fetches URLs as clean markdown with 9 fallback strategies. Handles tweets, YouTube, arXiv, PDFs, and regular pages.
Turn any video — YouTube, Instagram, TikTok, Loom, direct URLs, or local files — into transcripts, key frames, OCR text, and metadata for AI agents.
Extracts information from YouTube videos and channels using the YouTube Data API.
Retrieves transcripts from YouTube videos for content analysis and processing.
YouTube transcript API for AI agents - pay per successful transcript via x402 (USDC on Base); failed videos are never charged
YouTube growth toolkit for AI agents - research keywords, analyze channels, audit videos, pull transcripts, and more to find what works on YouTube.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




