PageSourceSearch

https://www.openshorts.app/

html openshorts.app collected 2026-10-05 02:31:11 UTC 43,287 bytes, 403 lines download raw bytes

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 &middot; 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 &middot; $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 &middot; 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> &middot;
361    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives/klap">Klap alternative</a> &middot;
362    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives/vizard">Vizard alternative</a> &middot;
363    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives/submagic">Submagic alternative</a> &middot;
364    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/free-ai-clip-generator">Free AI clip generator</a> &middot;
365    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/tools">Free tools</a> &middot;
366    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/youtube-transcript-generator">YouTube transcript generator</a> &middot;
367    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/youtube-tag-generator">YouTube tag generator</a> &middot;
368    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/video-aspect-ratio-converter">Video to 9:16 converter</a> &middot;
369    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/auto-clip">Auto clip</a> &middot;
370    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/youtube-automation">YouTube automation</a> &middot;
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> &middot;
372    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/open-source-video-clipper">Open source video clipper</a> &middot;
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> &middot;
374    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/podcast-to-shorts">Podcast to shorts</a> &middot;
375    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/youtube-to-shorts-converter">YouTube to Shorts converter</a> &middot;
376    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/how-openshorts-works">How it works</a> &middot;
377    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternatives">All alternatives compared</a> &middot;
378    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/alternativas">Alternativas (ES)</a> &middot;
379    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/opus-clip-pricing">Opus Clip pricing</a> &middot;
380    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/opus-clip-free-alternative">Free Opus Clip alternative</a> &middot;
381    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/opus-ai">Opus AI</a> &middot;
382    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/opus-pro">Opus Pro</a> &middot;
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> &middot;
384    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/submagic-reviews">Submagic review</a> &middot;
385    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/mcp">MCP server &amp; API</a> &middot;
386    <a style="color:oklch(86% 0.01 262);text-underline-offset:3px" href="/automate-shorts-api">Automate shorts via API</a> &middot;
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.