1<!doctype html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8" /> 6 <link rel="icon" type="image/png" href="/logo-openshorts.png" /> 7 <!-- viewport-fit=cover so the bottom tab bar can pad itself past the iOS home 8 indicator with env(safe-area-inset-bottom); without it that inset reads 0. --> 9 <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> 10 <meta name="theme-color" content="#0b0d12" /> 11 <meta name="color-scheme" content="dark" /> 12 13 <!-- Fonts: Lumen system (Instrument Serif display · Geist body · JetBrains Mono labels). 14 Served from this origin, not fonts.googleapis.com: a Google-hosted 15 stylesheet sends every visitor's IP address to a US processor before the 16 page has rendered and before anyone consented to anything. See 17 public/fonts.css for how the subsets were generated. --> 18 <link rel="stylesheet" href="/fonts.css" /> 19 20 <!-- Primary SEO Meta Tags --> 21 <!-- Title and description are kept under 60 and 160 characters (measured, not 22 eyeballed): Google truncates past roughly that width, and a truncated 23 description is a worse answer than a shorter deliberate one. --> 24 <title>OpenShorts - Free Open Source AI Clip Generator (MIT)</title> 25 <meta name="description" content="Open source AI clip generator: turn long videos into 9:16 shorts for TikTok, Reels and Shorts. Self-host free under MIT, or cloud from $12/month." /> 26 <meta name="author" content="OpenShorts" /> 27 <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" /> 28 <!-- Canonical must match the host actually served. The apex redirects to www, 29 so pointing this at the apex named a URL that only ever redirects. --> 30 <link rel="canonical" href="https://www.openshorts.app/" /> 31 32 <!-- Open Graph / Facebook --> 33 <meta property="og:type" content="website" /> 34 <meta property="og:url" content="https://www.openshorts.app/" /> 35 <meta property="og:title" 36 content="OpenShorts - Open Source AI Clip Generator" /> 37 <meta property="og:description" 38 content="Turn long videos into viral 9:16 shorts, or generate UGC videos with AI actors. Self-host free under MIT, or use the cloud from $12/month with 20 free minutes." /> 39 <meta property="og:image" content="https://www.openshorts.app/og-image.png" /> 40 <meta property="og:image:width" content="1200" /> 41 <meta property="og:image:height" content="630" /> 42 <meta property="og:site_name" content="OpenShorts" /> 43 <meta property="og:locale" content="en_US" /> 44 45 <!-- Twitter Cards --> 46 <meta name="twitter:card" content="summary_large_image" /> 47 <meta name="twitter:url" content="https://www.openshorts.app/" /> 48 <meta name="twitter:title" 49 content="OpenShorts - Open Source AI Clip Generator" /> 50 <meta name="twitter:description" 51 content="Self-host free under MIT with no watermark and no cap, or use OpenShorts Cloud from $12/month." /> 52 <meta name="twitter:image" content="https://www.openshorts.app/og-image.png" /> 53 54 <!-- JSON-LD Structured Data 55 Two products, described separately and on purpose. The previous graph 56 declared a single SoftwareApplication priced at 0, which is true of the 57 self-hosted edition and false of the hosted one, so engines summarised the 58 whole product as free. SoftwareApplication below is the MIT project; 59 Service is OpenShorts Cloud, with the real price range on it. --> 60
60<script type="application/ld+json"> 61 { 62 "@context": "https://schema.org", 63 "@graph": [ 64 { 65 "@type": "WebSite", 66 "@id": "https://www.openshorts.app/#website", 67 "url": "https://www.openshorts.app/", 68 "name": "OpenShorts", 69 "publisher": { "@id": "https://www.openshorts.app/#organization" }, 70 "inLanguage": "en-US" 71 }, 72 { 73 "@type": "WebPage", 74 "@id": "https://www.openshorts.app/#webpage", 75 "name": "OpenShorts - Open Source AI Clip Generator", 76 "description": "Open source AI clip generator that turns long videos into viral 9:16 clips for TikTok, Instagram Reels and YouTube Shorts. Free and self-hostable under MIT, or hosted from $12/month.", 77 "url": "https://www.openshorts.app/", 78 "isPartOf": { "@id": "https://www.openshorts.app/#website" }, 79 "about": { "@id": "https://www.openshorts.app/#software" }, 80 "datePublished": "2024-06-01", 81 "dateModified": "2026-07-27", 82 "inLanguage": "en-US", 83 "speakable": { 84 "@type": "SpeakableSpecification", 85 "cssSelector": ["h1", ".hero-description", ".faq-answer"] 86 } 87 }, 88 { 89 "@type": "SoftwareApplication", 90 "@id": "https://www.openshorts.app/#software", 91 "name": "OpenShorts", 92 "alternateName": "OpenShorts self-hosted", 93 "description": "Open source AI clip generator, MIT licensed and self-hosted with Docker. Turns long-form videos into viral-ready 9:16 clips for TikTok, Instagram Reels and YouTube Shorts using Google Gemini 3.1 Flash-Lite for moment detection, faster-whisper for word-level subtitles and MediaPipe for face-tracked reframing. This edition is free with no watermark and no usage cap; you supply your own API keys. The hosted service is priced separately.", 94 "applicationCategory": "MultimediaApplication", 95 "operatingSystem": "Cross-platform (Docker)", 96 "url": "https://www.openshorts.app/", 97 "downloadUrl": "https://github.com/mutonby/openshorts", 98 "codeRepository": "https://github.com/mutonby/openshorts", 99 "license": "https://opensource.org/licenses/MIT", 100 "isAccessibleForFree": true, 101 "softwareVersion": "2.0", 102 "screenshot": "https://www.openshorts.app/og-image.png", 103 "featureList": [ 104 "AI viral moment detection with Google Gemini 3.1 Flash-Lite", 105 "Smart 9:16 vertical cropping with MediaPipe face tracking and YOLOv8 fallback", 106 "Automatic subtitle generation with word-level timestamps", 107 "AI voice dubbing in 30+ languages via ElevenLabs", 108 "Local video file upload and YouTube link ingest", 109 "Hook text overlays with styled fonts", 110 "AI-generated video effects via FFmpeg", 111 "Direct posting to TikTok, Instagram Reels and YouTube Shorts", 112 "AI YouTube thumbnail generator", 113 "AI YouTube title generator with 10 viral suggestions", 114 "AI YouTube description generator with chapter timestamps", 115 "AI UGC video creator with AI actors and lip-sync from $0.65 per video", 116 "S3 cloud backup", 117 "Self-hosted Docker Compose deployment" 118 ], 119 "offers": { 120 "@type": "Offer", 121 "price": "0", 122 "priceCurrency": "USD", 123 "availability": "https://schema.org/InStock", 124 "description": "Self-hosted edition. Free and open source under MIT, no watermark, no usage cap. Requires Docker and your own API keys." 125 }, 126 "author": { "@id": "https://www.openshorts.app/#organization" } 127 }, 128 { 129 "@type": "Service", 130 "@id": "https://www.openshorts.app/#cloud", 131 "name": "OpenShorts Cloud", 132 "serviceType": "Hosted AI video clipping service", 133 "description": "The hosted edition of OpenShorts. Runs the same pipeline on an NVIDIA GPU with the API keys included, so there is nothing to install or configure. The free tier is 20 minutes per month with a watermark and no credit card. Paid plans remove the watermark and start at $12/month for 100 minutes.", 134 "url": "https://www.openshorts.app/", 135 "provider": { "@id": "https://www.openshorts.app/#organization" }, 136 "areaServed": "Worldwide", 137 "offers": { 138 "@type": "AggregateOffer", 139 "priceCurrency": "USD", 140 "lowPrice": "12", 141 "highPrice": "59", 142 "offerCount": "4", 143 "availability": "https://schema.org/InStock", 144 "offers": [ 145 { 146 "@type": "Offer", 147 "name": "Free", 148 "price": "0", 149 "priceCurrency": "USD", 150 "description": "20 minutes of video per month, watermarked, no credit card required." 151 }, 152 { 153 "@type": "Offer", 154 "name": "Starter", 155 "price": "12", 156 "priceCurrency": "USD", 157 "description": "100 minutes of video per month, no watermark.", 158 "priceSpecification": { 159 "@type": "UnitPriceSpecification", 160 "price": "12", 161 "priceCurrency": "USD", 162 "billingDuration": 1, 163 "billingIncrement": 1, 164 "unitCode": "MON" 165 } 166 } 167 ] 168 } 169 }, 170 { 171 "@type": "FAQPage", 172 "@id": "https://www.openshorts.app/#faq", 173 "mainEntity": [ 174 { 175 "@type": "Question", 176 "name": "What is OpenShorts?",
177 "acceptedAnswer": { 178 "@type": "Answer", 179 "text": "OpenShorts is an open source AI clip generator that turns long videos (podcasts, webinars, livestreams, vlogs, interviews) into viral-ready 9:16 vertical clips for TikTok, Instagram Reels and YouTube Shorts. faster-whisper transcribes the audio with word-level timestamps, PySceneDetect finds the scene boundaries, and Google Gemini 3.1 Flash-Lite scores the transcript to pick the 3 to 15 strongest moments. Each clip is then reframed to vertical with MediaPipe face tracking and subtitled automatically. It comes in two editions: self-hosted, which is free and open source under MIT, and OpenShorts Cloud, which is the hosted service with a free 20 minute per month tier and paid plans from $12 per month." 180 } 181 }, 182 { 183 "@type": "Question", 184 "name": "Is OpenShorts free? What is the catch?", 185 "acceptedAnswer": { 186 "@type": "Answer", 187 "text": "Both answers are true of different editions, so the distinction matters. OpenShorts self-hosted is free and open source under the MIT licence: you run it with Docker on your own machine, bring your own API keys, and there is no watermark, no usage cap and no subscription. What it costs you is hardware and time, because on a typical CPU an 8-minute video takes 5 to 8 minutes to process, and you need your own Google Gemini API key, whose free tier covers 1,500 requests per day. OpenShorts Cloud is the hosted service: an NVIDIA GPU clips that same 8-minute video in about 50 seconds, the API keys are included, and auto-posting to TikTok, Instagram and YouTube is already wired up. Cloud has a free plan of 20 minutes per month with a watermark and no credit card, and paid plans from $12 per month for 100 minutes with no watermark, up to $59 per month. So it is free if you run it yourself, and paid above 20 minutes a month if you want it hosted." 188 } 189 }, 190 { 191 "@type": "Question", 192 "name": "How much does OpenShorts Cloud cost?", 193 "acceptedAnswer": { 194 "@type": "Answer", 195 "text": "OpenShorts Cloud has a permanently free tier of 20 minutes of video per month, watermarked, with no credit card required. Paid plans remove the watermark and start at $12 per month for 100 minutes, rising to $59 per month at the top tier. This is separate from the self-hosted edition, which is free under MIT and has no cap because there is no metering in it." 196 } 197 }, 198 { 199 "@type": "Question", 200 "name": "How does OpenShorts detect viral moments in videos?", 201 "acceptedAnswer": { 202 "@type": "Answer", 203 "text": "It uses a multi-step pipeline. faster-whisper transcribes the video with word-level timestamps. PySceneDetect identifies the scene boundaries. Google Gemini 3.1 Flash-Lite then receives the timestamped transcript and the scene data together, and returns the 3 to 15 strongest segments of 15 to 60 seconds each, scored on hook strength, emotional payload and whether the segment stands alone without its surrounding context. Passing the transcript and the scene boundaries together is what stops a clip from starting mid-shot." 204 } 205 }, 206 { 207 "@type": "Question", 208 "name": "How does the AI vertical cropping work?", 209 "acceptedAnswer": { 210 "@type": "Answer", 211 "text": "There are two cropping modes. TRACK mode uses MediaPipe face detection with a YOLOv8 fallback to follow a single subject, damped by a stabiliser that holds the camera still inside a safe zone instead of chasing every head movement, which is what prevents the visible swinging that reads as amateur. GENERAL mode handles group shots and landscapes by preserving the full width over a blurred backdrop. A speaker tracker stops the crop from flipping between people and holds position through brief occlusions." 212 } 213 }, 214 { 215 "@type": "Question", 216 "name": "Is there a free alternative to Opus Clip?",
217 "acceptedAnswer": { 218 "@type": "Answer", 219 "text": "Yes. OpenShorts self-hosted is a free and open source alternative to Opus Clip, MIT licensed, with no watermark and no usage cap, running on your own machine via Docker. As of July 2026 Opus Clip costs $15 per month for the Starter plan with 150 minutes, and $29 per month for Pro with 300 minutes, on top of a watermarked free tier of 60 minutes. Opus Clip bills one credit per minute of source video imported rather than per clip exported. OpenShorts offers comparable AI moment detection using Google Gemini, face-tracked vertical cropping and automatic subtitles, and adds AI voice dubbing into 30+ languages, which Opus Clip does not have. Opus Clip ships a larger caption-style library and needs no setup." 220 } 221 }, 222 { 223 "@type": "Question", 224 "name": "Can OpenShorts add subtitles and translate videos?", 225 "acceptedAnswer": { 226 "@type": "Answer", 227 "text": "Yes. Subtitles are generated with faster-whisper at word-level timestamps and burned into the video with FFmpeg. For translation, ElevenLabs AI dubbing translates the audio into more than 30 languages while preserving the original speaker's voice characteristics, and the dubbed audio is then automatically re-transcribed so the burned-in subtitles are in the target language rather than the original." 228 } 229 }, 230 { 231 "@type": "Question", 232 "name": "Is there an open source clip generator?", 233 "acceptedAnswer": { 234 "@type": "Answer", 235 "text": "OpenShorts is the open source option in this category, MIT licensed with full source at github.com/mutonby/openshorts, self-hosted with Docker Compose. Opus Clip, Klap, Vizard and Submagic are all closed-source cloud products; as of July 2026 their entry prices are $15, $29, $19.99 and around $14 per month respectively. Self-hosting means the source video never leaves your machine and you can change how the pipeline behaves rather than filing a feature request." 236 } 237 } 238 ] 239 }, 240 { 241 "@type": "Organization", 242 "@id": "https://www.openshorts.app/#organization", 243 "name": "OpenShorts", 244 "url": "https://www.openshorts.app/", 245 "logo": { 246 "@type": "ImageObject", 247 "url": "https://www.openshorts.app/logo-openshorts.png" 248 }, 249 "description": "OpenShorts builds an open source AI clip generator that turns long-form video into vertical short-form clips, available both as MIT-licensed self-hosted software and as a hosted service.", 250 "sameAs": [ 251 "https://github.com/mutonby/openshorts", 252 "https://www.aitoolnet.com/openshorts", 253 "https://creatorstoolbox.com/tools/openshorts" 254 ] 255 } 256 ] 257 } 258 </script>
258 259 260 <!-- Analytics â opt-in, disabled by default, and never loaded before consent. 261 A plain `npm run build` (and every local `npm run dev`) leaves the two 262 VITE_OPENPANEL_* variables unset, so nothing is initialised, no script is 263 fetched and no request leaves the browser. Self-hosted instances are 264 silent unless you deliberately turn this on. 265 266 Nothing here RUNS on page load any more: it only publishes 267 window.__osAnalyticsInit, and the React consent manager 268 (src/lib/consent.js) calls it once the visitor has actually accepted the 269 analytics category. Loading a tracker in the static <head> and asking 270 afterwards is the exact pattern LSSI art. 22.2 forbids. 271 272 op1.js is served from this origin (public/op1.js), not from 273 openpanel.dev: a third-party script sees the visitor's IP and can be 274 changed under us at any time. 275 276 To collect analytics for your own deployment: point 277 VITE_OPENPANEL_API_URL / VITE_OPENPANEL_CLIENT_ID at your own OpenPanel 278 instance (see .env.example) and add your hostname to ANALYTICS_HOSTS. --> 279
279<script> 280 window.op = window.op || function () { var n = []; return new Proxy(function () { arguments.length && n.push([].slice.call(arguments)); }, { get: function (t, r) { return "q" === r ? n : function () { n.push([r].concat([].slice.call(arguments))); }; }, has: function (t, r) { return "q" === r; } }); }(); 281 window.__osAnalyticsInit = (function () { 282 var started = false; 283 return function () { 284 if (started) return false; 285 // Vite substitutes these at build time and leaves the placeholder literal 286 // in place when the variable is undefined. 287 var apiUrl = "https://api.openpanel.fotoexamen.com"; 288 var clientId = "9b7ab939-bdef-4097-87c4-bb4a2dbe034d"; 289 var unset = function (v) { return !v || v.charAt(0) === "%"; }; 290 if (unset(apiUrl) || unset(clientId)) return false; 291 292 // Second gate: hosts allowed to report. A dist/ built with credentials 293 // stays inert anywhere else (a fork, a mirror, a preview domain), so a 294 // deployment can never report into somebody else's dashboard. 295 var ANALYTICS_HOSTS = /^(www\.)?openshorts\.app$/; 296 if (!ANALYTICS_HOSTS.test(location.hostname)) return false; 297 298 started = true; 299 window.op("init", { 300 apiUrl: apiUrl, 301 clientId: clientId, 302 trackScreenViews: true, 303 trackOutgoingLinks: true, 304 trackAttributes: true, 305 }); 306 307 var s = document.createElement("script"); 308 s.src = "/op1.js"; 309 s.defer = true; 310 s.async = true; 311 document.head.appendChild(s); 312 return true; 313 }; 314 })(); 315 </script>
315 316
316<script type="module" crossorigin src="/assets/main-16f42893.js"></script>
316 317 <link rel="stylesheet" href="/assets/index-fa38cc42.css"> 318 </head> 319 320<body> 321 <div id="root"><div id="seo-content" style="background:oklch(13% 0.014 265);color:oklch(86% 0.01 262);font-family:'Geist',ui-sans-serif,system-ui,sans-serif;line-height:1.65"> 322 323<section style="padding:3.5rem 0;border-bottom:1px solid oklch(96% 0.006 262 / .08);padding-top:4rem"><div style="max-width:72rem;margin:0 auto;padding:0 1.5rem"> 324 <p style="font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:oklch(76% 0.17 50);margin:0 0 1rem">AI clip generator · cloud or self-hosted</p> 325 <h1 style="font-family:"Instrument Serif",ui-serif,Georgia,serif;font-weight:400;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.06;letter-spacing:-.03em;color:oklch(96% 0.006 262);margin:0 0 1.25rem;text-transform:lowercase">the free open source ai clip generator, built to clip what people actually watch.</h1> 326 <p style="margin:0 0 1rem;color:oklch(86% 0.01 262);line-height:1.65;max-width:44rem;font-size:1.05rem">Turn long videos into viral 9:16 shorts, or generate UGC marketing videos with AI actors. Online in the cloud with zero setup, or self-hosted with Docker for free. Also a clipping tool for AI agents: Claude, ChatGPT and n8n drive it over <a href="/mcp" style="color:oklch(86% 0.01 262);text-underline-offset:3px">MCP</a>, or run a channel on autopilot with <a href="/auto-clip" style="color:oklch(86% 0.01 262);text-underline-offset:3px">Autopilot</a> or the <a href="/n8n-youtube-shorts-automation" style="color:oklch(86% 0.01 262);text-underline-offset:3px">n8n workflow</a>. Just want it free? Start with the <a href="/free-ai-clip-generator" style="color:oklch(86% 0.01 262);text-underline-offset:3px">free AI clip generator</a>.</p> 327 <p style="margin:0 0 1rem;color:oklch(64% 0.012 262);line-height:1.65;max-width:44rem"><strong style="color:oklch(75% 0.11 150)">No credit card required.</strong> Your first video is free up to 60 minutes, then 20 free minutes every month. Paid plans from $12/month without a watermark. Prefer to run it yourself? <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="https://github.com/mutonby/openshorts" rel="noopener">Self-host free on GitHub</a>.</p> 328</div></section> 329 330<section style="padding:3.5rem 0;border-bottom:1px solid oklch(96% 0.006 262 / .08)"><div style="max-width:72rem;margin:0 auto;padding:0 1.5rem"> 331 <h2 style="font-family:"Instrument Serif",ui-serif,Georgia,serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.02em;color:oklch(96% 0.006 262);margin:0 0 1rem;text-transform:lowercase">what openshorts is</h2> 332 <p style="margin:0 0 1rem;color:oklch(86% 0.01 262);line-height:1.65;max-width:48rem">OpenShorts is an open source AI clip generator that turns long videos (podcasts, webinars, livestreams, interviews) into vertical 9:16 clips for TikTok, Instagram Reels and YouTube Shorts.</p> 333 <p style="margin:0 0 1rem;color:oklch(86% 0.01 262);line-height:1.65;max-width:48rem">faster-whisper transcribes the video with word-level timestamps, PySceneDetect finds the scene boundaries, and Google Gemini 3.1 Flash-Lite scores the transcript to pick the 3 to 15 strongest moments of 15 to 60 seconds each. Each moment is then cut with FFmpeg and reframed to 9:16 with MediaPipe face tracking.</p> 334</div></section> 335 336<section style="padding:3.5rem 0;border-bottom:1px solid oklch(96% 0.006 262 / .08)"><div style="max-width:72rem;margin:0 auto;padding:0 1.5rem"> 337 <h2 style="font-family:"Instrument Serif",ui-serif,Georgia,serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.02em;color:oklch(96% 0.006 262);margin:0 0 1rem;text-transform:lowercase">what it costs</h2> 338 <div style="display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));max-width:56rem"> 339 <div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">OpenShorts self-hosted · $0</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Free and open source under MIT. You run it with Docker on your own machine and bring your own API keys. No watermark, no usage cap, no subscription. What it costs you is hardware and time: on a typical CPU an 8-minute video takes 5 to 8 minutes to process.</p></div> 340 <div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">OpenShorts Cloud · free tier, then from $12/month</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">The same software with the compute and API keys covered. An NVIDIA GPU clips that same 8-minute video in about 50 seconds. Free plan: the first video is clipped whole up to 60 minutes, then 20 minutes a month, with a watermark and no credit card. Paid plans start at $12/month for 100 minutes with no watermark, up to $59/month.</p></div> 341 </div> 342</div></section> 343 344<section style="padding:3.5rem 0;border-bottom:1px solid oklch(96% 0.006 262 / .08)"><div style="max-width:72rem;margin:0 auto;padding:0 1.5rem"> 345 <h2 style="font-family:"Instrument Serif",ui-serif,Georgia,serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.02em;color:oklch(96% 0.006 262);margin:0 0 1rem;text-transform:lowercase">features</h2>
346 <div style="display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))"><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">AI viral moment detection</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Google Gemini 3.1 Flash-Lite scores the transcript and scene data to find the 3 to 15 strongest moments, so there is no manual scrubbing.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">Smart 9:16 vertical cropping</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Dual-mode reframing with MediaPipe face tracking and a YOLOv8 fallback, stabilised so the camera holds still instead of swinging.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">Word-level automatic subtitles</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">faster-whisper produces a timestamp for every word, and the subtitles are burned in with FFmpeg.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">AI voice dubbing in 30+ languages</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">ElevenLabs translates the audio while preserving the speaker's voice, then the new track is re-transcribed so subtitles match.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">Hook text overlays</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">AI-written hook titles covering the first seconds, which is where a short-form viewer decides whether to stay.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">AI video effects</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Gemini-generated FFmpeg filter chains for colour grading, transitions and visual clean-up.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">Local video upload</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Podcasts, webinars, livestreams, interviews and vlogs, at full resolution, from a file or a YouTube link.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">Self-hosted and private</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Run it with Docker on your own machine and the source video never leaves your infrastructure.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">Free AI YouTube studio</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">AI thumbnail generator, 10 viral title suggestions and auto-written descriptions with chapter timestamps.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">Direct social publishing</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Post to TikTok, Instagram Reels and YouTube Shorts from the dashboard.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">MCP server, API and CLI for AI agents</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Connect Claude, ChatGPT or n8n to an always-on endpoint (mcp.openshorts.app/mcp) and automate clipping end to end, with a REST API, per-user keys, completion webhooks and a zero-dependency CLI (pip install openshorts
346). Guide at /mcp.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">AI UGC video generator</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">The AI writes a script and generates a lip-synced avatar video for any product or business, from $0.65 per video.</p></div><div style="border:1px solid oklch(96% 0.006 262 / .08);border-radius:10px;padding:1.1rem 1.25rem;background:oklch(16.5% 0.015 265)"><h3 style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem">AI actors with lip-sync</h3><p style="margin:0;color:oklch(64% 0.012 262);font-size:.9rem;line-height:1.6">Pick an AI actor or upload a photo to get a talking-head video with matched lip movement.</p></div></div> 347</div></section> 348 349<section style="padding:3.5rem 0;border-bottom:1px solid oklch(96% 0.006 262 / .08)"><div style="max-width:72rem;margin:0 auto;padding:0 1.5rem"> 350 <h2 style="font-family:"Instrument Serif",ui-serif,Georgia,serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.02em;color:oklch(96% 0.006 262);margin:0 0 1rem;text-transform:lowercase">how it works</h2> 351 <ol style="max-width:48rem;padding-left:1.25rem;margin:0"> 352 <li style="margin-bottom:.75rem"><strong style="color:oklch(96% 0.006 262)">Upload a long-form video.</strong> <span style="color:oklch(64% 0.012 262)">Any video you own: podcasts, webinars, livestreams, interviews, or a YouTube link.</span></li><li style="margin-bottom:.75rem"><strong style="color:oklch(96% 0.006 262)">AI finds the best moments.</strong> <span style="color:oklch(64% 0.012 262)">Gemini 3.1 Flash-Lite returns 3 to 15 candidate clips of 15 to 60 seconds each.</span></li><li style="margin-bottom:.75rem"><strong style="color:oklch(96% 0.006 262)">Smart cropping to vertical 9:16.</strong> <span style="color:oklch(64% 0.012 262)">Face-tracked reframing keeps the subject centred without the camera swinging.</span></li><li style="margin-bottom:.75rem"><strong style="color:oklch(96% 0.006 262)">Subtitles, hooks and effects.</strong> <span style="color:oklch(64% 0.012 262)">Word-level subtitles, an AI hook overlay, optional effects and dubbing into 30+ languages.</span></li><li style="margin-bottom:.75rem"><strong style="color:oklch(96% 0.006 262)">Download or post directly.</strong> <span style="color:oklch(64% 0.012 262)">Export the clips or publish straight to TikTok, Instagram Reels and YouTube Shorts.</span></li> 353 </ol> 354</div></section> 355 356<section style="padding:3.5rem 0;border-bottom:1px solid oklch(96% 0.006 262 / .08)"><div style="max-width:72rem;margin:0 auto;padding:0 1.5rem"> 357 <h2 style="font-family:"Instrument Serif",ui-serif,Georgia,serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.02em;color:oklch(96% 0.006 262);margin:0 0 1rem;text-transform:lowercase">how it compares</h2> 358 <p style="margin:0 0 1rem;color:oklch(64% 0.012 262);line-height:1.65;max-width:48rem">Entry pricing checked 27 July 2026. OpenShorts is $0 self-hosted or $12/month hosted without a watermark. Submagic starts at $14/month, Opus Clip at $15/month, Vizard at $19.99/month and Klap at $29/month. OpenShorts is the only open source and self-hostable option of the five.</p> 359 <p style="margin:0 0 1rem;color:oklch(64% 0.012 262);line-height:1.65"> 360 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives/opus-clip">Opus Clip alternative</a> · 361 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives/klap">Klap alternative</a> · 362 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives/vizard">Vizard alternative</a> · 363 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives/submagic">Submagic alternative</a> · 364 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/free-ai-clip-generator">Free AI clip generator</a> · 365 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/tools">Free tools</a> · 366 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/youtube-transcript-generator">YouTube transcript generator</a> · 367 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/youtube-tag-generator">YouTube tag generator</a> · 368 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/video-aspect-ratio-converter">Video to 9:16 converter</a> · 369 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/auto-clip">Auto clip</a> · 370 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/youtube-automation">YouTube automation</a> · 371 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/free-ai-clip-generator-no-watermark">No-watermark clip generator</a> · 372 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/open-source-video-clipper">Open source video clipper</a> · 373 <a style="color:oklch(86% 0.01 262);
373text-underline-offset:3px" href="/open-source-ai-video-generator">Open source AI video generator</a> · 374 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/podcast-to-shorts">Podcast to shorts</a> · 375 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/youtube-to-shorts-converter">YouTube to Shorts converter</a> · 376 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/how-openshorts-works">How it works</a> · 377 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives">All alternatives compared</a> · 378 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternativas">Alternativas (ES)</a> · 379 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/opus-clip-pricing">Opus Clip pricing</a> · 380 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/opus-clip-free-alternative">Free Opus Clip alternative</a> · 381 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/opus-ai">Opus AI</a> · 382 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/opus-pro">Opus Pro</a> · 383 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/vizard-ai-video-to-text">Vizard AI video to text</a> · 384 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/submagic-reviews">Submagic review</a> · 385 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/mcp">MCP server & API</a> · 386 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/automate-shorts-api">Automate shorts via API</a> · 387 <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/n8n-youtube-shorts-automation">n8n template: channel on autopilot</a> 388 </p> 389</div></section> 390 391<section style="padding:3.5rem 0;border-bottom:1px solid oklch(96% 0.006 262 / .08);border-bottom:none"><div style="max-width:72rem;margin:0 auto;padding:0 1.5rem"> 392 <h2 style="font-family:"Instrument Serif",ui-serif,Georgia,serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.02em;color:oklch(96% 0.006 262);margin:0 0 1rem;text-transform:lowercase">frequently asked questions</h2> 393 <dl style="max-width:48rem;margin:0"> 394 <dt style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem;margin-top:1.5rem">Is OpenShorts free? What is the catch?</dt><dd style="margin:.4rem 0 0;color:oklch(64% 0.012 262)">Both, and the distinction matters. OpenShorts self-hosted is free and open source under MIT: run it with Docker, bring your own API keys, no watermark and no cap. OpenShorts Cloud is the hosted service: 20 free minutes a month with a watermark, then paid plans from $12/month with
394no watermark. Self-hosted costs you hardware and time: on a typical CPU an 8-minute video takes 5 to 8 minutes to process, and you supply your own Google Gemini key, whose free tier covers 1,500 requests a day. On OpenShorts Cloud an NVIDIA GPU clips that same video in about 50 seconds, the Gemini key is included, auto-posting to TikTok, Instagram and YouTube is already wired up, and your clips stay retrievable from any browser.</dd><dt style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem;margin-top:1.5rem">What is OpenShorts and how does it work?</dt><dd style="margin:.4rem 0 0;color:oklch(64% 0.012 262)">OpenShorts is an open source AI clip generator that turns long videos (podcasts, webinars, livestreams, interviews) into vertical 9:16 clips for TikTok, Instagram Reels and YouTube Shorts. faster-whisper transcribes the video with word-level timestamps, PySceneDetect finds the scene boundaries, and Google Gemini 3.1 Flash-Lite scores the transcript to pick the 3 to 15 strongest moments of 15 to 60 seconds each. Each moment is then cut with FFmpeg and reframed to 9:16 with MediaPipe face tracking.</dd><dt style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem;margin-top:1.5rem">How does OpenShorts compare to Opus Clip?</dt><dd style="margin:.4rem 0 0;color:oklch(64% 0.012 262)">Both do AI viral moment detection and smart vertical cropping. OpenShorts is MIT-licensed and can be self-hosted, so the source video never leaves your machine, and it adds voice dubbing into 30+ languages plus an AI UGC generator with lip-synced actors. Opus Clip is closed source and cloud only, starting at $15/month as of July 2026, and it ships a larger caption-style library. Full comparison at /alternatives/opus-clip.</dd><dt style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem;margin-top:1.5rem">How does the smart vertical cropping work?</dt><dd style="margin:.4rem 0 0;color:oklch(64% 0.012 262)">TRACK mode follows a single subject with MediaPipe face detection and a YOLOv8 fallback, damped so the crop holds still inside a safe zone rather than chasing every head movement. GENERAL mode handles group shots and landscapes by preserving the full width over a blurred backdrop. A speaker tracker prevents the crop from flipping between people and holds position through brief occlusions.</dd><dt style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem;margin-top:1.5rem">Can OpenShorts translate and dub videos?</dt><dd style="margin:.4rem 0 0;color:oklch(64% 0.012 262)">Yes, into more than 30 languages through ElevenLabs, preserving the original speaker's voice characteristics. After dubbing, the audio is re-transcribed so the burned-in subtitles are in the target language rather than the original.</dd><dt style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem;margin-top:1.5rem">What is the AI UGC video generator?</dt><dd style="margin:.4rem 0 0;color:oklch(64% 0.012 262)">It generates marketing videos with AI actors for any product or business. You describe the business or paste a website URL, and the AI writes a script, generates a lip-synced actor with voiceover, adds b-roll, subtitles and a hook overlay. Low Cost mode is about $0.65 per video and Premium is about $2.00. It works for restaurants, e-commerce, coaching, local businesses and apps, not only software.</dd><dt style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem;margin-top:1.5rem">Can I automate OpenShorts from Claude, ChatGPT or n8n?</dt><dd style="margin:.4rem 0 0;color:oklch(64% 0.012 262)">Yes. OpenShorts has a native MCP server at mcp.openshorts.app/mcp plus a REST API with per-user keys and completion webhooks, so an agent can submit a video URL, wait for processing, list the clips and publish them. The hosted endpoint is always on, with the API key created in your account page; the self-hosted edition serves the same /mcp endpoint while your machine is running. A zero-dependency CLI is on PyPI as openshorts. Full guide at /mcp.</dd><dt style="font-size:1rem;font-weight:600;color:oklch(96% 0.006 262);margin:0 0 .35rem;margin-top:1.5rem">What are the system requirements to self-host?</dt><dd style="margin:.4rem 0 0;color:oklch(64% 0.012 262)">Any machine with Docker, realistically 8GB of RAM and a modern multi-core CPU. An NVIDIA GPU is optional and cuts processing time by roughly an order of magnitude. Docker Compose pulls Python 3.11, FFmpeg, YOLOv8, MediaPipe, faster-whisper and the React dashboard. Linux, macOS and Windows via WSL2 are supported.</dd> 395 </dl> 396</div></section> 397 398</div></div> 399
400<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"0bf7dd47a5c74cc9a9f7cee446680c3d","r":1,"spa":2}' crossorigin="anonymous"></script>
400 401</body> 402 403</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.