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.0" /> 6 <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> 7 8 <!-- Google Ads conversion tag. Here rather than in lib/analytics.ts because it must be present on the 9 landing page from the first byte â an ad click lands on `/` and the click id (gclid) arrives in 10 the query string, and gtag only stores it if it is running when the page loads. PostHog can be 11 lazy; this cannot. `async` so it still never blocks render. The conversion itself is fired from 12 AuthCallback.tsx â see docs/GOOGLE-ADS.md. -->
vendor: 68 bytes, lines 12-13
12 13 <script async src="https://www.googletagmanager.com/gtag/js?id=
13AW-18311271039
vendor: 16 bytes, lines 13-14
13"></script> 14
14<script> 15
vendor: 162 bytes, lines 15-20
15window.dataLayer = window.dataLayer || []; 16 function gtag() { 17 dataLayer.push(arguments); 18 } 19 gtag("js", new Date()); 20 gtag("config", "
20AW-18311271039
vendor: 8 bytes, lines 20-21
20"); 21
21</script>
21 22 23 <!-- Meta Pixel, here for the same reason as the tag above: an ad click lands on `/` and fbq has to be 24 running at page load to associate the visit. The signup itself is fired from AuthCallback.tsx â 25 see docs/META-ADS.md. Meta's snippet ships a <noscript> tracking image too; it is dropped because 26 this app renders nothing without JavaScript, so a no-JS visitor never sees a page to count. --> 27
27<script> 28 !(function (f, b, e, v, n, t, s) { 29 if (f.fbq) return; 30 n = f.fbq = function () { 31 n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments); 32 }; 33 if (!f._fbq) f._fbq = n; 34 n.push = n; 35 n.loaded = !0; 36 n.version = "2.0"; 37 n.queue = []; 38 t = b.createElement(e); 39 t.async = !0; 40 t.src = v; 41 s = b.getElementsByTagName(e)[0]; 42 s.parentNode.insertBefore(t, s); 43 })(window, document, "script", "https://connect.facebook.net/en_US/fbevents.js"); 44 fbq("init", "2159901041253992"); 45 fbq("track", "PageView"); 46 </script>
46 47 48 <!-- These describe the LANDING page, because `/` is the only route a crawler can read: the 49 build-time prerender fills the root div for `/` only (docs/frontend/LANDING.md § Prerendering), and 50 nothing rewrites the head per route. Per-video tags on /watch/:id need the id resolved at 51 request time, which this static file cannot do. --> 52 <title>GoVideo â drop a video, get a link</title> 53 <meta 54 name="description" 55 content="Upload a video or go live and get a link that plays on any phone, laptop or TV, plus an embed. No encoding setup, nothing for viewers to install. Drivable by AI agents over MCP." 56 /> 57 <link rel="canonical" href="https://govideo.stream/" /> 58 <link rel="alternate" type="text/markdown" href="/llms.txt" title="GoVideo for AI agents" /> 59 60 <meta property="og:type" content="website" /> 61 <meta property="og:site_name" content="GoVideo" /> 62 <meta property="og:url" content="https://govideo.stream/" /> 63 <meta property="og:title" content="GoVideo â drop a video, get a link" /> 64 <meta 65 property="og:description" 66 content="Upload a video or go live and get a link that plays anywhere, plus an embed. No encoding setup. Drivable by AI agents over MCP." 67 /> 68 <!-- Generated from the real hero at 1200x630 (see docs/frontend/LANDING.md § Discoverability), so it can't 69 drift into showing a design that no longer exists. Re-shoot it if the hero changes. --> 70 <meta property="og:image" content="https://govideo.stream/og.jpg" /> 71 <meta property="og:image:width" content="1200" /> 72 <meta property="og:image:height" content="630" /> 73 <meta property="og:image:alt" content="GoVideo: drop a video, get a link." /> 74 <meta name="twitter:card" content="summary_large_image" /> 75 76 <!-- Machine-readable facts, so an AI answering "what is GoVideo" doesn't have to infer them from 77 the marketing prose. Deliberately NO `offers`: pricing.ts is an explicit placeholder with no 78 billing model behind it, and a price quoted here would be repeated as fact. --> 79
79<script type="application/ld+json"> 80 { 81 "@context": "https://schema.org", 82 "@type": "SoftwareApplication", 83 "name": "GoVideo", 84 "url": "https://govideo.stream/", 85 "applicationCategory": "MultimediaApplication", 86 "operatingSystem": "Any (web-based)", 87 "description": "Video hosting for people who just want a link: upload a file or go live, and GoVideo encodes it into an adaptive HLS/DASH stream and returns a watch link and an embed. Player colours, watermark and thumbnail are editable at any time without re-encoding. An MCP server exposes the upload, encode and publish loop to AI agents.", 88 "featureList": [ 89 "Upload a video and get a shareable watch link", 90 "Live streaming over RTMP", 91 "Adaptive HLS and DASH encoding", 92 "Embeddable player via iframe", 93 "Player colours, watermark and thumbnail changeable without re-encoding", 94 "Viewer numbers: views, unique viewers, hours watched, watch time", 95 "MCP server for AI agents" 96 ] 97 } 98 </script>
98 99
99<script type="module" crossorigin src="/assets/index-xJ-ocqIW.js"></script>
99 100 <link rel="stylesheet" crossorigin href="/assets/index-wYAdOgLV.css"> 101 </head> 102 <body> 103 <div id="root"><link rel="preload" as="image" href="/sample-class.jpg"/><div class="lp"><nav class="nav"><div class="wrap nav-inner"><a class="brand" href="#top"><svg class="brand-mark" viewBox="0 0 32 32" fill="none" aria-hidden="true"><circle cx="16" cy="16" r="3" fill="currentColor"></circle><circle cx="16" cy="16" r="7.5" stroke="currentColor" stroke-width="2" opacity="0.9"></circle><circle cx="16" cy="16" r="11.5" stroke="currentColor" stroke-width="2" opacity="0.55"></circle><circle cx="16" cy="16" r="15" stroke="currentColor" stroke-width="1.5" opacity="0.3"></circle></svg>GoVideo</a><div class="nav-links"><a href="#embed">On your page</a><a href="#agents">For agents</a></div><a class="l-btn l-btn-fill l-btn-sm nav-cta" href="/login" data-discover="true">Start free</a></div></nav><main id="top"><section class="hero"><div class="hero-atmos" aria-hidden="true"></div><div class="hero-grain" aria-hidden="true"></div><div class="wrap"><div class="hx" id="hx"><div class="hx-copy"><div class="hx-head"><p class="label">Product demos · course lessons · live events</p><h1>Drop a video. <em>Get a link.</em></h1></div><div class="hx-rest"><p class="lede">Your site, your player, your brand. No ads, nothing pulling viewers away. Plays smoothly on any phone or TV, recorded or live. An AI agent can do the whole thing over MCP.</p><p class="hx-aside">Colours, chapters, captions and thumbnails stay editable after upload. No re-encoding, no new link.</p><div class="hero-actions hx-actions"><a class="l-btn l-btn-fill" href="/login" data-discover="true">Start free</a><a class="l-btn l-btn-ghost" href="#agents">Try MCP</a></div><p class="hx-fine">Free while in trial. No card.</p></div></div><div class="hx-tool"><div id="hxDropWrap"><label class="hx-drop" id="hxDrop" for="hxFile"><input class="hx-file" id="hxFile" type="file" accept="video/*"/><span class="hx-drop-art" aria-hidden="true"><svg viewBox="0 0 32 32" fill="none"><circle cx="16" cy="16" r="3" fill="currentColor"></circle><circle cx="16" cy="16" r="7.5" stroke="currentColor" stroke-width="2" opacity="0.9"></circle><circle cx="16" cy="16" r="11.5" stroke="currentColor" stroke-width="2" opacity="0.55"></circle><circle cx="16" cy="16" r="15" stroke="currentColor" stroke-width="1.5" opacity="0.3"></circle></svg></span><h3>Drop a video here</h3><p class="fine">Or <span class="hx-pick">choose a file</span>. Nothing leaves your browser.</p></label><div class="hx-samples"><span class="label">Or start with one of these</span><div class="hx-strip"><button class="hx-film" type="button" data-sample="bbb"><span class="hx-film-shot"><img src="/sample-bbb.jpg" alt="" width="480" height="270" loading="lazy"/><span class="hx-film-play" aria-hidden="true"><span><svg viewBox="0 0 12 14"><path d="M0 0l12 7-12 7z"></path></svg></span></span><span class="hx-film-bar" aria-hidden="true"><i></i></span></span><span class="hx-film-name">Big Buck Bunny</span></button><button class="hx-film" type="button" data-sample="sintel"><span class="hx-film-shot"><img src="/sample-sintel.jpg" alt="" width="480" height="270" loading="lazy"/><span class="hx-film-play" aria-hidden="true"><span><svg viewBox="0 0 12 14"><path d="M0 0l12 7-12 7z"></path></svg></span></span><span class="hx-film-bar" aria-hidden="true"><i></i></span></span><span class="hx-film-name">Sintel</span></button><button class="hx-film" type="button" data-sample="tos"><span class="hx-film-shot"><img src="/sample-tos.jpg" alt="" width="480" height="270" loading="lazy"/><span class="hx-film-play" aria-hidden="true"><span><svg viewBox="0 0 12 14"><path d="M0 0l12 7-12 7z"></path></svg></span></span><span class="hx-film-bar" aria-hidden="true"><i></i></span></span><span class="hx-film-name">Tears of Steel</span></button></div></div></div><div id="hxReady" hidden=""><div class="artifact player is-paused" id="hxPlayer" data-watermark="on"><div class="frame"><video class="scene" data-role="video" muted="" loop="" playsInline="" preload="auto" aria-hidden="true"></video><img class="frame-poster" data-role="poster" alt="" aria-hidden="true"/><span class="frame-wm" data-role="wmLayer" data-pos="br" aria-hidden="true">
103<span class="wm-mark" data-role="wmMark"><img class="wm-img" data-role="wmImg" alt=""/><svg viewBox="0 0 32 32" fill="none" aria-hidden="true"><circle cx="16" cy="16" r="3" fill="currentColor"></circle><circle cx="16" cy="16" r="7.5" stroke="currentColor" stroke-width="2" opacity="0.9"></circle><circle cx="16" cy="16" r="11.5" stroke="currentColor" stroke-width="2" opacity="0.55"></circle><circle cx="16" cy="16" r="15" stroke="currentColor" stroke-width="1.5" opacity="0.3"></circle></svg><span>GoVideo</span></span></span><span class="hx-cue" data-role="cue"></span></div><div class="bar"><button class="play" data-role="toggle" aria-label="Play"><svg class="i-play" viewBox="0 0 12 14" aria-hidden="true"><path d="M0 0l12 7-12 7z"></path></svg><svg class="i-pause" viewBox="0 0 12 14" aria-hidden="true"><path d="M0 0h4v14H0zM8 0h4v14H8z"></path></svg></button><span class="time" data-role="time">0:00 / 0:00</span><span class="hx-scrubwrap"><input class="scrub" type="range" min="0" max="1000" aria-label="Seek through your video" data-role="scrub" value="0"/><span class="hx-marks" data-role="marks" aria-hidden="true"></span></span><span class="frame-meta" aria-hidden="true"><span class="meta-tag" data-role="quality">Local</span></span></div></div><p class="hx-meta"><span><strong data-role="fileName">video.mp4</strong></span><span data-role="fileSize"></span><span data-role="fileDur"></span><button class="hx-link" data-role="reset" type="button" style="color:var(--teal);text-decoration:underline">Use a different video</button></p><div class="hx-tabs" role="tablist" aria-label="Video settings"><button class="hx-tab" role="tab" id="tab-player" aria-selected="true" aria-controls="p-player">Player</button><button class="hx-tab" role="tab" id="tab-chapters" aria-selected="false" aria-controls="p-chapters">Chapters</button><button class="hx-tab" role="tab" id="tab-captions" aria-selected="false" aria-controls="p-captions">Captions</button><button class="hx-tab" role="tab" id="tab-thumb" aria-selected="false" aria-controls="p-thumb">Thumbnail</button><button class="hx-tab" role="tab" id="tab-wm" aria-selected="false" aria-controls="p-wm">Watermark</button></div><div class="hx-panels"><div class="panel" role="tabpanel" id="p-player" aria-labelledby="tab-player"><h3>Colours</h3><p class="fine">Applies to your link and every embed. Never re-encodes.</p><div class="group"><div class="cf" data-part="play"><span class="label">Play button</span><label class="cf-chip"><input class="cf-pick" type="color" data-role="pick" aria-label="Play button colour" value="#0f2a38"/><span class="cf-dot" aria-hidden="true"><i></i></span><span class="cf-val" data-role="val">rgb(15, 42, 56)</span></label><div class="cf-op"><span class="fine">Opacity</span><input class="alpha" type="range" min="0" max="100" data-role="alpha" aria-label="Play button opacity" value="100"/><span class="cf-pct" data-role="pct">100%</span></div></div><div class="cf" data-part="played"><span class="label">Track played</span><label class="cf-chip"><input class="cf-pick" type="color" data-role="pick" aria-label="Played track colour" value="#0e7490"/><span class="cf-dot" aria-hidden="true"><i></i></span><span class="cf-val" data-role="val">rgb(14, 116, 144)</span></label><div class="cf-op"><span class="fine">Opacity</span><input class="alpha" type="range" min="0" max="100" data-role="alpha" aria-label="Track played opacity" value="100"/><span class="cf-pct" data-role="pct">100%</span></div></div><div class="cf" data-part="buffered"><span class="label">Track buffered</span><label class="cf-chip"><input class="cf-pick" type="color" data-role="pick" aria-label="Buffered track colour" value="#22b8cf"/><span class="cf-dot" aria-hidden="true"><i></i></span><span class="cf-val" data-role="val">rgba(34, 184, 207, 0.45)</span></label><div class="cf-op"><span class="fine">Opacity</span><input class="alpha" type="range" min="0" max="100" data-role="alpha" aria-label="Track buffered opacity" value="45"/>
103<span class="cf-pct" data-role="pct">45%</span></div></div><div class="cf" data-part="track"><span class="label">Track background</span><label class="cf-chip"><input class="cf-pick" type="color" data-role="pick" aria-label="Track background colour" value="#c4dae0"/><span class="cf-dot" aria-hidden="true"><i></i></span><span class="cf-val" data-role="val">rgb(196, 218, 224)</span></label><div class="cf-op"><span class="fine">Opacity</span><input class="alpha" type="range" min="0" max="100" data-role="alpha" aria-label="Track background opacity" value="100"/><span class="cf-pct" data-role="pct">100%</span></div></div></div></div><div class="panel" role="tabpanel" id="p-chapters" aria-labelledby="tab-chapters" hidden=""><h3>Chapters</h3><p class="fine">One per part of the video: where it starts, where it ends, what itâs called. Or let the AI suggest them once the video is with us.</p><div class="group"><div class="hx-list" data-role="chapList"></div><p class="hx-empty" data-role="chapEmpty">No chapters yet.</p><div class="hx-add"><button class="l-btn l-btn-fill l-btn-sm" data-role="chapAdd">Add a chapter here</button></div></div></div><div class="panel" role="tabpanel" id="p-captions" aria-labelledby="tab-captions" hidden=""><h3>Captions</h3><p class="fine">One cue per line: when it starts, when it ends, what it says.</p><div class="group"><div class="hx-list" data-role="cueList"></div><p class="hx-empty" data-role="cueEmpty">No captions yet.</p><div class="hx-add"><button class="l-btn l-btn-fill l-btn-sm" data-role="cueAdd">Add a cue here</button></div></div></div><div class="panel" role="tabpanel" id="p-thumb" aria-labelledby="tab-thumb" hidden=""><h3>Thumbnail</h3><p class="fine">What people see before they press play.</p><div class="group"><div class="wm-file" data-empty="true" data-role="thFile"><span class="th-thumb" aria-hidden="true"><img data-role="thPreview" alt=""/></span><span class="wm-file-text"><span class="wm-file-name" data-role="thState">No thumbnail yet</span><span class="fine" data-role="thHint">Grab the frame you are on, or bring your own picture.</span></span></div></div><div class="group" data-role="thControls" hidden=""><div class="wm-row"><span class="label">Fit</span><select class="wm-select" data-role="thFit" aria-label="Thumbnail fit"><option value="cover" selected="">Fill the frame</option><option value="contain">Fit inside</option></select></div></div><div class="wm-actions"><button class="l-btn l-btn-fill l-btn-sm" data-role="thGrab">Use this frame</button><label class="l-btn l-btn-ghost l-btn-sm l-btn-file" for="thPick">Upload a picture<input class="hx-file" id="thPick" type="file" accept="image/*" data-role="thPick"/></label><button class="l-btn l-btn-ghost l-btn-sm" data-role="thDelete" disabled="">Remove</button></div></div><div class="panel" role="tabpanel" id="p-wm" aria-labelledby="tab-wm" hidden=""><h3>Watermark</h3><p class="fine">Overlaid at playback, never burned into the video.</p><div class="group"><div class="wm-file"><span class="wm-thumb" data-role="wmThumb" aria-hidden="true"><img class="wm-thumb-img" data-role="wmThumbImg" alt=""/><svg viewBox="0 0 32 32" fill="none" aria-hidden="true"><circle cx="16" cy="16" r="3" fill="currentColor"></circle><circle cx="16" cy="16" r="7.5" stroke="currentColor" stroke-width="2" opacity="0.9"></circle><circle cx="16" cy="16" r="11.5" stroke="currentColor" stroke-width="2" opacity="0.55"></circle><circle cx="16" cy="16" r="15" stroke="currentColor" stroke-width="1.5" opacity="0.3"></circle></svg><span>GoVideo</span></span><span class="wm-file-text"><span class="wm-file-name" data-role="wmState">Watermark applied</span><span class="fine" data-role="wmHint">Ours for now. Upload your own.</span></span></div></div><div class="group" data-role="wmControls"><div class="wm-row"><span class="label">Position</span><select class="wm-select" data-role="wmPos" aria-label="Watermark position"><option value="br" selected="">Bottom right</option><option value="bl">Bottom left</option><option value="tr">Top right</option><option value="tl">Top left</option></select></div><div class="cf-op"><span class="fine">Opacity</span><input class="alpha" type="range" min="10" max="100" data-role="wmAlpha" aria-label="Watermark opacity" value="88"/><span class="cf-pct" data-role="wmAlphaPct">88%</span></div><div class="cf-op"><span class="fine">Size</span><input class="alpha" type="range" min="10" max="100" data-role="wmSize" aria-label="Watermark size" value="30"/><span class="cf-pct" data-role="wmSizePct">30%</span></div></div><div class="wm-actions"><label class="l-btn l-btn-fill l-btn-sm l-btn-file" for="wmPick">Upload a logo<input class="hx-file" id="wmPick" type="file" accept="image/*" data-role="wmPick"/></label><button class="l-btn l-btn-ghost l-btn-sm" data-role="wmReset" hidden="">Use the GoVideo mark</button><button class="l-btn l-btn-ghost l-btn-sm" data-role="wmDelete">Remove watermark</button></div></div></div><div class="hx-go"><p class="fine">Your video comes with you. Sign in and it uploads from there.</p><button class="l-btn l-btn-fill" data-role="getLink">Get a link</button></div></div></div></div></div></section><section class="section band"><div class="wrap"><div class="cards reveal"><div class="card-g" style="--i:0"><p class="label">What you get</p><p class="card-val">One link</p><p class="card-note">Upload a file or go live. Both give you a link and an embed.</p><svg class="card-ico" viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="2.8" aria-hidden="true" stroke-linecap="round"><path d="M20 26a10 10 0 0 0 15.08 1.08l6-6a10 10 0 0 0-14.14-14.14l-3.44 3.42"></path><path d="M28 22a10 10 0 0 0-15.08-1.08l-6 6a10 10 0 0 0 14.14 14.14l3.42-3.42" op
103acity="0.5"></path></svg></div><div class="card-g" style="--i:1"><p class="label">Make it yours</p><p class="card-val">Your player</p><p class="card-note">Set the colour, watermark and poster. Change them any time.</p><svg class="card-ico" viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="2.4" aria-hidden="true"><rect x="6" y="10" width="36" height="28" rx="6" opacity="0.45"></rect><rect x="30.5" y="14.5" width="7.5" height="5" rx="1.6" stroke-width="1.8" opacity="0.55"></rect><path d="M21.5 18.4 29 22.3l-7.5 3.9z" fill="currentColor" stroke-linejoin="round"></path><path d="M11.5 32.5h25" stroke-width="2" stroke-linecap="round" opacity="0.25"></path><path d="M11.5 32.5h9" stroke-width="2" stroke-linecap="round" opacity="0.9"></path></svg></div><div class="card-g" style="--i:2"><p class="label">See what happened</p><p class="card-val">Your numbers</p><p class="card-note">Views, hours watched and where they watched from.</p><svg class="card-ico" viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="3.4" aria-hidden="true" stroke-linecap="round"><path d="M9 16h30" stroke-width="1.6" stroke-linecap="butt" opacity="0.22"></path><path d="M9 26h30" stroke-width="1.6" stroke-linecap="butt" opacity="0.22"></path><path d="M9 37.5h30" stroke-width="2" opacity="0.5"></path><path d="M15 34v-7" opacity="0.4"></path><path d="M24 34v-15" opacity="0.7"></path><path d="M33 34v-22"></path></svg></div></div></div></section><section class="section" id="embed"><div class="wrap"><div class="em reveal"><div class="em-side"><div class="head"><p class="label">The embed</p><h2>It lands on your page.</h2><p class="lede">One line of HTML and the video plays inside your own layout. Your heading above it, your words under it, nothing of ours around it. A broadcast is the same line with a live id.</p></div><div class="em-seg" data-kind="vod" role="tablist" aria-label="What is on the page"><span class="em-seg-pill" aria-hidden="true"></span><button role="tab" type="button" aria-selected="true" class="em-seg-btn">A recording</button><button role="tab" type="button" aria-selected="false" class="em-seg-btn">A broadcast</button></div><div class="em-code"><p class="label">Paste this where the video goes</p><pre class="em-snippet"><code><iframe src="https://govideo.stream/embed/<em class="em-id">a4f21c</em>" 104 allow="fullscreen" loading="lazy"></iframe></code></pre><div class="em-copy"><button class="copy" type="button">Copy the snippet</button><span class="fine">Copies the whole tag.</span></div></div></div><div class="em-page" aria-hidden="true"><div class="em-win"><div class="em-win-bar"><span class="em-lights"><i data-light="close"></i><i data-light="min"></i><i data-light="zoom"></i></span><span class="em-addr"><svg viewBox="0 0 10 12" class="em-lock"><path d="M2 5V3.2a3 3 0 016 0V5" fill="none" stroke="currentColor" stroke-width="1.2"></path><rect x="0.8" y="5" width="8.4" height="6.2" rx="1.4" fill="currentColor"></rect></svg><span class="em-addr-scheme">https://</span><span>yoursite.com</span><span class="em-addr-path">/lessons/framing-a-shot</span></span></div><div class="em-paper"><div class="em-site-bar"><span class="em-wordmark">yoursite</span><nav class="em-site-nav"><span class="is-here">Lessons</span><span>Live</span><span>About</span></nav></div><article class="em-article"><p class="em-eyebrow">Lesson 3 · 12 min</p><h3 class="em-title">Framing a shot</h3><p class="em-byline">Recorded last Tuesday</p><div class="em-embed"><div class="artifact player" data-kind="vod"><div class="frame"><video class="scene" src="/sample-lesson.mp4" autoPlay="" muted="" loop="" playsInline="" preload="metadata"></video></div><div class="bar"><button class="play" type="button" tabindex="-1"><svg class="i-pause" viewBox="0 0 12 14"><path d="M0 0h4v14H0zM8 0h4v14H8z"></path></svg></button><span class="time">0:24 / 4:31</span><span class="em-track"><i class="em-played"></i><i class="em-head"></i></span><span class="frame-meta"><span class="meta-tag">1080p</span><span class="meta-tag">HLS</span></span></div></div></div><p class="em-body">Your words go here, in your own typeface, as close under the video as you like.</p><p class="em-body em-body-2">Everything on this page except the player is yours.</p></article><div class="em-site-foot"><span>© yoursite</span><span>Newsletter</span></div></div></div></div></div></div></section><section class="section band" id="agents"><div class="agents-atmos" aria-hidden="true"></div><div class="agents-grain" aria-hidden="true"></div><div class="wrap"><div class="agents"><div class="ag reveal" data-beat="-1"><div class="ag-thread"><p class="ag-you"><span class="ag-said" style="--n:38;--dur:1000ms">Chapter this lesson at each new topic.</span></p><p class="ag-tool"><span class="ag-spark" aria-hidden="true"></span><code>vod_set_chapters</code></p><div class="ag-app"><div class="agapp agapp-light"><div class="agapp-bar"><span class="agapp-name">Onboarding walkthrough</span><span class="agapp-badge">4 chapters</span></div><div class="agapp-stage"><div class="agapp-frame"><img src="/sample-class.jpg" alt=""/><div class="agapp-scrub"><span class="agapp-played"></span><span class="agapp-mark" style="left:0%"></span><span class="agapp-mark" style="left:14%"></span><span class="agapp-mark" style="left:43%"></span><span class="agapp-mark" style="left:71%"></span></div></div></div><ol class="agapp-list" data-done="true"><li style="--i:0"><span class="agapp-time">0:00</span><span class="agapp-title">Welcome</span></li><li style="--i:1"><span class="agapp-time">1:12</span><span class="agapp-title">Setting up your account</span></li><li style="--i:2"><span class="agapp-time">3:40</span><span class="agapp-title">Your first upload</span></li><li style="--i:3"><span class="agapp-time">6:05</span><span class="agapp-title">Sharing the link</span></li></ol></div></div></div></div><div class="agents-side"><div class="agents-copy reveal"><p class="label">For agents</p><h2 style="margin-top:0.875rem">Hand it to your agent.</h2><p class="lede" style="margin-top:1rem">GoVideo speaks MCP, so the whole product is available to anything that does. No browser, no clicking, no scraping a dashboard. The tools that change something answer with an interface, not a paragraph.</p></div><div class="agents-foot"><p class="note reveal">What the agent publishes lands in <b>your library</b>, styled the way you set it.</p><div class="install reveal"><div class="install-head"><p class="label">Add it to your agent</p><h3>One URL. About a minute.</h3></div>
104<div class="install-tabs" role="tablist" aria-label="Choose your MCP client"><button class="install-tab is-on" type="button" role="tab" aria-selected="true">Claude Code</button><button class="install-tab" type="button" role="tab" aria-selected="false">VS Code</button><button class="install-tab" type="button" role="tab" aria-selected="false">Cursor</button><button class="install-tab" type="button" role="tab" aria-selected="false">Codex</button><button class="install-tab" type="button" role="tab" aria-selected="false">Any other client</button></div><div class="install-panel"><p class="install-where">Run this in your terminal</p><div class="install-code"><pre><code>claude mcp add --transport http govideo https://api.govideo.stream/mcp</code></pre><button class="copy">Copy</button></div><p class="install-then">A browser tab opens for sign-in. No key, no flags.</p></div></div></div></div></div></div></section><section class="section" id="join"><div class="wrap"><div class="close"><div class="close-grid"><div><p class="label">Get started</p><h2 style="margin-top:0.875rem">Your first link is a minute away.</h2></div><div><p class="lede" style="margin-bottom:1.75rem">Sign in, drop a video, send the link. Nothing to configure, and enough of it to find out whether this is what you wanted.</p><div class="close-actions"><a class="l-btn l-btn-fill" href="/login" data-discover="true">Continue with Google</a></div><p class="fine" style="margin-top:1.25rem">Free while in preview. No card, no contract.</p></div></div></div></div></section></main><footer class="foot"><div class="wrap foot-inner"><a class="brand" href="#top">GoVideo</a><div class="foot-links"><a href="#embed">On your page</a><a href="#agents">For agents</a><a href="/login" data-discover="true">Sign in</a></div><p class="fine">© GoVideo</p><p class="hx-credit">Sample clips © <a href="https://www.blender.org/about/foundation/" rel="noopener">Blender Foundation</a>, <a href="https://creativecommons.org/licenses/by/3.0/" rel="noopener">CC BY 3.0</a>, trimmed to one minute: <a href="https://www.bigbuckbunny.org" rel="noopener">bigbuckbunny.org</a> · <a href="https://www.sintel.org" rel="noopener">sintel.org</a> · <a href="https://mango.blender.org" rel="noopener">mango.blender.org</a></p></div></footer><p class="sr" role="status" aria-live="polite" id="lp-announce"></p></div></div> 105 </body> 106</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.