clips-studio-bot commited on
Commit
77bb0eb
·
0 Parent(s):

Sync website from 87c2e7d

Browse files
Files changed (18) hide show
  1. .gitattributes +11 -0
  2. README.md +32 -0
  3. analytics.js +119 -0
  4. assets/mascot-head.png +3 -0
  5. assets/mascot.png +3 -0
  6. changelog.html +190 -0
  7. donate.js +40 -0
  8. index.html +388 -0
  9. kick.html +169 -0
  10. llms.txt +62 -0
  11. local-vs-cloud.html +230 -0
  12. privacy.html +216 -0
  13. roadmap.html +197 -0
  14. robots.txt +39 -0
  15. sitemap.xml +43 -0
  16. styles.css +493 -0
  17. twitch.html +181 -0
  18. youtube.html +170 -0
.gitattributes ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.png filter=lfs diff=lfs merge=lfs -text
2
+ *.jpg filter=lfs diff=lfs merge=lfs -text
3
+ *.jpeg filter=lfs diff=lfs merge=lfs -text
4
+ *.gif filter=lfs diff=lfs merge=lfs -text
5
+ *.webp filter=lfs diff=lfs merge=lfs -text
6
+ *.svg filter=lfs diff=lfs merge=lfs -text
7
+ *.ico filter=lfs diff=lfs merge=lfs -text
8
+ *.mp4 filter=lfs diff=lfs merge=lfs -text
9
+ *.webm filter=lfs diff=lfs merge=lfs -text
10
+ *.woff filter=lfs diff=lfs merge=lfs -text
11
+ *.woff2 filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Clips Studio
3
+ emoji: 🐱
4
+ colorFrom: blue
5
+ colorTo: indigo
6
+ sdk: static
7
+ app_file: index.html
8
+ pinned: false
9
+ license: agpl-3.0
10
+ short_description: Free open-source AI video clipping that runs on your own PC
11
+ ---
12
+
13
+ # Clips Studio
14
+
15
+ Free, open-source AI video clipping that runs on your own computer. Paste a
16
+ Twitch, Kick or YouTube link and get vertical clips with captions and titles —
17
+ no upload, no subscription, no per-clip fee.
18
+
19
+ **This Space is the project website.** Clips Studio is a Windows desktop
20
+ application; it cannot run inside a Space, because it needs a local GPU, FFmpeg
21
+ and your own files.
22
+
23
+ - **Download and source:** <https://github.com/ColinGPT9/clips-studio>
24
+ - **Website:** <https://colingpt9.github.io/clips-studio/>
25
+
26
+ ---
27
+
28
+ The frontmatter above is what makes this folder a Hugging Face **static
29
+ Space** (`sdk: static`, serving `index.html`). The same folder is published to
30
+ GitHub Pages, so every path in the HTML is **relative** — an absolute `/styles.css`
31
+ would work on a Space and break on a project Pages site, which is served from a
32
+ subdirectory.
analytics.js ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Google Analytics 4 for the website.
2
+ *
3
+ * ─────────────────────────────────────────────────────────────────────────
4
+ * PASTE YOUR MEASUREMENT ID BELOW. It is the only thing to change here.
5
+ *
6
+ * Where to find it: analytics.google.com -> Admin -> Data streams -> your
7
+ * web stream. It looks like G-ABC123XYZ4. Not the "GA4 property ID" (a
8
+ * number) and not a UA- id, which is the retired version of Analytics.
9
+ * ─────────────────────────────────────────────────────────────────────────
10
+ *
11
+ * Until an ID is set this file does nothing at all: no script is fetched, no
12
+ * cookie is written. That way it can sit in the repository, and on the
13
+ * Hugging Face mirror, without quietly tracking anyone.
14
+ *
15
+ * This measures the WEBSITE only. The desktop app has no telemetry and this
16
+ * changes nothing about that.
17
+ */
18
+
19
+ var MEASUREMENT_ID = ''
20
+
21
+ ;(function () {
22
+ if (!MEASUREMENT_ID) return // not configured yet: stay inert
23
+
24
+ // Don't count yourself. Previewing the site locally would otherwise show up
25
+ // as real traffic, and on a site with few visitors a handful of your own
26
+ // page loads is enough to make the numbers meaningless.
27
+ var host = location.hostname
28
+ if (
29
+ location.protocol === 'file:' ||
30
+ host === 'localhost' ||
31
+ host === '127.0.0.1' ||
32
+ host === '' ||
33
+ host.endsWith('.local')
34
+ ) {
35
+ return
36
+ }
37
+
38
+ var s = document.createElement('script')
39
+ s.async = true
40
+ s.src = 'https://www.googletagmanager.com/gtag/js?id=' + encodeURIComponent(MEASUREMENT_ID)
41
+ document.head.appendChild(s)
42
+
43
+ window.dataLayer = window.dataLayer || []
44
+ function gtag() {
45
+ window.dataLayer.push(arguments)
46
+ }
47
+ window.gtag = gtag
48
+ gtag('js', new Date())
49
+ gtag('config', MEASUREMENT_ID, {
50
+ // Shortens the visitor's IP before it is stored. GA4 does this by
51
+ // default; setting it explicitly means the intent survives anyone
52
+ // reading this file later.
53
+ anonymize_ip: true
54
+ })
55
+
56
+ // Named events for the three things worth knowing, because "visits" on its
57
+ // own says very little. What matters is how many of those visitors went on
58
+ // to do something: a sponsor asks "how many people actually download it?",
59
+ // and "8% of visitors clicked through to the release" is an answer.
60
+ //
61
+ // GA4's enhanced measurement already logs outbound clicks generically.
62
+ // These are named, so they can be read straight off the Events report
63
+ // instead of being dug out of a list of every external link on the site.
64
+ document.addEventListener(
65
+ 'click',
66
+ function (e) {
67
+ var a = e.target && e.target.closest ? e.target.closest('a[href]') : null
68
+ if (!a) return
69
+ var href = a.getAttribute('href') || ''
70
+
71
+ // Parse it rather than search it. The first version of this asked
72
+ // whether the string CONTAINED "github.com" and "/releases", which
73
+ // "https://example.com/?ref=github.com/releases" satisfies happily.
74
+ // Only the host decides where a link goes, so only the host is asked.
75
+ var url
76
+ try {
77
+ // Relative to this page, so "twitch.html" resolves to our own origin
78
+ // and drops out as internal on the next line.
79
+ url = new URL(href, location.href)
80
+ } catch (e) {
81
+ return // "javascript:", "#", or something malformed
82
+ }
83
+ if (url.origin === location.origin) return // internal navigation
84
+
85
+ var host = url.hostname.toLowerCase()
86
+ var onHost = function (domain) {
87
+ // Label boundary: accepts www.github.com, rejects github.com.evil.net
88
+ return host === domain || host.endsWith('.' + domain)
89
+ }
90
+ var isGitHub = onHost('github.com')
91
+ var isPayPal = onHost('paypal.me') || onHost('paypal.com')
92
+
93
+ // A whole path SEGMENT, so /ColinGPT9/clips-studio/releases matches and
94
+ // so does /releases/latest, while a repository called "releases-notes"
95
+ // does not. Safe to match loosely here: the host is already confirmed.
96
+ var isReleases = /\/releases(\/|$)/.test(url.pathname)
97
+
98
+ var name =
99
+ isGitHub && isReleases
100
+ ? 'download_click'
101
+ : isPayPal
102
+ ? 'donate_click'
103
+ : isGitHub
104
+ ? 'github_click'
105
+ : null
106
+ if (!name) return
107
+ gtag('event', name, {
108
+ // Which page sent them. The Twitch and Kick pages exist to be found
109
+ // by search, so knowing which one converts is the point of having
110
+ // written them.
111
+ page: location.pathname,
112
+ link_url: href
113
+ })
114
+ },
115
+ // Capture phase: the click still navigates away immediately, and a
116
+ // listener that waits for bubbling can lose the event to the unload.
117
+ true
118
+ )
119
+ })()
assets/mascot-head.png ADDED

Git LFS Details

  • SHA256: fb9ac2c06b566876ccb31bc0a63492e97edf96c647db5dde443ff254d6048c85
  • Pointer size: 131 Bytes
  • Size of remote file: 166 kB
assets/mascot.png ADDED

Git LFS Details

  • SHA256: 577af6475b7d6eba33c11fd68b7539998b5a728114ff33bdcae7bb7f45c40b2d
  • Pointer size: 131 Bytes
  • Size of remote file: 173 kB
changelog.html ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Changelog: what changed in each Clips Studio release | Clips Studio</title>
7
+ <meta
8
+ name="description"
9
+ content="Every Clips Studio release and what changed in it, written for creators rather than developers. Free and open-source AI clipping that runs on your own PC."
10
+ />
11
+ <link rel="canonical" href="https://colingpt9.github.io/clips-studio/changelog.html" />
12
+ <link rel="icon" href="assets/mascot.png" />
13
+ <link rel="stylesheet" href="styles.css" />
14
+ <meta property="og:type" content="article" />
15
+ <meta property="og:title" content="Clips Studio changelog" />
16
+ <meta
17
+ property="og:description"
18
+ content="What changed in each release of Clips Studio, in plain terms."
19
+ />
20
+ <meta property="og:image" content="https://colingpt9.github.io/clips-studio/assets/mascot.png" />
21
+
22
+ <script type="application/ld+json">
23
+ {
24
+ "@context": "https://schema.org",
25
+ "@type": "WebPage",
26
+ "name": "Clips Studio changelog",
27
+ "description": "Every Clips Studio release and what changed in it, written for creators rather than developers.",
28
+ "url": "https://colingpt9.github.io/clips-studio/changelog.html",
29
+ "isPartOf": {
30
+ "@type": "WebSite",
31
+ "name": "Clips Studio",
32
+ "url": "https://colingpt9.github.io/clips-studio/"
33
+ },
34
+ "about": {
35
+ "@type": "SoftwareApplication",
36
+ "name": "Clips Studio",
37
+ "applicationCategory": "MultimediaApplication",
38
+ "operatingSystem": "Windows",
39
+ "softwareVersion": "0.1.2",
40
+ "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }
41
+ }
42
+ }
43
+ </script>
44
+ </head>
45
+ <body>
46
+ <header class="site">
47
+ <div class="wrap">
48
+ <a class="brand" href="index.html">
49
+ <img src="assets/mascot.png" alt="" />
50
+ <span>
51
+ <span class="name">Clips <span>Studio</span></span>
52
+ <span class="tagline">local-first AI clipping</span>
53
+ </span>
54
+ </a>
55
+ <nav class="site" aria-label="Main">
56
+ <a href="index.html">Home</a>
57
+ <a href="twitch.html">Twitch</a>
58
+ <a href="kick.html">Kick</a>
59
+ <a href="youtube.html">YouTube</a>
60
+ <a href="local-vs-cloud.html">Local vs cloud</a>
61
+ <a href="roadmap.html">Roadmap</a>
62
+ <a href="changelog.html" aria-current="page">Changelog</a>
63
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">GitHub</a>
64
+ <a class="donate" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
65
+ </nav>
66
+ </div>
67
+ </header>
68
+
69
+ <main>
70
+ <div class="hero">
71
+ <div class="wrap">
72
+ <h1>Changelog</h1>
73
+ <p class="lead">
74
+ What changed in each release, written for people who use Clips Studio rather than
75
+ people who read the commits.
76
+ </p>
77
+ <p class="lead">
78
+ This is an <strong>alpha</strong>. Versions move quickly, and most things listed
79
+ as fixed were broken in a way that only appeared on somebody else's machine.
80
+ </p>
81
+ </div>
82
+ </div>
83
+
84
+ <section>
85
+ <div class="wrap">
86
+ <h2>0.1.2 (10 August 2026)</h2>
87
+ <ul class="ticks">
88
+ <li>
89
+ <strong>Your clip settings are remembered again.</strong> Turning captions off,
90
+ closing the app and reopening it brought captions back. Five settings behaved
91
+ this way; they were read on startup but never actually saved.
92
+ </li>
93
+ <li>
94
+ <strong>The Watermark tickbox works.</strong> It silently refused to stay ticked
95
+ when no branding profile existed. It now says a profile has to be created first,
96
+ rather than looking broken.
97
+ </li>
98
+ <li>
99
+ <strong>A failed render says what went wrong</strong> in one sentence, once,
100
+ instead of pages of encoder output for every affected clip.
101
+ </li>
102
+ <li>
103
+ <strong>The Models page makes sense.</strong> It had one heading, "Your
104
+ hardware", over rows that were not hardware. There are now two tables: what your
105
+ machine can run, and what to pick for a particular job.
106
+ </li>
107
+ <li>
108
+ <strong>More models,</strong> all free to run locally and all usable on clips you
109
+ earn from. The Gemma 4 edge builds are recommended for ordinary and older PCs,
110
+ Qwen3 for translation and multilingual work, and Mistral Nemo or Phi-4 for a
111
+ plainly permissive licence.
112
+ </li>
113
+ </ul>
114
+ </div>
115
+ </section>
116
+
117
+ <section>
118
+ <div class="wrap">
119
+ <h2>0.1.1 (9 August 2026)</h2>
120
+ <p class="section-lead">
121
+ The release that made 0.1.0 usable. Both bugs were packaging mistakes, and both
122
+ were invisible on a development machine, which is exactly how they reached a
123
+ release.
124
+ </p>
125
+ <ul class="ticks">
126
+ <li>
127
+ <strong>No clip could be produced, from any source.</strong> Every job died
128
+ partway through. The bundle had excluded a library the tracking model needs in
129
+ order to load at all.
130
+ </li>
131
+ <li>
132
+ <strong>YouTube downloads failed.</strong> FFmpeg ships inside the app, but the
133
+ downloader looked for it on the system instead of being told where it lived, so
134
+ it could not join YouTube's separate video and audio streams. Twitch and Kick
135
+ were unaffected, because their recordings arrive as a single stream,
136
+ which is what made it look like a YouTube problem rather than a packaging one.
137
+ </li>
138
+ </ul>
139
+ </div>
140
+ </section>
141
+
142
+ <section>
143
+ <div class="wrap">
144
+ <h2>0.1.0 (8 August 2026)</h2>
145
+ <p class="section-lead">First public alpha.</p>
146
+ <ul class="ticks">
147
+ <li>
148
+ Paste a Twitch VOD, Kick VOD or YouTube link and get vertical clips with
149
+ word-synced captions and written titles.
150
+ </li>
151
+ <li>
152
+ Everything runs on your own computer. No uploads, no subscription, no cap on how
153
+ many clips you make.
154
+ </li>
155
+ <li>
156
+ One installer, carrying the app, the engine, FFmpeg, the AI runtime and the
157
+ tracking and transcription models.
158
+ </li>
159
+ <li>
160
+ An editor for fixing anything the AI got wrong, multilingual captions, creator
161
+ profiles that learn from your corrections, and a queue that runs unattended.
162
+ </li>
163
+ </ul>
164
+ <div class="cta-row">
165
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases" target="_blank" rel="noopener noreferrer">All releases on GitHub</a>
166
+ <a class="btn btn-ghost" href="https://github.com/ColinGPT9/clips-studio/blob/main/KNOWN-ISSUES.md" target="_blank" rel="noopener noreferrer">Known issues</a>
167
+ </div>
168
+ </div>
169
+ </section>
170
+ </main>
171
+
172
+ <footer class="site">
173
+ <div class="wrap cols">
174
+ <span>Free and open source.</span>
175
+ <nav aria-label="Footer">
176
+ <a href="index.html">Home</a>
177
+ <a href="roadmap.html">Roadmap</a>
178
+ <a href="changelog.html">Changelog</a>
179
+ <a href="privacy.html">Privacy</a>
180
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">★ Star it</a>
181
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contribute</a>
182
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">Issues</a>
183
+ <a href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
184
+ </nav>
185
+ </div>
186
+ </footer>
187
+ <script src="analytics.js"></script>
188
+ <script src="donate.js"></script>
189
+ </body>
190
+ </html>
donate.js ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Open PayPal in a small popup rather than navigating away, matching what
2
+ // the desktop app does when you press Donate.
3
+ //
4
+ // The links work without this file: they carry target="_blank" already, so
5
+ // with JavaScript off, or if a popup blocker refuses, the donation page
6
+ // still opens in a new tab. This only upgrades that to a sized window and
7
+ // keeps the site itself on screen behind it.
8
+ (function () {
9
+ 'use strict';
10
+
11
+ var WIDTH = 500;
12
+ var HEIGHT = 720;
13
+
14
+ document.addEventListener('click', function (event) {
15
+ var link = event.target.closest && event.target.closest('a[href*="paypal.me"]');
16
+ if (!link) return;
17
+
18
+ // Let modified clicks behave normally — middle-click and ctrl-click are
19
+ // how people deliberately open things in their own tab.
20
+ if (event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0) return;
21
+
22
+ // Centre it on whichever screen the window is actually on.
23
+ var left = window.screenX + Math.max(0, (window.outerWidth - WIDTH) / 2);
24
+ var top = window.screenY + Math.max(0, (window.outerHeight - HEIGHT) / 2);
25
+
26
+ var popup = window.open(
27
+ link.href,
28
+ 'clips-studio-donate',
29
+ 'width=' + WIDTH + ',height=' + HEIGHT + ',left=' + Math.round(left) +
30
+ ',top=' + Math.round(top) + ',resizable=yes,scrollbars=yes'
31
+ );
32
+
33
+ // Blocked, or the browser refused: fall through to the normal link so
34
+ // the click is never simply swallowed.
35
+ if (!popup) return;
36
+
37
+ popup.focus();
38
+ event.preventDefault();
39
+ });
40
+ })();
index.html ADDED
@@ -0,0 +1,388 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Clips Studio: free open-source AI clip generator that runs on your own PC</title>
7
+ <meta
8
+ name="description"
9
+ content="Turn Twitch, Kick and YouTube videos into vertical clips on your own computer. For creators running a channel on their own. Free, no subscription, no per-clip fees, no uploads."
10
+ />
11
+ <link rel="canonical" href="https://colingpt9.github.io/clips-studio/" />
12
+ <link rel="icon" href="assets/mascot.png" />
13
+ <link rel="stylesheet" href="styles.css" />
14
+
15
+ <meta property="og:type" content="website" />
16
+ <meta property="og:title" content="Clips Studio: AI video clipping that runs on your own PC" />
17
+ <meta
18
+ property="og:description"
19
+ content="Paste a Twitch, Kick or YouTube link and get vertical clips with captions. Runs entirely on your machine, with no subscription and no uploads."
20
+ />
21
+ <meta property="og:image" content="https://colingpt9.github.io/clips-studio/assets/mascot.png" />
22
+ <meta property="og:url" content="https://colingpt9.github.io/clips-studio/" />
23
+ <meta name="twitter:card" content="summary_large_image" />
24
+
25
+ <script type="application/ld+json">
26
+ {
27
+ "@context": "https://schema.org",
28
+ "@type": "SoftwareApplication",
29
+ "name": "Clips Studio",
30
+ "applicationCategory": "MultimediaApplication",
31
+ "operatingSystem": "Windows",
32
+ "description": "Open-source AI video clipping that runs locally. Turns Twitch, Kick and YouTube videos into vertical clips with captions and titles.",
33
+ "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
34
+ "license": "https://www.gnu.org/licenses/agpl-3.0.html",
35
+ "isAccessibleForFree": true
36
+ }
37
+ </script>
38
+ </head>
39
+ <body>
40
+ <header class="site">
41
+ <div class="wrap">
42
+ <a class="brand" href="index.html">
43
+ <img src="assets/mascot.png" alt="" />
44
+ <span>
45
+ <span class="name">Clips <span>Studio</span></span>
46
+ <span class="tagline">local-first AI clipping</span>
47
+ </span>
48
+ </a>
49
+ <nav class="site" aria-label="Main">
50
+ <a href="index.html" aria-current="page">Home</a>
51
+ <a href="twitch.html">Twitch</a>
52
+ <a href="kick.html">Kick</a>
53
+ <a href="youtube.html">YouTube</a>
54
+ <a href="local-vs-cloud.html">Local vs cloud</a>
55
+ <a href="roadmap.html">Roadmap</a>
56
+ <a href="changelog.html">Changelog</a>
57
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">GitHub</a>
58
+ <a class="donate" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
59
+ </nav>
60
+ </div>
61
+ </header>
62
+
63
+ <main>
64
+ <div class="hero">
65
+ <div class="wrap hero-grid">
66
+ <div>
67
+ <h1>AI video clipping that runs on your own PC</h1>
68
+ <p class="lead">
69
+ Paste a link to a Twitch VOD, a Kick VOD or a YouTube video and hand it to
70
+ <strong>Clippy the Cat</strong>. He watches the whole thing, picks the moments
71
+ worth posting, crops them to fit a phone screen with the speaker kept in frame,
72
+ burns in word-synced captions and writes the titles.
73
+ </p>
74
+ <p class="lead">
75
+ He does it all on your computer. Your footage is never uploaded, there is no
76
+ subscription, and there is no cap on how many clips you make.
77
+ </p>
78
+ <div class="cta-row">
79
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
80
+ >
81
+ <a class="btn btn-ghost" href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">View on GitHub</a
82
+ >
83
+ <span class="cta-note">Windows · NVIDIA GPU recommended</span>
84
+ </div>
85
+ <p class="star-note">
86
+ ★ If you find it useful,
87
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">give it a star</a>. It costs
88
+ nothing, and it is how developers find the app and end up improving it
89
+ for you.
90
+ </p>
91
+ </div>
92
+ <img
93
+ class="mascot"
94
+ src="assets/mascot.png"
95
+ alt="Clippy the Cat, the Clips Studio mascot"
96
+ />
97
+ </div>
98
+ </div>
99
+
100
+ <section id="support">
101
+ <div class="wrap">
102
+ <div class="support">
103
+ <div class="body">
104
+ <p class="title">Clips Studio is free &amp; open source ❤️</p>
105
+ <p>
106
+ It runs entirely on your PC with no fees. Please consider donating to help
107
+ cover development costs and keep it free for everyone.
108
+ </p>
109
+ </div>
110
+ <a class="btn btn-accent" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate to Clips Studio</a>
111
+ </div>
112
+ </div>
113
+ </section>
114
+
115
+ <section id="why">
116
+ <div class="wrap">
117
+ <h2>For creators doing it all themselves</h2>
118
+ <p class="section-lead">
119
+ If you are growing a channel, you are probably the one filming it, streaming it,
120
+ editing it and posting it. Clipping is how people find you, and it is usually the
121
+ first thing that gets dropped. An editor is a cost most channels cannot
122
+ justify yet, clipping tools charge for every video, and cutting them by hand
123
+ takes a day you needed for something else. So the clips do not get made.
124
+ </p>
125
+ <p class="section-lead">
126
+ That is the reason this exists. Clips Studio runs on your own computer, so it
127
+ costs nothing to use: no subscription, no credits, no charge per clip, no
128
+ limit on how many you make. If you have a PC and something worth posting, you
129
+ can promote your channel without paying anyone, me included.
130
+ </p>
131
+ <p class="note">
132
+ Clipping tools like OpusClip charge a monthly fee or a price per video. Clips
133
+ Studio does not charge anything. It runs on the computer you already own.
134
+ Whether you are just starting out or already growing, the clips should not be
135
+ the thing you have to pay for.
136
+ </p>
137
+ </div>
138
+ </section>
139
+
140
+ <section id="how">
141
+ <div class="wrap">
142
+ <h2>How it works</h2>
143
+ <p class="section-lead">
144
+ Every step runs locally. The only thing that touches the network in a normal run
145
+ is downloading the video you asked for.
146
+ </p>
147
+ <ol class="pipeline">
148
+ <li>
149
+ <strong>Transcription</strong>
150
+ <span
151
+ >faster-whisper with word-level timing, so captions land on the right syllable
152
+ and clips start on a real sentence.</span
153
+ >
154
+ </li>
155
+ <li>
156
+ <strong>Signal analysis</strong>
157
+ <span
158
+ >Loudness spikes, laughter-shaped bursts, scene cuts, motion and on-screen
159
+ reactions, measured across the whole video.</span
160
+ >
161
+ </li>
162
+ <li>
163
+ <strong>Scoring</strong>
164
+ <span
165
+ >A local language model reads the transcript <em>alongside</em> those signals,
166
+ so a quiet line during an explosive moment is judged correctly.</span
167
+ >
168
+ </li>
169
+ <li>
170
+ <strong>Framing</strong>
171
+ <span
172
+ >Pose detection keeps the subject in frame, and in group footage the camera
173
+ follows whoever is speaking. Crops are never stretched.</span
174
+ >
175
+ </li>
176
+ <li>
177
+ <strong>Captions and titles</strong>
178
+ <span
179
+ >Word-synced captions in your style, plus a title, description and hashtags,
180
+ all editable before you export.</span
181
+ >
182
+ </li>
183
+ </ol>
184
+ </div>
185
+ </section>
186
+
187
+ <section id="features">
188
+ <div class="wrap">
189
+ <h2>What you get</h2>
190
+ <div class="grid">
191
+ <div class="card">
192
+ <h3>Finds what transcripts miss</h3>
193
+ <p>
194
+ Laughter, hype and clutch moments often read flat in text. Peaks in the audio
195
+ and video become clip candidates in their own right.
196
+ </p>
197
+ </div>
198
+ <div class="card">
199
+ <h3>Speaker-aware framing</h3>
200
+ <p>
201
+ In multi-person footage the crop follows whoever is talking, detected from
202
+ mouth movement. Podcast mode frames each camera shot separately.
203
+ </p>
204
+ </div>
205
+ <div class="card">
206
+ <h3>A real editor</h3>
207
+ <p>
208
+ Trim, cut, mute words, add a hook, music and a watermark, all non-destructive.
209
+ Or describe the change in plain language and let the AI apply it.
210
+ </p>
211
+ </div>
212
+ <div class="card">
213
+ <h3>19 languages</h3>
214
+ <p>
215
+ Translate, subtitle or dub a clip, with every line shown for review before
216
+ anything is burned in. The app itself is translated into all 19 too.
217
+ </p>
218
+ </div>
219
+ <div class="card">
220
+ <h3>Learns each creator</h3>
221
+ <p>
222
+ Recurring topics, running jokes and ongoing storylines build up per channel and
223
+ sharpen the titles. It stays on your machine, and you can read or wipe it.
224
+ </p>
225
+ </div>
226
+ <div class="card">
227
+ <h3>Long-form too</h3>
228
+ <p>
229
+ The same analysis produces horizontal clips, a best-of highlight reel, or the
230
+ whole stream with the dead air removed.
231
+ </p>
232
+ </div>
233
+ </div>
234
+ </div>
235
+ </section>
236
+
237
+ <section id="fit">
238
+ <div class="wrap">
239
+ <h2>What it's built for</h2>
240
+ <p class="section-lead">
241
+ Worth knowing before you download, so you're not guessing why a clip came out
242
+ the way it did.
243
+ </p>
244
+ <ul class="ticks">
245
+ <li>
246
+ <strong>People on camera, talking.</strong> IRL, just chatting, podcasts,
247
+ vlogs, interviews. This is what the clip-picking and the framing are tuned
248
+ for, and it's what gets tested on real streams before anything ships.
249
+ </li>
250
+ <li class="weak">
251
+ <strong>Gaming and split-screen aren't shipped yet.</strong> Two things
252
+ weren't good enough in testing: the framing didn't reliably find the part
253
+ of the screen where the action was, and subject tracking mistook characters
254
+ <em>inside the game</em> for the streamer. To a person detector, a person on
255
+ screen is a person on screen. That produces clips centred on the wrong
256
+ human, so it's held back rather than shipped half-working. It's being
257
+ worked on.
258
+ </li>
259
+ <li class="weak">
260
+ <strong>Reaction content isn't really its thing.</strong> Clips are chosen
261
+ from what's <em>said</em>; it can't watch the video you're reacting to, so
262
+ the moment that made the clip is invisible to it. Re-uploading someone
263
+ else's footage is also a copyright question worth settling yourself.
264
+ </li>
265
+ </ul>
266
+ <p class="note">
267
+ Nothing here refuses to run. Feed it anything and it will produce clips.
268
+ These are the cases where it's doing less thinking than it looks like, and
269
+ where you should expect to reach for the editor more often.
270
+ </p>
271
+ </div>
272
+ </section>
273
+
274
+ <section id="clippy">
275
+ <div class="wrap hero-grid">
276
+ <div>
277
+ <h2>Meet Clippy</h2>
278
+ <p class="section-lead">
279
+ Clipping a three-hour stream means watching a three-hour stream. Clippy the Cat
280
+ does that part. He sits through the whole thing, notices where the room got loud
281
+ and where the story turned, and comes back with the bits worth posting.
282
+ </p>
283
+ <ul class="ticks">
284
+ <li>
285
+ <strong>He watches, you choose.</strong> Clippy brings back everything that
286
+ cleared the bar, not a fixed three, so you pick what actually goes out.
287
+ </li>
288
+ <li>
289
+ <strong>He remembers your creators.</strong> Running jokes and ongoing
290
+ storylines build up per channel, so the titles get sharper over time.
291
+ </li>
292
+ <li>
293
+ <strong>He works on your machine.</strong> Nothing is uploaded, nothing is
294
+ metered, and he does not phone anyone about what he saw.
295
+ </li>
296
+ </ul>
297
+ </div>
298
+ <img
299
+ class="mascot"
300
+ src="assets/mascot.png"
301
+ alt=""
302
+ width="210"
303
+ />
304
+ </div>
305
+ </section>
306
+
307
+ <section id="local">
308
+ <div class="wrap">
309
+ <h2>Why local matters</h2>
310
+ <div class="grid">
311
+ <div class="card">
312
+ <h3>Nothing is uploaded</h3>
313
+ <p>
314
+ Unreleased footage, sponsor reads and personal streams never leave your
315
+ computer. There is no account and no server holding your video.
316
+ </p>
317
+ </div>
318
+ <div class="card">
319
+ <h3>No per-clip cost</h3>
320
+ <p>
321
+ Cloud clippers meter minutes or clips. Running the models yourself costs
322
+ electricity, so processing a three-hour stream twice is free.
323
+ </p>
324
+ </div>
325
+ <div class="card">
326
+ <h3>Yours to change</h3>
327
+ <p>
328
+ Nobody can take it away, put it behind a paywall, or change the terms on you.
329
+ Even how it picks clips is yours to adjust.
330
+ </p>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ </section>
335
+
336
+ <section id="get">
337
+ <div class="wrap">
338
+ <h2>Getting started</h2>
339
+ <p class="section-lead">
340
+ Download <code>ClipsStudio-Web-Setup.exe</code> and run it. A setup wizard takes it
341
+ from there. It checks your computer and downloads an AI model sized to your
342
+ graphics card.
343
+ </p>
344
+ <div class="note">
345
+ <strong>What the installer does and doesn't carry.</strong> It brings the app, the
346
+ whole AI engine, every library it needs, FFmpeg, the local AI runtime and all the
347
+ detection and transcription weights. No Python, no PATH, no terminal, and nothing
348
+ else for you to install. The one thing it fetches on first launch is the language
349
+ model — those are licensed to whoever downloads them, so it can't be handed to you
350
+ in a box. The setup wizard starts that itself and shows a progress bar, so you'll
351
+ want an internet connection the first time you run it. After that it works
352
+ offline.
353
+ </div>
354
+ <div class="note" style="margin-top: 14px">
355
+ <strong>Clips Studio is in alpha.</strong> It works and it's used daily, but you
356
+ will find rough edges. There's a <strong>Feedback</strong> button inside the app
357
+ for reporting them. It needs no account and attaches the details automatically.
358
+ The installer isn't
359
+ code-signed yet, so Windows will warn the first time you run it: choose
360
+ <em>More info → Run anyway</em>.
361
+ </div>
362
+ <div class="cta-row">
363
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
364
+ >
365
+ </div>
366
+ </div>
367
+ </section>
368
+ </main>
369
+
370
+ <footer class="site">
371
+ <div class="wrap cols">
372
+ <span>Free and open source. Made for creators who would rather own their tools.</span>
373
+ <nav aria-label="Footer">
374
+ <a href="roadmap.html">Roadmap</a>
375
+ <a href="changelog.html">Changelog</a>
376
+ <a href="privacy.html">Privacy</a>
377
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">★ Star it</a>
378
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contribute</a>
379
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">Issues</a>
380
+ <a href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
381
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/ARCHITECTURE.md" target="_blank" rel="noopener noreferrer">How it's built</a>
382
+ </nav>
383
+ </div>
384
+ </footer>
385
+ <script src="analytics.js"></script>
386
+ <script src="donate.js"></script>
387
+ </body>
388
+ </html>
kick.html ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Kick clip generator: turn Kick VODs into vertical clips locally | Clips Studio</title>
7
+ <meta
8
+ name="description"
9
+ content="Turn Kick VODs into vertical clips on your own PC. Free and open source, with no upload and no subscription. Built to score Kick clips on content alone, because Kick keeps no chat after a stream."
10
+ />
11
+ <link rel="canonical" href="https://colingpt9.github.io/clips-studio/kick.html" />
12
+ <link rel="icon" href="assets/mascot.png" />
13
+ <link rel="stylesheet" href="styles.css" />
14
+ <meta property="og:type" content="article" />
15
+ <meta property="og:title" content="Kick clip generator that runs on your own PC" />
16
+ <meta
17
+ property="og:description"
18
+ content="Clip Kick VODs locally. Free, open source, nothing uploaded."
19
+ />
20
+ <meta property="og:image" content="https://colingpt9.github.io/clips-studio/assets/mascot.png" />
21
+ </head>
22
+ <body>
23
+ <header class="site">
24
+ <div class="wrap">
25
+ <a class="brand" href="index.html">
26
+ <img src="assets/mascot.png" alt="" />
27
+ <span>
28
+ <span class="name">Clips <span>Studio</span></span>
29
+ <span class="tagline">local-first AI clipping</span>
30
+ </span>
31
+ </a>
32
+ <nav class="site" aria-label="Main">
33
+ <a href="index.html">Home</a>
34
+ <a href="twitch.html">Twitch</a>
35
+ <a href="kick.html" aria-current="page">Kick</a>
36
+ <a href="youtube.html">YouTube</a>
37
+ <a href="local-vs-cloud.html">Local vs cloud</a>
38
+ <a href="roadmap.html">Roadmap</a>
39
+ <a href="changelog.html">Changelog</a>
40
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">GitHub</a>
41
+ <a class="donate" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
42
+ </nav>
43
+ </div>
44
+ </header>
45
+
46
+ <main>
47
+ <div class="hero">
48
+ <div class="wrap">
49
+ <span class="eyebrow">Kick VODs</span>
50
+ <h1>Clip Kick VODs on your own machine</h1>
51
+ <p class="lead">
52
+ Paste a <code>kick.com/video/…</code> link. Clippy downloads it, studies it locally
53
+ and returns vertical clips with captions and titles. No account, no upload, no
54
+ per-clip fee.
55
+ </p>
56
+ <div class="cta-row">
57
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
58
+ >
59
+ <span class="cta-note">VODs, not live streams</span>
60
+ </div>
61
+ </div>
62
+ </div>
63
+
64
+ <section id="support">
65
+ <div class="wrap">
66
+ <div class="support">
67
+ <div class="body">
68
+ <p class="title">Clips Studio is free &amp; open source ❤️</p>
69
+ <p>
70
+ It runs entirely on your PC with no fees. Please consider donating to help
71
+ cover development costs and keep it free for everyone.
72
+ </p>
73
+ </div>
74
+ <a class="btn btn-accent" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate to Clips Studio</a>
75
+ </div>
76
+ </div>
77
+ </section>
78
+
79
+ <section>
80
+ <div class="wrap">
81
+ <h2>Kick throws its chat away, so the video has to speak</h2>
82
+ <p class="section-lead">
83
+ Kick keeps no chat replay once a stream ends. On Twitch, chat is a useful hint
84
+ about which moments landed. On Kick there is nothing to read, so a clipper that
85
+ leans on audience reaction has nothing to lean on.
86
+ </p>
87
+ <p class="section-lead">
88
+ That is fine here, because audience data was only ever a small capped bonus.
89
+ Everything that does the real work is measured from the video itself:
90
+ </p>
91
+ <div class="grid">
92
+ <div class="card">
93
+ <h3>What was said</h3>
94
+ <p>
95
+ A local language model reads the transcript for hooks, revelations, strong
96
+ opinions and quotable lines.
97
+ </p>
98
+ </div>
99
+ <div class="card">
100
+ <h3>What it sounded like</h3>
101
+ <p>
102
+ Loudness spikes against a rolling median, laughter-shaped bursts, and the
103
+ silence-then-explosion shape that marks a payoff.
104
+ </p>
105
+ </div>
106
+ <div class="card">
107
+ <h3>What it looked like</h3>
108
+ <p>
109
+ Scene cuts, motion, and sudden changes in how much of the frame a face fills:
110
+ a lean into the camera is someone reacting.
111
+ </p>
112
+ </div>
113
+ </div>
114
+ <p class="section-lead" style="margin-top: 26px">
115
+ Each signal is normalised <em>within your own video</em>, so a calm chat stream and
116
+ a shouting one both produce meaningful peaks. Nothing is scored against some
117
+ average of other people's content.
118
+ </p>
119
+ </div>
120
+ </section>
121
+
122
+ <section>
123
+ <div class="wrap">
124
+ <h2>Good to know</h2>
125
+ <ul class="ticks">
126
+ <li><strong>Finished VODs only.</strong> Live streams are deliberately not supported.</li>
127
+ <li>
128
+ <strong>Kick VODs download as H.264</strong>, which decodes fast in hardware. Long
129
+ Kick streams process at roughly the same speed as Twitch ones.
130
+ </li>
131
+ <li>
132
+ <strong>No Kick account needed.</strong> No login, no API key, no rate limit to
133
+ worry about.
134
+ </li>
135
+ </ul>
136
+ </div>
137
+ </section>
138
+
139
+ <section>
140
+ <div class="wrap">
141
+ <h2>Start clipping</h2>
142
+ <div class="cta-row">
143
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
144
+ >
145
+ <a class="btn btn-ghost" href="twitch.html">Clipping Twitch too?</a>
146
+ </div>
147
+ </div>
148
+ </section>
149
+ </main>
150
+
151
+ <footer class="site">
152
+ <div class="wrap cols">
153
+ <span>Free and open source.</span>
154
+ <nav aria-label="Footer">
155
+ <a href="index.html">Home</a>
156
+ <a href="roadmap.html">Roadmap</a>
157
+ <a href="changelog.html">Changelog</a>
158
+ <a href="privacy.html">Privacy</a>
159
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">★ Star it</a>
160
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contribute</a>
161
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">Issues</a>
162
+ <a href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
163
+ </nav>
164
+ </div>
165
+ </footer>
166
+ <script src="analytics.js"></script>
167
+ <script src="donate.js"></script>
168
+ </body>
169
+ </html>
llms.txt ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Clips Studio
2
+
3
+ > Free, open-source AI video clipping that runs entirely on your own Windows PC.
4
+ > Paste a Twitch VOD, Kick VOD or YouTube link and it finds the moments worth
5
+ > posting, crops them to vertical with the speaker kept in frame, burns in
6
+ > word-synced captions and writes the titles. No uploads, no subscription, no
7
+ > per-clip fee. AGPL-3.0.
8
+
9
+ Clips Studio is a desktop application, not a web service. Everything — the
10
+ transcription, the clip selection, the subject tracking and the language model
11
+ — runs on the user's own machine. It is a local-first alternative to cloud
12
+ clipping tools such as OpusClip, aimed at creators who would rather not pay per
13
+ video or upload their footage to someone else's server.
14
+
15
+ ## What it actually does
16
+
17
+ - **Transcribes** with faster-whisper at word level, so captions land on the
18
+ right syllable and clips start on real sentence boundaries.
19
+ - **Scores** candidate moments with a local language model reading the
20
+ transcript alongside audio and visual signals — loudness, laughter-shaped
21
+ bursts, scene cuts, motion, on-screen reactions.
22
+ - **Reframes** to 9:16 with YOLO pose tracking and active-speaker detection, so
23
+ the person talking stays in shot and it cuts between speakers rather than
24
+ zooming out to hold both.
25
+ - **Edits**: a built-in editor for fixing anything the AI got wrong, caption
26
+ styling, watermarks, multilingual captions and dubbing.
27
+
28
+ ## What it is good and bad at
29
+
30
+ - **Good at:** IRL, just chatting, podcasts, vlogs, interviews. That is what it
31
+ is tuned for and tested on.
32
+ - **Not yet:** gaming, split-screen and reaction videos. The framing did not
33
+ reliably find the action, and subject tracking mistook characters inside a
34
+ game for the streamer, so it is held back rather than shipped half-working.
35
+
36
+ ## Requirements
37
+
38
+ Windows 10 or 11, 64-bit. 16 GB RAM recommended, ~20 GB free disk. An NVIDIA
39
+ GPU is strongly recommended — it runs on CPU, just far slower. One installer
40
+ carries the app, the engine, FFmpeg, the Ollama runtime and the tracking and
41
+ transcription models; the language model downloads on first launch, sized to
42
+ the graphics card.
43
+
44
+ ## Links
45
+
46
+ - [Website](https://colingpt9.github.io/clips-studio/)
47
+ - [Source on GitHub](https://github.com/ColinGPT9/clips-studio)
48
+ - [Download](https://github.com/ColinGPT9/clips-studio/releases)
49
+ - [Architecture](https://github.com/ColinGPT9/clips-studio/blob/main/ARCHITECTURE.md)
50
+ - [Changelog](https://colingpt9.github.io/clips-studio/changelog.html)
51
+ - [Roadmap](https://colingpt9.github.io/clips-studio/roadmap.html)
52
+ - [Known issues](https://github.com/ColinGPT9/clips-studio/blob/main/KNOWN-ISSUES.md)
53
+ - [Clipping Twitch](https://colingpt9.github.io/clips-studio/twitch.html)
54
+ - [Clipping Kick](https://colingpt9.github.io/clips-studio/kick.html)
55
+ - [Clipping YouTube](https://colingpt9.github.io/clips-studio/youtube.html)
56
+ - [Local vs cloud clipping](https://colingpt9.github.io/clips-studio/local-vs-cloud.html)
57
+
58
+ ## Status
59
+
60
+ Alpha. It works and is used daily, but it is early and has rough edges, which
61
+ are listed honestly in the known-issues document rather than discovered by
62
+ users.
local-vs-cloud.html ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Local AI clipping vs uploading to a service | Clips Studio</title>
7
+ <meta
8
+ name="description"
9
+ content="What changes when an AI clipper runs on your own PC instead of a server: no uploads, no subscription, no clip limits, and the AI model is your choice. Clips Studio is free and open source."
10
+ />
11
+ <link rel="canonical" href="https://colingpt9.github.io/clips-studio/local-vs-cloud.html" />
12
+ <link rel="icon" href="assets/mascot.png" />
13
+ <link rel="stylesheet" href="styles.css" />
14
+ <meta property="og:type" content="article" />
15
+ <meta property="og:title" content="Local AI clipping vs uploading to a service" />
16
+ <meta
17
+ property="og:description"
18
+ content="No uploads, no subscription, no clip limits. What running the AI on your own machine changes."
19
+ />
20
+ <meta property="og:image" content="https://colingpt9.github.io/clips-studio/assets/mascot.png" />
21
+ </head>
22
+ <body>
23
+ <header class="site">
24
+ <div class="wrap">
25
+ <a class="brand" href="index.html">
26
+ <img src="assets/mascot.png" alt="" />
27
+ <span>
28
+ <span class="name">Clips <span>Studio</span></span>
29
+ <span class="tagline">local-first AI clipping</span>
30
+ </span>
31
+ </a>
32
+ <nav class="site" aria-label="Main">
33
+ <a href="index.html">Home</a>
34
+ <a href="twitch.html">Twitch</a>
35
+ <a href="kick.html">Kick</a>
36
+ <a href="youtube.html">YouTube</a>
37
+ <a href="local-vs-cloud.html" aria-current="page">Local vs cloud</a>
38
+ <a href="roadmap.html">Roadmap</a>
39
+ <a href="changelog.html">Changelog</a>
40
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">GitHub</a>
41
+ <a class="donate" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
42
+ </nav>
43
+ </div>
44
+ </header>
45
+
46
+ <main>
47
+ <div class="hero">
48
+ <div class="wrap">
49
+ <span class="eyebrow">Comparison</span>
50
+ <h1>What running it locally actually means</h1>
51
+ <p class="lead">
52
+ Most clipping tools upload your video to a server and charge a monthly fee. Clips
53
+ Studio runs on your own computer instead. Here is what that changes.
54
+ </p>
55
+ </div>
56
+ </div>
57
+
58
+ <section id="support">
59
+ <div class="wrap">
60
+ <div class="support">
61
+ <div class="body">
62
+ <p class="title">Clips Studio is free &amp; open source ❤️</p>
63
+ <p>
64
+ It runs entirely on your PC with no fees. Please consider donating to help
65
+ cover development costs and keep it free for everyone.
66
+ </p>
67
+ </div>
68
+ <a class="btn btn-accent" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate to Clips Studio</a>
69
+ </div>
70
+ </div>
71
+ </section>
72
+
73
+ <section>
74
+ <div class="wrap">
75
+ <h2>Side by side</h2>
76
+ <div class="table-scroll">
77
+ <table>
78
+ <thead>
79
+ <tr>
80
+ <th>&nbsp;</th>
81
+ <th>Clips Studio (local)</th>
82
+ <th>Typical cloud clipper</th>
83
+ </tr>
84
+ </thead>
85
+ <tbody>
86
+ <tr>
87
+ <td><strong>Cost</strong></td>
88
+ <td>Free. You pay for electricity.</td>
89
+ <td>Monthly, usually metered by minutes or clips.</td>
90
+ </tr>
91
+ <tr>
92
+ <td><strong>Your footage</strong></td>
93
+ <td>Never leaves your computer.</td>
94
+ <td>Uploaded and processed on their servers.</td>
95
+ </tr>
96
+ <tr>
97
+ <td><strong>Volume</strong></td>
98
+ <td>Unlimited. Re-run a stream as often as you like.</td>
99
+ <td>Capped by your plan.</td>
100
+ </tr>
101
+ <tr>
102
+ <td><strong>Waiting</strong></td>
103
+ <td>No upload. Processing runs in the background while you work.</td>
104
+ <td>Upload the whole video first, then wait in a queue.</td>
105
+ </tr>
106
+ <tr>
107
+ <td><strong>The AI model</strong></td>
108
+ <td>Your choice, swapped in one click. Bigger GPU, bigger model.</td>
109
+ <td>Whichever one the service picked.</td>
110
+ </tr>
111
+ <tr>
112
+ <td><strong>Offline</strong></td>
113
+ <td>Works with no internet once set up.</td>
114
+ <td>Needs a connection for everything.</td>
115
+ </tr>
116
+ <tr>
117
+ <td><strong>Control</strong></td>
118
+ <td>Yours to keep and change. Even how it scores clips is editable.</td>
119
+ <td>Whatever the product exposes.</td>
120
+ </tr>
121
+ </tbody>
122
+ </table>
123
+ </div>
124
+ </div>
125
+ </section>
126
+
127
+ <section>
128
+ <div class="wrap">
129
+ <h2>What it asks of you</h2>
130
+ <ul class="ticks">
131
+ <li>
132
+ <strong>A one-time setup.</strong> An installer and a model download, rather than
133
+ signing up and pasting a link. The wizard walks through it.
134
+ </li>
135
+ <li>
136
+ <strong>Your own hardware.</strong> A long stream keeps the GPU busy for a while.
137
+ It runs in the background, but the computer is doing real work.
138
+ </li>
139
+ <li>
140
+ <strong>A graphics card, ideally.</strong> It runs without one, just slowly. An
141
+ NVIDIA GPU makes the biggest difference.
142
+ </li>
143
+ </ul>
144
+ </div>
145
+ </section>
146
+
147
+ <section>
148
+ <div class="wrap">
149
+ <h2>How it finds the good moments</h2>
150
+ <p class="section-lead">
151
+ A model that fits on a consumer graphics card is smaller than one running in a data
152
+ centre. The pipeline is built around that rather than ignoring it.
153
+ </p>
154
+ <ul class="ticks">
155
+ <li>
156
+ <strong>Find more candidates.</strong> Audio and visual peaks become clips in
157
+ their own right, so laughter and chaos are not missed just because the transcript
158
+ reads flat.
159
+ </li>
160
+ <li>
161
+ <strong>Rank, don't grade.</strong> Small models score everything in a narrow
162
+ band, so the finalists are compared against each other in one pass. Relative
163
+ judgement is far easier than absolute scoring.
164
+ </li>
165
+ <li>
166
+ <strong>Keep the human.</strong> You are going to review clips before posting
167
+ anyway. The model only has to get good moments <em>into the shortlist</em>, and you
168
+ pick the winners, which is the cheapest quality multiplier there is.
169
+ </li>
170
+ <li>
171
+ <strong>Scale with hardware.</strong> A bigger GPU means a bigger model, one
172
+ click, no new subscription.
173
+ </li>
174
+ </ul>
175
+ </div>
176
+ </section>
177
+
178
+ <section>
179
+ <div class="wrap">
180
+ <h2>Who this is actually for</h2>
181
+ <div class="grid">
182
+ <div class="card">
183
+ <h3>High volume</h3>
184
+ <p>
185
+ Clipping several long streams a week, where metered plans get expensive fast.
186
+ </p>
187
+ </div>
188
+ <div class="card">
189
+ <h3>Sensitive footage</h3>
190
+ <p>
191
+ Unreleased videos, sponsor reads, anything you would rather not hand to a third
192
+ party.
193
+ </p>
194
+ </div>
195
+ <div class="card">
196
+ <h3>People who like owning things</h3>
197
+ <p>
198
+ If the idea of tuning the scoring prompt yourself sounds good rather than
199
+ exhausting, you are in the right place.
200
+ </p>
201
+ </div>
202
+ </div>
203
+ <div class="cta-row">
204
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
205
+ >
206
+ <a class="btn btn-ghost" href="index.html">Back to the overview</a>
207
+ </div>
208
+ </div>
209
+ </section>
210
+ </main>
211
+
212
+ <footer class="site">
213
+ <div class="wrap cols">
214
+ <span>Free and open source.</span>
215
+ <nav aria-label="Footer">
216
+ <a href="index.html">Home</a>
217
+ <a href="roadmap.html">Roadmap</a>
218
+ <a href="changelog.html">Changelog</a>
219
+ <a href="privacy.html">Privacy</a>
220
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">★ Star it</a>
221
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contribute</a>
222
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">Issues</a>
223
+ <a href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
224
+ </nav>
225
+ </div>
226
+ </footer>
227
+ <script src="analytics.js"></script>
228
+ <script src="donate.js"></script>
229
+ </body>
230
+ </html>
privacy.html ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Privacy policy | Clips Studio</title>
7
+ <meta
8
+ name="description"
9
+ content="Clips Studio processes your video entirely on your own PC. There is no telemetry, no account, and nothing is uploaded unless you press a button that says so. Full privacy policy."
10
+ />
11
+ <link rel="canonical" href="https://colingpt9.github.io/clips-studio/privacy.html" />
12
+ <link rel="icon" href="assets/mascot.png" />
13
+ <link rel="stylesheet" href="styles.css" />
14
+ <meta property="og:type" content="article" />
15
+ <meta property="og:title" content="Clips Studio privacy policy" />
16
+ <meta
17
+ property="og:description"
18
+ content="No telemetry, no account, no uploads. What the app stores, what leaves your machine, and when."
19
+ />
20
+ <meta property="og:image" content="https://colingpt9.github.io/clips-studio/assets/mascot.png" />
21
+ </head>
22
+ <body>
23
+ <header class="site">
24
+ <div class="wrap">
25
+ <a class="brand" href="index.html">
26
+ <img src="assets/mascot.png" alt="" />
27
+ <span>
28
+ <span class="name">Clips <span>Studio</span></span>
29
+ <span class="tagline">local-first AI clipping</span>
30
+ </span>
31
+ </a>
32
+ <nav class="site" aria-label="Main">
33
+ <a href="index.html">Home</a>
34
+ <a href="twitch.html">Twitch</a>
35
+ <a href="kick.html">Kick</a>
36
+ <a href="youtube.html">YouTube</a>
37
+ <a href="local-vs-cloud.html">Local vs cloud</a>
38
+ <a href="roadmap.html">Roadmap</a>
39
+ <a href="changelog.html">Changelog</a>
40
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">GitHub</a>
41
+ <a class="donate" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
42
+ </nav>
43
+ </div>
44
+ </header>
45
+
46
+ <main>
47
+ <div class="hero">
48
+ <div class="wrap">
49
+ <span class="eyebrow">Privacy policy</span>
50
+ <h1>Clips Studio does not collect anything about you</h1>
51
+ <p class="lead">
52
+ No account, no sign-in, no telemetry, no analytics inside the app. Your video is
53
+ processed on your own computer and never uploaded anywhere. This page explains
54
+ exactly what is stored, what can leave your machine, and what triggers it.
55
+ </p>
56
+ <p><strong>Last updated:</strong> 12 August 2026</p>
57
+ </div>
58
+ </div>
59
+
60
+ <section>
61
+ <div class="wrap">
62
+ <h2>The short version</h2>
63
+ <ul>
64
+ <li><strong>No telemetry.</strong> The app reports nothing back. There is no usage tracking, no crash reporting, and no analytics of any kind inside Clips Studio.</li>
65
+ <li><strong>No account.</strong> There is nothing to sign up for and nothing to sign in to.</li>
66
+ <li><strong>Your video never leaves your PC.</strong> Transcription, scoring, face tracking, subtitles and rendering all run locally, on your own hardware.</li>
67
+ <li><strong>The AI runs locally too.</strong> The language model runs on your machine through Ollama. Your transcript is not sent to OpenAI, Google, Anthropic or anyone else.</li>
68
+ <li><strong>Two things reach the internet, and both are obvious:</strong> downloading a video you asked for, and downloading an AI model you chose.</li>
69
+ </ul>
70
+ </div>
71
+ </section>
72
+
73
+ <section>
74
+ <div class="wrap">
75
+ <h2>What is stored, and where</h2>
76
+ <p>
77
+ Everything Clips Studio creates stays in one folder on your own computer:
78
+ </p>
79
+ <p><code>%LOCALAPPDATA%\Clips Studio</code></p>
80
+ <ul>
81
+ <li>Videos you downloaded or imported, and the clips rendered from them</li>
82
+ <li>A local SQLite database of what has been processed, the scores it gave, and your creator profiles</li>
83
+ <li>Your settings</li>
84
+ <li>The AI models you downloaded</li>
85
+ </ul>
86
+ <p>
87
+ None of this is synced, backed up or transmitted. Uninstalling the app deliberately
88
+ leaves the folder in place, because it holds your footage; delete it yourself if you
89
+ want it gone.
90
+ </p>
91
+ </div>
92
+ </section>
93
+
94
+ <section>
95
+ <div class="wrap">
96
+ <h2>When Clips Studio uses the network</h2>
97
+ <h3>Because you asked it to</h3>
98
+ <ul>
99
+ <li><strong>Downloading a video.</strong> Pasting a YouTube, Twitch or Kick link fetches that video from that platform. Your request goes to them, subject to their own privacy policies, exactly as if you had opened the page in a browser.</li>
100
+ <li><strong>Downloading an AI model.</strong> Choosing a model fetches it from the Ollama library. That is a file download; nothing about you is sent with it.</li>
101
+ <li><strong>Checking for updates.</strong> The desktop app asks a static file on Hugging Face whether a newer version exists. This is a plain file fetch with no identifier attached, and it can be turned off in Settings. Copies installed from the Microsoft Store do not do this at all, because the Store handles updates.</li>
102
+ </ul>
103
+
104
+ <h3>Only if you submit a report</h3>
105
+ <p>
106
+ The in-app Feedback Hub can file a bug report for you, so you do not need a GitHub
107
+ account. Nothing is sent until you press Submit, and the exact contents are shown to
108
+ you first.
109
+ </p>
110
+ <p>A report contains what someone needs to reproduce the problem:</p>
111
+ <ul>
112
+ <li>What you typed in the report</li>
113
+ <li>App version, operating system version, CPU, RAM, and graphics card model</li>
114
+ <li>Which AI model and settings were in use</li>
115
+ <li>Recent log output, with email addresses, secret-shaped strings and your Windows username automatically stripped out</li>
116
+ <li>The platform and channel name of the video involved, if any — public information, and usually the whole point of the report</li>
117
+ <li>Any screenshots you chose to attach</li>
118
+ </ul>
119
+ <p>
120
+ <strong>Reports become public GitHub issues.</strong> They travel through a relay that
121
+ files them on the project's issue tracker, so do not put anything in one you would not
122
+ post publicly. If you would rather send nothing, do not use the Feedback Hub; the app
123
+ works exactly the same without it.
124
+ </p>
125
+
126
+ <h3>Only if you set it up yourself</h3>
127
+ <p>
128
+ Clips Studio has an optional command-line feature that can upload finished clips to
129
+ your own YouTube channel. It is switched off, it is not part of the desktop app, and
130
+ it does nothing unless you create your own Google Cloud credentials and place them in
131
+ the config folder. If you do, the resulting authorisation token is stored on your
132
+ machine and used only to upload to your channel. It is never sent to us — there is no
133
+ "us" to send it to, since Clips Studio has no server.
134
+ </p>
135
+ </div>
136
+ </section>
137
+
138
+ <section>
139
+ <div class="wrap">
140
+ <h2>This website</h2>
141
+ <p>
142
+ The site is hosted on GitHub Pages, which records ordinary web server logs including
143
+ IP addresses, as described in
144
+ <a href="https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement" target="_blank" rel="noopener noreferrer">GitHub's privacy statement</a>.
145
+ </p>
146
+ <p>
147
+ The site includes a Google Analytics loader that is <strong>not configured and does
148
+ nothing</strong>: with no measurement ID set, no script is fetched and no cookie is
149
+ written. If that ever changes, this page will say so before it does.
150
+ </p>
151
+ <p>
152
+ Donation links go to PayPal. Any payment happens on PayPal's own site under their
153
+ privacy policy; Clips Studio never sees your payment details, and no donation is
154
+ required to use anything.
155
+ </p>
156
+ </div>
157
+ </section>
158
+
159
+ <section>
160
+ <div class="wrap">
161
+ <h2>Children</h2>
162
+ <p>
163
+ Clips Studio is a video editing tool for content creators. It is not directed at
164
+ children, and it collects no personal information from anyone, including children.
165
+ </p>
166
+ </div>
167
+ </section>
168
+
169
+ <section>
170
+ <div class="wrap">
171
+ <h2>How to verify any of this</h2>
172
+ <p>
173
+ You do not have to take this page's word for it. Clips Studio is open source under the
174
+ GNU AGPL-3.0 licence, and every network call in it can be read:
175
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">github.com/ColinGPT9/clips-studio</a>.
176
+ If you find something this policy does not describe, that is a bug — please
177
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">open an issue</a>.
178
+ </p>
179
+ </div>
180
+ </section>
181
+
182
+ <section>
183
+ <div class="wrap">
184
+ <h2>Changes and contact</h2>
185
+ <p>
186
+ If this policy changes, the date at the top changes with it, and the edit is visible in
187
+ the repository's history like everything else.
188
+ </p>
189
+ <p>
190
+ Questions about privacy:
191
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">open an issue</a>
192
+ on GitHub.
193
+ </p>
194
+ </div>
195
+ </section>
196
+ </main>
197
+
198
+ <footer class="site">
199
+ <div class="wrap cols">
200
+ <span>Free and open source.</span>
201
+ <nav aria-label="Footer">
202
+ <a href="index.html">Home</a>
203
+ <a href="roadmap.html">Roadmap</a>
204
+ <a href="changelog.html">Changelog</a>
205
+ <a href="privacy.html">Privacy</a>
206
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">★ Star it</a>
207
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contribute</a>
208
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">Issues</a>
209
+ <a href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
210
+ </nav>
211
+ </div>
212
+ </footer>
213
+ <script src="analytics.js"></script>
214
+ <script src="donate.js"></script>
215
+ </body>
216
+ </html>
roadmap.html ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Roadmap: what Clips Studio does now and what is coming | Clips Studio</title>
7
+ <meta
8
+ name="description"
9
+ content="What Clips Studio already does, what is being worked on, and where a local-first AI clipping tool goes as consumer AI hardware improves. Free and open source."
10
+ />
11
+ <link rel="canonical" href="https://colingpt9.github.io/clips-studio/roadmap.html" />
12
+ <link rel="icon" href="assets/mascot.png" />
13
+ <link rel="stylesheet" href="styles.css" />
14
+ <meta property="og:type" content="article" />
15
+ <meta property="og:title" content="Clips Studio roadmap" />
16
+ <meta
17
+ property="og:description"
18
+ content="What is shipped, what is next, and the long-term direction for local-first AI clipping."
19
+ />
20
+ <meta property="og:image" content="https://colingpt9.github.io/clips-studio/assets/mascot.png" />
21
+
22
+ <script type="application/ld+json">
23
+ {
24
+ "@context": "https://schema.org",
25
+ "@type": "WebPage",
26
+ "name": "Clips Studio roadmap",
27
+ "description": "What Clips Studio does now, what is being worked on, and where a local-first AI clipping tool goes as consumer AI hardware improves.",
28
+ "url": "https://colingpt9.github.io/clips-studio/roadmap.html",
29
+ "isPartOf": {
30
+ "@type": "WebSite",
31
+ "name": "Clips Studio",
32
+ "url": "https://colingpt9.github.io/clips-studio/"
33
+ },
34
+ "about": {
35
+ "@type": "SoftwareApplication",
36
+ "name": "Clips Studio",
37
+ "applicationCategory": "MultimediaApplication",
38
+ "operatingSystem": "Windows",
39
+ "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }
40
+ }
41
+ }
42
+ </script>
43
+ </head>
44
+ <body>
45
+ <header class="site">
46
+ <div class="wrap">
47
+ <a class="brand" href="index.html">
48
+ <img src="assets/mascot.png" alt="" />
49
+ <span>
50
+ <span class="name">Clips <span>Studio</span></span>
51
+ <span class="tagline">local-first AI clipping</span>
52
+ </span>
53
+ </a>
54
+ <nav class="site" aria-label="Main">
55
+ <a href="index.html">Home</a>
56
+ <a href="twitch.html">Twitch</a>
57
+ <a href="kick.html">Kick</a>
58
+ <a href="youtube.html">YouTube</a>
59
+ <a href="local-vs-cloud.html">Local vs cloud</a>
60
+ <a href="roadmap.html" aria-current="page">Roadmap</a>
61
+ <a href="changelog.html">Changelog</a>
62
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">GitHub</a>
63
+ <a class="donate" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
64
+ </nav>
65
+ </div>
66
+ </header>
67
+
68
+ <main>
69
+ <div class="hero">
70
+ <div class="wrap">
71
+ <h1>Roadmap</h1>
72
+ <p class="lead">
73
+ Where Clips Studio is going, and what already works. Anything listed as shipped is
74
+ in a release you can install today, not a plan.
75
+ </p>
76
+ </div>
77
+ </div>
78
+
79
+ <section>
80
+ <div class="wrap">
81
+ <h2>Now: the alpha</h2>
82
+ <p class="section-lead">
83
+ The alpha exists to find out what breaks on machines that are not the developer's.
84
+ It has already been worth it: the first release could not finish a clip on any
85
+ source, and nobody could have known without installing it somewhere clean.
86
+ </p>
87
+ <ul class="ticks">
88
+ <li>
89
+ <strong>Shipped.</strong> One Windows installer carrying the app, the engine,
90
+ FFmpeg, the AI runtime and the tracking and transcription models. Releases with
91
+ notes, a changelog and a known-issues list. Bug reports and feature requests,
92
+ including an in-app button that needs no GitHub account. Discussions. Security
93
+ scanning. A container image for working on the engine. This website.
94
+ </li>
95
+ <li class="partial">
96
+ <strong>Being worked on.</strong> Code signing, so Windows stops warning that
97
+ the installer is unsigned. Screenshots and a demo video. Progress reporting for
98
+ the scoring stage and for update downloads, so working cannot be mistaken for
99
+ hung. Automated Windows builds.
100
+ </li>
101
+ </ul>
102
+ </div>
103
+ </section>
104
+
105
+ <section>
106
+ <div class="wrap">
107
+ <h2>Next: community</h2>
108
+ <p class="section-lead">
109
+ Making it worth someone's time to contribute: good first issues with enough
110
+ context to pick up cold, contributor recognition, example workflows, community
111
+ showcases, performance benchmarks, and voting on feature requests.
112
+ </p>
113
+ <p class="section-lead">
114
+ Contributions are wanted in features, bug fixes, documentation, translations, AI
115
+ improvements and performance work.
116
+ </p>
117
+ <div class="cta-row">
118
+ <a class="btn btn-ghost" href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">How to contribute</a>
119
+ <a class="btn btn-ghost" href="https://github.com/ColinGPT9/clips-studio/discussions" target="_blank" rel="noopener noreferrer">Discussions</a>
120
+ </div>
121
+ </div>
122
+ </section>
123
+
124
+ <section>
125
+ <div class="wrap">
126
+ <h2>Later</h2>
127
+ <p class="section-lead">None of this delays the alpha.</p>
128
+ <ul class="ticks">
129
+ <li class="weak">
130
+ <strong>Gaming and split-screen, done properly.</strong> The framing has to
131
+ reliably find where the action is, and tracking has to tell a streamer apart
132
+ from a character inside the game. Shipping it half-working would produce clips
133
+ centred on the wrong person.
134
+ </li>
135
+ <li class="weak">
136
+ <strong>Reaction videos.</strong> These need the app to understand the video
137
+ being reacted to, not just the words spoken over it.
138
+ </li>
139
+ <li class="weak">
140
+ <strong>An Android companion app</strong> for Twitch, Kick and local files,
141
+ within Google Play's policies.
142
+ </li>
143
+ <li class="weak">
144
+ <strong>Remote rendering</strong>, a plugin architecture, community extensions,
145
+ creator analytics, and more models and platforms where they earn their place.
146
+ </li>
147
+ </ul>
148
+ </div>
149
+ </section>
150
+
151
+ <section>
152
+ <div class="wrap">
153
+ <h2>The long-term idea</h2>
154
+ <p class="section-lead">
155
+ Clips Studio is <strong>local-first</strong>, and that word carries the whole
156
+ design: your footage, your workflows and your data stay on your machine. The app
157
+ gets better as your hardware does, rather than as someone's subscription tier
158
+ does.
159
+ </p>
160
+ <p class="section-lead">
161
+ Consumer AI hardware is improving quickly. The architecture is kept modular so
162
+ newer models and faster machines can be adopted without a redesign. As hardware
163
+ like the NVIDIA RTX Spark and future AI-accelerated GPUs arrives, the same
164
+ application should run larger local models, infer faster, analyse video better
165
+ and automate more.
166
+ </p>
167
+ <p class="note">
168
+ The goal is an open-source creator platform that becomes more capable over time
169
+ because local AI hardware does, not one that becomes more expensive.
170
+ </p>
171
+ <div class="cta-row">
172
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/blob/main/ROADMAP.md" target="_blank" rel="noopener noreferrer">Full roadmap on GitHub</a>
173
+ <a class="btn btn-ghost" href="changelog.html">What changed recently</a>
174
+ </div>
175
+ </div>
176
+ </section>
177
+ </main>
178
+
179
+ <footer class="site">
180
+ <div class="wrap cols">
181
+ <span>Free and open source.</span>
182
+ <nav aria-label="Footer">
183
+ <a href="index.html">Home</a>
184
+ <a href="roadmap.html">Roadmap</a>
185
+ <a href="changelog.html">Changelog</a>
186
+ <a href="privacy.html">Privacy</a>
187
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">★ Star it</a>
188
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contribute</a>
189
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">Issues</a>
190
+ <a href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
191
+ </nav>
192
+ </div>
193
+ </footer>
194
+ <script src="analytics.js"></script>
195
+ <script src="donate.js"></script>
196
+ </body>
197
+ </html>
robots.txt ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ User-agent: *
2
+ Allow: /
3
+
4
+ # AI crawlers are welcome, and the wildcard above already permits them. They
5
+ # are named individually so the intent is on the record: if a future edit adds
6
+ # a blanket disallow, someone has to consciously remove these lines first.
7
+ #
8
+ # This project wants to be findable by people asking an assistant "is there a
9
+ # free local alternative to OpusClip". Being absent from those answers costs
10
+ # more than any crawl traffic saves.
11
+
12
+ # OpenAI: training, ChatGPT search, and user-triggered page fetches
13
+ User-agent: GPTBot
14
+ Allow: /
15
+ User-agent: OAI-SearchBot
16
+ Allow: /
17
+ User-agent: ChatGPT-User
18
+ Allow: /
19
+
20
+ # Google Gemini and Vertex AI. Note this is separate from Googlebot: blocking
21
+ # Google-Extended removes you from Gemini while leaving normal search intact.
22
+ User-agent: Google-Extended
23
+ Allow: /
24
+
25
+ # Anthropic
26
+ User-agent: ClaudeBot
27
+ Allow: /
28
+ User-agent: anthropic-ai
29
+ Allow: /
30
+
31
+ # Perplexity
32
+ User-agent: PerplexityBot
33
+ Allow: /
34
+
35
+ # Common Crawl, which a great many models are trained from second-hand
36
+ User-agent: CCBot
37
+ Allow: /
38
+
39
+ Sitemap: https://colingpt9.github.io/clips-studio/sitemap.xml
sitemap.xml ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ <url>
4
+ <loc>https://colingpt9.github.io/clips-studio/</loc>
5
+ <lastmod>2026-08-12</lastmod>
6
+ <priority>1.0</priority>
7
+ </url>
8
+ <url>
9
+ <loc>https://colingpt9.github.io/clips-studio/changelog.html</loc>
10
+ <lastmod>2026-08-12</lastmod>
11
+ <priority>0.6</priority>
12
+ </url>
13
+ <url>
14
+ <loc>https://colingpt9.github.io/clips-studio/kick.html</loc>
15
+ <lastmod>2026-08-12</lastmod>
16
+ <priority>0.8</priority>
17
+ </url>
18
+ <url>
19
+ <loc>https://colingpt9.github.io/clips-studio/local-vs-cloud.html</loc>
20
+ <lastmod>2026-08-12</lastmod>
21
+ <priority>0.7</priority>
22
+ </url>
23
+ <url>
24
+ <loc>https://colingpt9.github.io/clips-studio/privacy.html</loc>
25
+ <lastmod>2026-08-12</lastmod>
26
+ <priority>0.6</priority>
27
+ </url>
28
+ <url>
29
+ <loc>https://colingpt9.github.io/clips-studio/roadmap.html</loc>
30
+ <lastmod>2026-08-12</lastmod>
31
+ <priority>0.6</priority>
32
+ </url>
33
+ <url>
34
+ <loc>https://colingpt9.github.io/clips-studio/twitch.html</loc>
35
+ <lastmod>2026-08-12</lastmod>
36
+ <priority>0.8</priority>
37
+ </url>
38
+ <url>
39
+ <loc>https://colingpt9.github.io/clips-studio/youtube.html</loc>
40
+ <lastmod>2026-08-12</lastmod>
41
+ <priority>0.8</priority>
42
+ </url>
43
+ </urlset>
styles.css ADDED
@@ -0,0 +1,493 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Clips Studio website — the desktop app's own design tokens.
2
+ Kept byte-identical to ui/src/renderer/src/theme.css so the site and the
3
+ app are recognisably the same product. Update both together. */
4
+
5
+ :root {
6
+ --base: #0a1628;
7
+ --surface: #13243d;
8
+ --raised: #1c3354;
9
+ --accent: #38bdf8;
10
+ --accent-strong: #0ea5e9;
11
+ --ink: #f1f5f9;
12
+ --muted: #94a3b8;
13
+ --success: #34d399;
14
+ --warn: #fbbf24;
15
+
16
+ --wrap: 1080px;
17
+ --radius: 14px;
18
+ }
19
+
20
+ *,
21
+ *::before,
22
+ *::after {
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ html {
27
+ scroll-behavior: smooth;
28
+ }
29
+
30
+ body {
31
+ margin: 0;
32
+ background: var(--base);
33
+ color: var(--ink);
34
+ font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
35
+ line-height: 1.65;
36
+ -webkit-font-smoothing: antialiased;
37
+ }
38
+
39
+ /* Same accessibility floor as the app: a visible focus ring on everything
40
+ interactive, and motion honoured as a preference rather than a default. */
41
+ :focus-visible {
42
+ outline: 2px solid var(--accent);
43
+ outline-offset: 3px;
44
+ border-radius: 4px;
45
+ }
46
+
47
+ @media (prefers-reduced-motion: reduce) {
48
+ html {
49
+ scroll-behavior: auto;
50
+ }
51
+ *,
52
+ *::before,
53
+ *::after {
54
+ animation-duration: 0.01ms !important;
55
+ transition-duration: 0.01ms !important;
56
+ }
57
+ }
58
+
59
+ img {
60
+ max-width: 100%;
61
+ height: auto;
62
+ }
63
+
64
+ a {
65
+ color: var(--accent);
66
+ text-decoration: none;
67
+ }
68
+ a:hover {
69
+ text-decoration: underline;
70
+ }
71
+
72
+ .wrap {
73
+ width: 100%;
74
+ max-width: var(--wrap);
75
+ margin: 0 auto;
76
+ padding: 0 20px;
77
+ }
78
+
79
+ /* ---------------------------------------------------------------- header */
80
+ header.site {
81
+ border-bottom: 1px solid rgb(28 51 84 / 0.6);
82
+ background: rgb(10 22 40 / 0.9);
83
+ backdrop-filter: blur(8px);
84
+ position: sticky;
85
+ top: 0;
86
+ z-index: 20;
87
+ }
88
+ header.site .wrap {
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 22px;
92
+ min-height: 62px;
93
+ flex-wrap: wrap;
94
+ }
95
+ /* Matches the app's sidebar: name on top, "local-first AI clipping" under
96
+ it in muted small type. Someone arriving from the site should see the same
97
+ lockup when they open the app. */
98
+ .brand {
99
+ display: flex;
100
+ align-items: center;
101
+ gap: 10px;
102
+ color: var(--ink);
103
+ }
104
+ .brand:hover {
105
+ text-decoration: none;
106
+ }
107
+ .brand img {
108
+ width: 34px;
109
+ height: 34px;
110
+ }
111
+ .brand .name {
112
+ font-weight: 700;
113
+ font-size: 1.05rem;
114
+ line-height: 1.15;
115
+ display: block;
116
+ }
117
+ .brand .name span {
118
+ color: var(--accent);
119
+ }
120
+ .brand .tagline {
121
+ display: block;
122
+ font-size: 0.72rem;
123
+ color: var(--muted);
124
+ font-weight: 400;
125
+ margin-top: 1px;
126
+ }
127
+ nav.site {
128
+ display: flex;
129
+ gap: 18px;
130
+ margin-left: auto;
131
+ font-size: 0.92rem;
132
+ flex-wrap: wrap;
133
+ }
134
+ nav.site a {
135
+ color: var(--muted);
136
+ }
137
+ nav.site a:hover,
138
+ nav.site a[aria-current='page'] {
139
+ color: var(--ink);
140
+ text-decoration: none;
141
+ }
142
+ /* Donate sits in the sticky header so it is reachable from anywhere on the
143
+ page, not only by someone who scrolled to the end. Styled as an outlined
144
+ pill rather than a solid button so it never competes with the download. */
145
+ nav.site a.donate {
146
+ color: var(--accent);
147
+ border: 1px solid rgb(56 189 248 / 0.45);
148
+ background: rgb(56 189 248 / 0.1);
149
+ border-radius: 999px;
150
+ padding: 3px 13px;
151
+ font-weight: 600;
152
+ }
153
+ nav.site a.donate:hover {
154
+ color: var(--base);
155
+ background: var(--accent);
156
+ text-decoration: none;
157
+ }
158
+
159
+ /* ---------------------------------------------------------------- hero */
160
+ .hero {
161
+ padding: 72px 0 56px;
162
+ border-bottom: 1px solid rgb(28 51 84 / 0.5);
163
+ }
164
+ .hero-grid {
165
+ display: grid;
166
+ grid-template-columns: 1fr auto;
167
+ gap: 40px;
168
+ align-items: center;
169
+ }
170
+ .hero h1 {
171
+ font-size: clamp(2rem, 4.6vw, 3.1rem);
172
+ line-height: 1.12;
173
+ margin: 0 0 18px;
174
+ letter-spacing: -0.02em;
175
+ }
176
+ .hero p.lead {
177
+ font-size: 1.15rem;
178
+ color: var(--muted);
179
+ margin: 0 0 12px;
180
+ max-width: 62ch;
181
+ }
182
+ .hero img.mascot {
183
+ width: 210px;
184
+ }
185
+
186
+ .eyebrow {
187
+ display: inline-block;
188
+ font-size: 0.74rem;
189
+ letter-spacing: 0.12em;
190
+ text-transform: uppercase;
191
+ color: var(--accent);
192
+ background: rgb(56 189 248 / 0.12);
193
+ border: 1px solid rgb(56 189 248 / 0.3);
194
+ padding: 4px 10px;
195
+ border-radius: 999px;
196
+ margin-bottom: 18px;
197
+ }
198
+
199
+ .cta-row {
200
+ display: flex;
201
+ gap: 12px;
202
+ flex-wrap: wrap;
203
+ margin-top: 26px;
204
+ align-items: center;
205
+ }
206
+ .btn {
207
+ display: inline-block;
208
+ padding: 11px 20px;
209
+ border-radius: 10px;
210
+ font-weight: 600;
211
+ transition: background-color 0.15s;
212
+ }
213
+ .btn:hover {
214
+ text-decoration: none;
215
+ }
216
+ .btn-accent {
217
+ background: var(--accent);
218
+ color: var(--base);
219
+ }
220
+ .btn-accent:hover {
221
+ background: var(--accent-strong);
222
+ }
223
+ .btn-ghost {
224
+ background: var(--raised);
225
+ color: var(--ink);
226
+ }
227
+ .btn-ghost:hover {
228
+ background: rgb(28 51 84 / 0.7);
229
+ }
230
+ .cta-note {
231
+ font-size: 0.85rem;
232
+ color: var(--muted);
233
+ }
234
+
235
+ /* The star ask. Deliberately a line of text under the buttons rather than a
236
+ third button: starring is a favour, not a thing someone came here to do,
237
+ and a button competing with Download would cost more than it gained. */
238
+ .star-note {
239
+ margin: 16px 0 0;
240
+ font-size: 0.88rem;
241
+ color: var(--muted);
242
+ max-width: 56ch;
243
+ }
244
+ .star-note a {
245
+ font-weight: 600;
246
+ }
247
+
248
+ /* ---------------------------------------------------------------- sections */
249
+ section {
250
+ padding: 56px 0;
251
+ border-bottom: 1px solid rgb(28 51 84 / 0.35);
252
+ }
253
+ section:last-of-type {
254
+ border-bottom: 0;
255
+ }
256
+ h2 {
257
+ font-size: clamp(1.45rem, 2.6vw, 1.9rem);
258
+ margin: 0 0 8px;
259
+ letter-spacing: -0.01em;
260
+ }
261
+ h3 {
262
+ font-size: 1.05rem;
263
+ margin: 0 0 6px;
264
+ }
265
+ .section-lead {
266
+ color: var(--muted);
267
+ margin: 0 0 28px;
268
+ max-width: 68ch;
269
+ }
270
+
271
+ .grid {
272
+ display: grid;
273
+ gap: 16px;
274
+ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
275
+ }
276
+ .card {
277
+ background: var(--surface);
278
+ border: 1px solid rgb(28 51 84 / 0.6);
279
+ border-radius: var(--radius);
280
+ padding: 20px;
281
+ }
282
+ .card p {
283
+ color: var(--muted);
284
+ margin: 0;
285
+ font-size: 0.94rem;
286
+ }
287
+
288
+ /* Pipeline: a real list, styled as a flow. Screen readers get the steps in
289
+ order; everyone else gets the diagram. */
290
+ ol.pipeline {
291
+ list-style: none;
292
+ counter-reset: step;
293
+ padding: 0;
294
+ margin: 0;
295
+ display: grid;
296
+ gap: 10px;
297
+ }
298
+ ol.pipeline li {
299
+ counter-increment: step;
300
+ background: var(--surface);
301
+ border: 1px solid rgb(28 51 84 / 0.6);
302
+ border-radius: var(--radius);
303
+ padding: 14px 18px 14px 56px;
304
+ position: relative;
305
+ }
306
+ ol.pipeline li::before {
307
+ content: counter(step);
308
+ position: absolute;
309
+ left: 16px;
310
+ top: 14px;
311
+ width: 26px;
312
+ height: 26px;
313
+ border-radius: 50%;
314
+ background: rgb(56 189 248 / 0.15);
315
+ color: var(--accent);
316
+ font-size: 0.8rem;
317
+ font-weight: 700;
318
+ display: grid;
319
+ place-items: center;
320
+ }
321
+ ol.pipeline strong {
322
+ display: block;
323
+ }
324
+ ol.pipeline span {
325
+ color: var(--muted);
326
+ font-size: 0.92rem;
327
+ }
328
+
329
+ table {
330
+ width: 100%;
331
+ border-collapse: collapse;
332
+ font-size: 0.94rem;
333
+ }
334
+ .table-scroll {
335
+ overflow-x: auto;
336
+ }
337
+ th,
338
+ td {
339
+ text-align: left;
340
+ padding: 10px 14px;
341
+ border-bottom: 1px solid rgb(28 51 84 / 0.5);
342
+ vertical-align: top;
343
+ }
344
+ th {
345
+ color: var(--muted);
346
+ font-weight: 600;
347
+ font-size: 0.8rem;
348
+ text-transform: uppercase;
349
+ letter-spacing: 0.06em;
350
+ }
351
+ td code {
352
+ color: var(--accent);
353
+ }
354
+
355
+ code {
356
+ font-family: ui-monospace, 'Cascadia Code', Consolas, monospace;
357
+ font-size: 0.88em;
358
+ background: rgb(28 51 84 / 0.5);
359
+ padding: 2px 6px;
360
+ border-radius: 5px;
361
+ }
362
+ pre {
363
+ background: var(--surface);
364
+ border: 1px solid rgb(28 51 84 / 0.6);
365
+ border-radius: var(--radius);
366
+ padding: 16px;
367
+ overflow-x: auto;
368
+ }
369
+ pre code {
370
+ background: none;
371
+ padding: 0;
372
+ color: var(--ink);
373
+ }
374
+
375
+ .note {
376
+ background: rgb(56 189 248 / 0.08);
377
+ border: 1px solid rgb(56 189 248 / 0.25);
378
+ border-radius: var(--radius);
379
+ padding: 16px 18px;
380
+ color: var(--muted);
381
+ font-size: 0.94rem;
382
+ }
383
+ .note strong {
384
+ color: var(--ink);
385
+ }
386
+
387
+ ul.ticks {
388
+ list-style: none;
389
+ padding: 0;
390
+ margin: 0;
391
+ display: grid;
392
+ gap: 9px;
393
+ }
394
+ ul.ticks li {
395
+ padding-left: 26px;
396
+ position: relative;
397
+ color: var(--muted);
398
+ }
399
+ ul.ticks li::before {
400
+ content: '✓';
401
+ position: absolute;
402
+ left: 0;
403
+ color: var(--accent);
404
+ font-weight: 700;
405
+ }
406
+ ul.ticks strong {
407
+ color: var(--ink);
408
+ }
409
+ /* Honest-fit markers. A limitation must never wear a green checkmark — on the
410
+ "what it's built for" list that would read as a feature and cause exactly
411
+ the surprise the section exists to prevent. */
412
+ ul.ticks li.partial::before {
413
+ content: '~';
414
+ color: var(--warn);
415
+ }
416
+ ul.ticks li.weak::before {
417
+ content: '!';
418
+ color: var(--muted);
419
+ }
420
+
421
+ /* ---------------------------------------------------------------- support
422
+ Deliberately the same card as the one pinned to the bottom of the app's
423
+ Dashboard: accent gradient, accent border, headline and a large button on
424
+ the right. Someone who has used the app should recognise it. */
425
+ .support {
426
+ background: linear-gradient(
427
+ to right,
428
+ rgb(56 189 248 / 0.15),
429
+ rgb(56 189 248 / 0.25)
430
+ );
431
+ border: 1px solid rgb(56 189 248 / 0.4);
432
+ border-radius: var(--radius);
433
+ padding: 22px 26px;
434
+ display: flex;
435
+ gap: 24px;
436
+ align-items: center;
437
+ justify-content: space-between;
438
+ flex-wrap: wrap;
439
+ }
440
+ .support .body {
441
+ flex: 1 1 340px;
442
+ }
443
+ .support .title {
444
+ font-weight: 700;
445
+ font-size: 1.25rem;
446
+ color: var(--ink);
447
+ margin: 0;
448
+ }
449
+ .support p {
450
+ margin: 6px 0 0;
451
+ color: rgb(241 245 249 / 0.8);
452
+ font-size: 1rem;
453
+ }
454
+ .support .btn {
455
+ flex-shrink: 0;
456
+ font-size: 1.05rem;
457
+ padding: 13px 32px;
458
+ font-weight: 600;
459
+ }
460
+
461
+ /* ---------------------------------------------------------------- footer */
462
+ footer.site {
463
+ border-top: 1px solid rgb(28 51 84 / 0.6);
464
+ padding: 32px 0 44px;
465
+ color: var(--muted);
466
+ font-size: 0.9rem;
467
+ }
468
+ footer.site .cols {
469
+ display: flex;
470
+ gap: 28px;
471
+ flex-wrap: wrap;
472
+ align-items: center;
473
+ }
474
+ footer.site nav {
475
+ display: flex;
476
+ gap: 18px;
477
+ flex-wrap: wrap;
478
+ margin-left: auto;
479
+ }
480
+
481
+ @media (max-width: 720px) {
482
+ .hero-grid {
483
+ grid-template-columns: 1fr;
484
+ }
485
+ .hero img.mascot {
486
+ width: 130px;
487
+ }
488
+ nav.site {
489
+ width: 100%;
490
+ margin-left: 0;
491
+ gap: 14px;
492
+ }
493
+ }
twitch.html ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Twitch clip generator: turn VODs into vertical clips on your own PC | Clips Studio</title>
7
+ <meta
8
+ name="description"
9
+ content="Turn Twitch VODs into vertical clips locally. Clips Studio reads chat replay to find the moments your viewers actually reacted to, then crops, captions and titles them. Free and open source."
10
+ />
11
+ <link rel="canonical" href="https://colingpt9.github.io/clips-studio/twitch.html" />
12
+ <link rel="icon" href="assets/mascot.png" />
13
+ <link rel="stylesheet" href="styles.css" />
14
+ <meta property="og:type" content="article" />
15
+ <meta property="og:title" content="Twitch clip generator that runs on your own PC" />
16
+ <meta
17
+ property="og:description"
18
+ content="Clips Studio reads Twitch chat replay to find the moments viewers reacted to, then crops and captions them locally."
19
+ />
20
+ <meta property="og:image" content="https://colingpt9.github.io/clips-studio/assets/mascot.png" />
21
+ </head>
22
+ <body>
23
+ <header class="site">
24
+ <div class="wrap">
25
+ <a class="brand" href="index.html">
26
+ <img src="assets/mascot.png" alt="" />
27
+ <span>
28
+ <span class="name">Clips <span>Studio</span></span>
29
+ <span class="tagline">local-first AI clipping</span>
30
+ </span>
31
+ </a>
32
+ <nav class="site" aria-label="Main">
33
+ <a href="index.html">Home</a>
34
+ <a href="twitch.html" aria-current="page">Twitch</a>
35
+ <a href="kick.html">Kick</a>
36
+ <a href="youtube.html">YouTube</a>
37
+ <a href="local-vs-cloud.html">Local vs cloud</a>
38
+ <a href="roadmap.html">Roadmap</a>
39
+ <a href="changelog.html">Changelog</a>
40
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">GitHub</a>
41
+ <a class="donate" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
42
+ </nav>
43
+ </div>
44
+ </header>
45
+
46
+ <main>
47
+ <div class="hero">
48
+ <div class="wrap">
49
+ <span class="eyebrow">Twitch VODs</span>
50
+ <h1>Clip Twitch VODs without uploading them anywhere</h1>
51
+ <p class="lead">
52
+ Paste a <code>twitch.tv/videos/…</code> link. Clippy downloads the VOD, works
53
+ through it on your own machine, and hands back vertical clips with captions.
54
+ </p>
55
+ <div class="cta-row">
56
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
57
+ >
58
+ <span class="cta-note">VODs, not live streams</span>
59
+ </div>
60
+ </div>
61
+ </div>
62
+
63
+ <section id="support">
64
+ <div class="wrap">
65
+ <div class="support">
66
+ <div class="body">
67
+ <p class="title">Clips Studio is free &amp; open source ❤️</p>
68
+ <p>
69
+ It runs entirely on your PC with no fees. Please consider donating to help
70
+ cover development costs and keep it free for everyone.
71
+ </p>
72
+ </div>
73
+ <a class="btn btn-accent" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate to Clips Studio</a>
74
+ </div>
75
+ </div>
76
+ </section>
77
+
78
+ <section>
79
+ <div class="wrap">
80
+ <h2>Chat tells you where the moments are</h2>
81
+ <p class="section-lead">
82
+ Twitch is the one platform that keeps its chat after the stream ends, and that is
83
+ the most honest signal there is: hundreds of people reacting in real time to
84
+ something that just happened.
85
+ </p>
86
+ <p class="section-lead">
87
+ Clips Studio reads chat replay and measures <strong>unique chatters per
88
+ window</strong> rather than raw message count. That distinction matters, because a
89
+ gifted-sub train or one person spamming copypasta produces a wall of messages that
90
+ says nothing about the content. Counting distinct people instead means a genuine
91
+ room-wide reaction registers and a single excited viewer does not.
92
+ </p>
93
+ <div class="note">
94
+ Chat is a <strong>bonus, capped deliberately low</strong>. It nudges a moment up
95
+ the list; it cannot carry a clip on its own. What was said and what the audio and
96
+ video were doing still decide the score, because chat also erupts at things that
97
+ do not survive out of context.
98
+ </div>
99
+ </div>
100
+ </section>
101
+
102
+ <section>
103
+ <div class="wrap">
104
+ <h2>Built for how streams actually look</h2>
105
+ <div class="grid">
106
+ <div class="card">
107
+ <h3>Long and unstructured</h3>
108
+ <p>
109
+ A six-hour stream is chunked and analysed end to end, so the good bit at hour
110
+ five gets the same attention as the intro.
111
+ </p>
112
+ </div>
113
+ <div class="card">
114
+ <h3>Sparse talking</h3>
115
+ <p>
116
+ IRL and gym streams go quiet for minutes at a time. Analysis is sized by how
117
+ much was actually said, not by the clock.
118
+ </p>
119
+ </div>
120
+ <div class="card">
121
+ <h3>Guests wander in</h3>
122
+ <p>
123
+ The crop stays locked on whoever is speaking rather than jumping to every
124
+ person who walks past the camera.
125
+ </p>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </section>
130
+
131
+ <section>
132
+ <div class="wrap">
133
+ <h2>What it does not do</h2>
134
+ <ul class="ticks">
135
+ <li>
136
+ <strong>Live streams are not supported</strong>, by design. Clips Studio works on
137
+ finished VODs, where the whole thing can be studied before deciding what matters.
138
+ </li>
139
+ <li>
140
+ <strong>It does not post for you.</strong> Clips land in a folder, organised by
141
+ creator and video, ready to upload wherever you like.
142
+ </li>
143
+ <li>
144
+ <strong>It does not need your Twitch account.</strong> There is no login and no
145
+ API key.
146
+ </li>
147
+ </ul>
148
+ </div>
149
+ </section>
150
+
151
+ <section>
152
+ <div class="wrap">
153
+ <h2>Try it on your own VOD</h2>
154
+ <div class="cta-row">
155
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
156
+ >
157
+ <a class="btn btn-ghost" href="kick.html">Clipping Kick instead?</a>
158
+ </div>
159
+ </div>
160
+ </section>
161
+ </main>
162
+
163
+ <footer class="site">
164
+ <div class="wrap cols">
165
+ <span>Free and open source.</span>
166
+ <nav aria-label="Footer">
167
+ <a href="index.html">Home</a>
168
+ <a href="roadmap.html">Roadmap</a>
169
+ <a href="changelog.html">Changelog</a>
170
+ <a href="privacy.html">Privacy</a>
171
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">★ Star it</a>
172
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contribute</a>
173
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">Issues</a>
174
+ <a href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
175
+ </nav>
176
+ </div>
177
+ </footer>
178
+ <script src="analytics.js"></script>
179
+ <script src="donate.js"></script>
180
+ </body>
181
+ </html>
youtube.html ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>YouTube Shorts generator: cut long videos into Shorts on your own PC | Clips Studio</title>
7
+ <meta
8
+ name="description"
9
+ content="Turn long YouTube videos into Shorts locally. Clips Studio uses YouTube's most-replayed data as a signal, crops to 9:16 with the speaker in frame, and writes captions and titles. Free and open source."
10
+ />
11
+ <link rel="canonical" href="https://colingpt9.github.io/clips-studio/youtube.html" />
12
+ <link rel="icon" href="assets/mascot.png" />
13
+ <link rel="stylesheet" href="styles.css" />
14
+ <meta property="og:type" content="article" />
15
+ <meta property="og:title" content="YouTube Shorts generator that runs on your own PC" />
16
+ <meta
17
+ property="og:description"
18
+ content="Cut long YouTube videos into Shorts locally, using most-replayed data plus audio and visual signals."
19
+ />
20
+ <meta property="og:image" content="https://colingpt9.github.io/clips-studio/assets/mascot.png" />
21
+ </head>
22
+ <body>
23
+ <header class="site">
24
+ <div class="wrap">
25
+ <a class="brand" href="index.html">
26
+ <img src="assets/mascot.png" alt="" />
27
+ <span>
28
+ <span class="name">Clips <span>Studio</span></span>
29
+ <span class="tagline">local-first AI clipping</span>
30
+ </span>
31
+ </a>
32
+ <nav class="site" aria-label="Main">
33
+ <a href="index.html">Home</a>
34
+ <a href="twitch.html">Twitch</a>
35
+ <a href="kick.html">Kick</a>
36
+ <a href="youtube.html" aria-current="page">YouTube</a>
37
+ <a href="local-vs-cloud.html">Local vs cloud</a>
38
+ <a href="roadmap.html">Roadmap</a>
39
+ <a href="changelog.html">Changelog</a>
40
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">GitHub</a>
41
+ <a class="donate" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
42
+ </nav>
43
+ </div>
44
+ </header>
45
+
46
+ <main>
47
+ <div class="hero">
48
+ <div class="wrap">
49
+ <span class="eyebrow">YouTube → Shorts</span>
50
+ <h1>Turn long YouTube videos into Shorts</h1>
51
+ <p class="lead">
52
+ Paste any YouTube link. Clippy cuts it into vertical clips with word-synced
53
+ captions and written titles, all on your own computer.
54
+ </p>
55
+ <div class="cta-row">
56
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
57
+ >
58
+ <span class="cta-note">Your own videos, or any you have the right to use</span>
59
+ </div>
60
+ </div>
61
+ </div>
62
+
63
+ <section id="support">
64
+ <div class="wrap">
65
+ <div class="support">
66
+ <div class="body">
67
+ <p class="title">Clips Studio is free &amp; open source ❤️</p>
68
+ <p>
69
+ It runs entirely on your PC with no fees. Please consider donating to help
70
+ cover development costs and keep it free for everyone.
71
+ </p>
72
+ </div>
73
+ <a class="btn btn-accent" href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate to Clips Studio</a>
74
+ </div>
75
+ </div>
76
+ </section>
77
+
78
+ <section>
79
+ <div class="wrap">
80
+ <h2>Most-replayed is a real signal, used carefully</h2>
81
+ <p class="section-lead">
82
+ YouTube publishes a most-replayed graph for many videos, an aggregate of where
83
+ thousands of people scrubbed back. Where it exists, Clips Studio reads it and lets
84
+ the very top of that curve nudge a moment up the ranking.
85
+ </p>
86
+ <div class="note">
87
+ Only the sharpest peaks earn anything, and the bonus is <strong>capped below</strong>
88
+ what the video's own content can score. Replay spikes also mark confusing bits
89
+ people rewound to understand, and intros people skip back to, which is exactly why
90
+ it informs the decision rather than making it.
91
+ </div>
92
+ </div>
93
+ </section>
94
+
95
+ <section>
96
+ <div class="wrap">
97
+ <h2>Made for talking-head content</h2>
98
+ <div class="grid">
99
+ <div class="card">
100
+ <h3>Podcasts and interviews</h3>
101
+ <p>
102
+ Podcast mode handles multi-camera footage: each shot gets its own steady crop
103
+ centred on whoever is talking, so cuts land on a face with no panning.
104
+ </p>
105
+ </div>
106
+ <div class="card">
107
+ <h3>Tutorials and commentary</h3>
108
+ <p>
109
+ Scoring leans on what is said, and clips snap to sentence boundaries so a
110
+ Short never opens mid-word.
111
+ </p>
112
+ </div>
113
+ <div class="card">
114
+ <h3>Your own back catalogue</h3>
115
+ <p>
116
+ Point it at videos you already published and mine them for Shorts. Or import a
117
+ local file to cut before you publish anything at all.
118
+ </p>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ </section>
123
+
124
+ <section>
125
+ <div class="wrap">
126
+ <h2>One thing worth knowing about codecs</h2>
127
+ <p class="section-lead">
128
+ YouTube serves much of its catalogue in AV1, which almost no consumer GPU decodes
129
+ in hardware. Left alone, that made processing take roughly twice as long, because every
130
+ analysis pass and every render paying for software decoding.
131
+ </p>
132
+ <p class="section-lead">
133
+ Clips Studio asks for H.264 instead, and converts once up front if it ends up with
134
+ something slow. You do not have to know any of this; it is here because "why is
135
+ YouTube slower than Twitch" is a fair question with a real answer.
136
+ </p>
137
+ </div>
138
+ </section>
139
+
140
+ <section>
141
+ <div class="wrap">
142
+ <h2>Get started</h2>
143
+ <div class="cta-row">
144
+ <a class="btn btn-accent" href="https://github.com/ColinGPT9/clips-studio/releases/download/v0.1.2/ClipsStudio-Web-Setup-0.1.2.exe" target="_blank" rel="noopener noreferrer">Download for Windows</a
145
+ >
146
+ <a class="btn btn-ghost" href="local-vs-cloud.html">How it compares to cloud tools</a>
147
+ </div>
148
+ </div>
149
+ </section>
150
+ </main>
151
+
152
+ <footer class="site">
153
+ <div class="wrap cols">
154
+ <span>Free and open source.</span>
155
+ <nav aria-label="Footer">
156
+ <a href="index.html">Home</a>
157
+ <a href="roadmap.html">Roadmap</a>
158
+ <a href="changelog.html">Changelog</a>
159
+ <a href="privacy.html">Privacy</a>
160
+ <a href="https://github.com/ColinGPT9/clips-studio" target="_blank" rel="noopener noreferrer">★ Star it</a>
161
+ <a href="https://github.com/ColinGPT9/clips-studio/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contribute</a>
162
+ <a href="https://github.com/ColinGPT9/clips-studio/issues" target="_blank" rel="noopener noreferrer">Issues</a>
163
+ <a href="https://paypal.me/clipsstudio" target="_blank" rel="noopener noreferrer">Donate</a>
164
+ </nav>
165
+ </div>
166
+ </footer>
167
+ <script src="analytics.js"></script>
168
+ <script src="donate.js"></script>
169
+ </body>
170
+ </html>