PageSourceSearch

https://www.onemoreshot.ai/for-business/

html onemoreshot.ai collected 2026-10-01 11:34:55 UTC 115,963 bytes, 629 lines download raw bytes

1<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="color-scheme" content="dark"><meta name="description" content="One More Shot AI for music businesses: generate beat-synced music videos at scale for your roster, catalog, or clients. White-label and API options. Book a demo."><meta name="author" content="One More Shot AI"><meta name="theme-color" content="#0a0a0a"><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><link rel="canonical" href="https://www.onemoreshot.ai/for-business/"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="preconnect" href="https://firebasestorage.googleapis.com"><link rel="dns-prefetch" href="https://cs.iubenda.com"><link rel="dns-prefetch" href="https://cdn.iubenda.com"><link rel="dns-prefetch" href="https://www.googletagmanager.com"><link rel="dns-prefetch" href="https://connect.facebook.net"><link rel="dns-prefetch" href="https://n.krnl.ai"><link rel="dns-prefetch" href="https://analytics.tiktok.com"><link rel="dns-prefetch" href="https://s.axon.ai"><link rel="dns-prefetch" href="https://res4.applovin.com"><link rel="dns-prefetch" href="https://bzrcdn.openai.com"><link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link href="https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet"></noscript><link rel="preload" href="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/assets%2Flanding-video-thumb-small.jpg?alt=media&token=e534fd9a-032b-4ffa-ba97-40807226903d" as="image" fetchpriority="high"><meta property="og:type" content="website"><meta property="og:site_name" content="One More Shot AI"><meta property="og:title" content="AI Music Videos for Labels, Distributors &#38; Agencies | One More Shot AI"><meta property="og:description" content="One More Shot AI for music businesses: generate beat-synced music videos at scale for your roster, catalog, or clients. White-label and API options. Book a demo."><meta property="og:url" content="https://www.onemoreshot.ai/for-business/"><meta property="og:image" content="https://www.onemoreshot.ai/og-image.jpg"><meta property="og:image:alt" content="One More Shot AI — AI Music Video Generator"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:image:type" content="image/jpeg"><meta property="og:locale" content="en_US"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="AI Music Videos for Labels, Distributors &#38; Agencies | One More Shot AI"><meta name="twitter:description" content="One More Shot AI for music businesses: generate beat-synced music videos at scale for your roster, catalog, or clients. White-label and API options. Book a demo."><meta name="twitter:image" content="https://www.onemoreshot.ai/og-image.jpg"><meta name="twitter:image:alt" content="One More Shot AI — AI Music Video Generator"><link rel="icon" type="image/x-icon" href="/favicon.ico?v=2" sizes="48x48"><link rel="icon" type="image/png" href="/favicon.png?v=2" sizes="48x48"><link rel="apple-touch-icon" href="/favicon.png" sizes="180x180"><title>AI Music Videos for Labels, Distributors &amp; Agencies | One More Shot AI</title>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"One More Shot AI","alternateName":["1 More Shot","1 More Shot AI","1MS","1moreshot ai","onemoreshot ai","onemoreshot","AI Music Video Creator"],"url":"https://www.onemoreshot.ai","description":"Create professional AI music videos in minutes with perfect lip-sync, multiple formats, and instant HD export.","inLanguage":"en-US","publisher":{"@type":"Organization","@id":"https://www.onemoreshot.ai/#organization"}}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://www.onemoreshot.ai/#organization","name":"One More Shot AI","alternateName":["1 More Shot","1 More Shot AI","1MS","1moreshot ai","onemoreshot ai","onemoreshot"],"url":"https://www.onemoreshot.ai","logo":{"@type":"ImageObject","url":"https://www.onemoreshot.ai/favicon.png","width":512,"height":512},"sameAs":["https://apps.apple.com/us/app/ai-music-video-generator-1ms/id6744976219","https://play.google.com/store/apps/details?id=ai.krnl.onemoreshot&hl=en","https://www.instagram.com/onemoreshot.ai/","https://www.youtube.com/@onemoreshot-ai","https://discord.com/invite/CG7Zvuupmh","https://www.linkedin.com/company/krnl/"],"contactPoint":{"@type":"ContactPoint","contactType":"customer support","url":"https://www.onemoreshot.ai"}}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"One More Shot AI","description":"AI-powered music video creator that transforms your music into stunning visual experiences with perfect lip-sync and multiple format options.","applicationCategory":"MultimediaApplication","operatingSystem":"Web, iOS, Android","url":"https://www.onemoreshot.ai","downloadUrl":"https://apps.apple.com/us/app/ai-music-video-generator-1ms/id6744976219","offers":{"@type":"Offer","price":"0","priceCurrency":"USD","availability":"https://schema.org/InStock"},"aggregateRating":{"@type":"AggregateRating","ratingValue":"4.8","ratingCount":"1250","bestRating":"5","worstRating":"1"},"publisher":{"@type":"Organization","@id":"https://www.onemoreshot.ai/#organization"}}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How does pricing work for teams and companies?","acceptedAnswer":{"@type":"Answer","text":"We offer volume and seat-based plans tailored to your output. Book a demo and we will scope a plan around your roster size, release cadence, and whether you need white-label or API access."}},{"@type":"Question","name":"Can we white-label or integrate via API?","acceptedAnswer":{"@type":"Answer","text":"Yes. One More Shot AI can be embedded into your own platform, distribution workflow, or client portal via API, and presented under your own brand. We will walk you through the integration on a demo."}},{"@type":"Question","name":"Who owns the videos we generate?","acceptedAnswer":{"@type":"Answer","text":"You do. Generated visuals are royalty-free and cleared for commercial distribution on every major platform, so you and your artists can publish without licensing friction."}},{"@type":"Question","name":"Can the platform handle a large catalog or roster?","acceptedA
1nswer":{"@type":"Answer","text":"Absolutely. The platform is built for batch generation across many tracks and artists, with saved brand presets so output stays consistent at scale."}},{"@type":"Question","name":"Do you support multiple team members and shared styles?","acceptedAnswer":{"@type":"Answer","text":"Yes. Team workspaces let multiple members collaborate, reuse shared visual presets, and keep every release on-brand."}}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.onemoreshot.ai"},{"@type":"ListItem","position":2,"name":"For Business","item":"https://www.onemoreshot.ai/for-business/"}]}</script>
1<!-- Rewardful affiliate tracking (must load on every page) -->
1<script>(function(w,r){w._rwq=r;w[r]=w[r]||function(){(w[r].q=w[r].q||[]).push(arguments)}})(window,'rewardful');</script>
1<script async src="https://r.wdfl.co/rw.js" data-rewardful="780f8c"></script>
1<!-- Lightweight stub: queues events + captures attribution cookies before analytics load -->
1<script>
2      window._tq=[];
3      window.trackEvent=function(n,p){window._tq.push([n,p||{}])};
4      (function(){
5        var ps=new URLSearchParams(location.search),
6            dm=location.hostname.split('.').slice(-2).join('.');
7        function sc(n,v,dy){var e=new Date;e.setTime(e.getTime()+(dy||30)*864e5);document.cookie=n+'='+v+';expires='+e.toUTCString()+';path=/;domain=.'+dm+';SameSite=Lax'}
8        var f=ps.get('fbclid'),t=ps.get('ttclid');
9        if(f){var sub=Math.max(0,location.hostname.split('.').length-2);sc('_fbc','fb.'+sub+'.'+Date.now()+'.'+f,90);sc('fbclid',f,90)}
10        if(t)sc('ttclid',t,90);
11        // Google click IDs: persist like fbclid/ttclid so attribution survives
12        // internal navigation (the URL is the only carrier into the app handoff).
13        var g=ps.get('gclid'),wb=ps.get('wbraid'),gb=ps.get('gbraid');
14        if(g)sc('gclid',g,90);
15        if(wb)sc('wbraid',wb,90);
16        if(gb)sc('gbraid',gb,90);
17        // ChatGPT Ads click id (oppref): persist like the other click ids so
18        // it survives internal navigation and reaches the app handoff even
19        // when the oaiq pixel hasn't loaded yet (consent pending).
20        var op=ps.get('oppref');
21        if(op)sc('oppref',op,90);
22        // AppLovin (Axon) click ids: aleid + alart are appended after an ad
23        // click. Persist 1y (AppLovin recommendation) so they survive internal
24        // navigation and reach the app handoff for server-side attribution.
25        var al=ps.get('aleid'),ar=ps.get('alart');
26        if(al)sc('aleid',al,365);
27        if(ar)sc('alart',ar,365);
28        // UTM parameters: persist so campaign attribution survives internal
29        // navigation and reaches the app handoff at CTA click time (read back
30        // via getAttributionData by the click handler + IAB breakout).
31        var UTMS=['utm_source','utm_medium','utm_campaign','utm_content','utm_term'];
32        for(var ui=0;ui<UTMS.length;ui++){var uv=ps.get(UTMS[ui]);if(uv)sc(UTMS[ui],encodeURIComponent(uv),90)}
33        // Promo code: persist so it survives internal navigation and can be
34        // handed to the app at CTA click time.
35        var pr=ps.get('promo');
36        if(pr)sc('promo',encodeURIComponent(pr),30);
37        sc('user_agent',encodeURIComponent(navigator.userAgent),30);
38        try{sc('eventId',crypto.randomUUID(),30)}catch(x){}
39        try{fetch('https://api.ipify.org?format=json').then(function(r){return r.json()}).then(function(d){if(d.ip)sc('client_ip',d.ip,30)}).catch(function(){})}catch(x){}
40        function gc(n){var m=document.cookie.match('(^|;)\\s*'+n+'=([^;]*)');return m?m[2]:''}
41        // Pre-seed the GA client id: gtag adopts an existing _ga cookie instead
42        // of generating a new one, so the id survives (and matches) whether GA
43        // initializes now, after consent, or never. Format GA1.1.<random>.<ts>;
44        // gtag reads the client id as the last two dot-separated segments.
45        // Set on .onemoreshot.ai so app.onemoreshot.ai can read it too.
46        if(!gc('_ga')){try{sc('_ga','GA1.1.'+(Math.floor(Math.random()*9e8)+1e8)+'.'+Math.floor(Date.now()/1e3),730)}catch(x){}}
47        function gaCid(){var v=gc('_ga');if(!v)return'';var p=v.split('.');return p.length>=2?p.slice(-2).join('.'):''}
48        window.getAttributionData=function(){return{fbp:gc('_fbp'),fbc:gc('_fbc'),fbclid:gc('fbclid'),ttclid:gc('ttclid'),gclid:gc('gclid'),wbraid:gc('wbraid'),gbraid:gc('gbraid'),aleid:gc('aleid'),alart:gc('alart'),oppref:gc('oppref'),utm_source:decodeURIComponent(gc('utm_source')),utm_medium:decodeURIComponent(gc('utm_medium')),utm_campaign:decodeURIComponent(gc('utm_campaign')),utm_content:decodeURIComponent(gc('utm_content')),utm_term:decodeURIComponent(gc('utm_term')),promo:decodeURIComponent(gc('promo')),gaClientId:gaCid(),eventId:gc('eventId'),userAgent:decodeURIComponent(gc('user_agent')),clientIp:gc('client_ip')}};
49        document.addEventListener('click',function(e){
50          var el=e.target.closest('[data-track]');if(!el)return;
51          window.trackEvent(el.getAttribute('data-track'),{event_category:el.getAttribute('data-track-category')||'engagement',event_label:el.getAttribute('data-track-label')||''});
52        });
53      })();
54    </script>
54<link rel="stylesheet" href="/_astro/_slug_.BgW7P36x.css">
55<link rel="stylesheet" href="/_astro/album-name-generator.B2zV8IV9.css">
56<style>@keyframes banner-shimmer{0%{background-position:0% 50%}to{background-position:200% 50%}}.animate-banner-shimmer[data-astro-cid-vw2lj5a7]{animation:banner-shimmer 6s linear infinite}
57</style></head> <body> <noscript> <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=597438272704550&ev=PageView&noscript=1"> </noscript> <!-- Fallback overlay — shown only if all auto schemes failed after ~5s, or
58     if the user explicitly taps the retry button. Hidden by default. --><div id="inapp-overlay" class="fixed inset-0 z-[9999] hidden flex-col items-center justify-center bg-[#070809]/[.97] backdrop-blur-md px-6" style="display:none" role="dialog" aria-modal="true" aria-labelledby="inapp-title" data-astro-cid-a6ltlddt> <button id="inapp-close" class="absolute top-4 left-4 p-2 text-foreground/60 hover:text-foreground transition-colors" aria-label="Close" type="button" data-astro-cid-a6ltlddt> <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-a6ltlddt><path d="M18 6 6 18" data-astro-cid-a6ltlddt></path><path d="m6 6 12 12" data-astro-cid-a6ltlddt></path></svg> </button> <svg class="absolute top-4 right-28 inapp-arrow" width="140" height="170" viewBox="0 0 140 170" fill="none" style="filter: drop-shadow(0 0 10px hsla(316, 59%, 61%, .45))" aria-hidden="true" data-astro-cid-a6ltlddt> <path d="M30 162 C80 130, 130 80, 130 6" stroke="hsl(316,59%,61%)" stroke-width="3" stroke-linecap="round" data-astro-cid-a6ltlddt></path> <path d="M123 14 L130 4 L137 14" stroke="hsl(316,59%,61%)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-a6ltlddt></path> </svg> <div class="flex flex-col items-center text-center max-w-xs w-full" data-astro-cid-a6ltlddt> <h2 id="inapp-title" class="text-2xl md:text-3xl font-heading font-bold text-foreground mb-4 leading-tight" data-astro-cid-a6ltlddt>
59Open in your browser
60</h2> <p class="text-foreground/60 text-base mb-3" data-astro-cid-a6ltlddt>
61Tap the <strong class="text-foreground" data-astro-cid-a6ltlddt>⋯</strong> menu <span id="inapp-dots-loc" data-astro-cid-a6ltlddt>in the top-right corner</span> </p> <p id="inapp-step2" class="text-foreground/60 text-base mb-8" data-astro-cid-a6ltlddt>
62and choose <strong class="text-foreground" data-astro-cid-a6ltlddt>"Open in external browser"</strong> </p> <button id="inapp-open-browser" type="button" class="inline-flex items-center justify-center rounded-full bg-gradient-to-r from-pink-500 to-purple-600 px-8 py-3.5 text-base font-semibold text-white shadow-[0_4px_24px_rgba(219,39,119,.4)] transition-all duration-300 hover:scale-105 hover:from-pink-600 hover:to-purple-700 mb-6" data-astro-cid-a6ltlddt>
63Try again
64</button> <button id="inapp-continue" type="button" class="text-foreground/40 hover:text-foreground/70 text-sm underline underline-offset-4 transition-colors bg-transparent border-0 cursor-pointer" data-astro-cid-a6ltlddt>
65Continue here anyway
66</button> </div> </div> 
66<script>
67  (function () {
68    var ua = navigator.userAgent || navigator.vendor || '';
69
70    var isIG = /Instagram/i.test(ua);
71    var isThreads = /Threads|Barcelona/i.test(ua);
72    var isFB = /FBAN|FBAV|FB_IAB/i.test(ua);
73    var isMetaIAB = isIG || isThreads || isFB;
74    var isOtherIAB = /musical_ly|trill|BytedanceWebview|Snapchat|Line\/|MicroMessenger|Twitter/i.test(ua);
75    var isAndroidWebView = /; wv\)/.test(ua);
76    var isInApp = isMetaIAB || isOtherIAB || isAndroidWebView;
77    if (!isInApp) return;
78
79    var isAndroid = /Android/i.test(ua);
80
81    window.__inAppBrowser = true;
82    window.__inAppPlatform = {
83      ig: isIG,
84      threads: isThreads,
85      fb: isFB,
86      android: isAndroid,
87      meta: isMetaIAB,
88    };
89
90    var pendingTarget = null;
91    var overlayTimer = null;
92
93    // Which links should we intercept? Only outbound CTAs that target the
94    // app or a store listing — never internal nav links.
95    function shouldIntercept(el) {
96      if (!el || el.tagName !== 'A') return false;
97      var href = el.getAttribute('href') || '';
98      return (
99        href.indexOf('app.onemoreshot.ai') !== -1 ||
100        href.indexOf('apps.apple.com') !== -1 ||
101        href.indexOf('play.google.com') !== -1
102      );
103    }
104
105    // Aliased tracking params — see commit 70b73ff for the original convention.
106    //
107    // Why aliases? Safari ITP, Brave, and Firefox ETP maintain a denylist of
108    // known tracker-ID URL params (fbclid, gclid, ttclid, utm_*, …) that get
109    // stripped on cross-origin navigation. Renaming each known key to an
110    // opaque short code (`_fc`, `_tc`, `_gc`, `_os`, …) lets the same value
111    // travel through privacy browsers untouched. The destination app reads
112    // the aliased keys directly.
113    //
114    // ph_distinct_id is intentionally NOT aliased — PostHog reads this
115    // literal name server-side for session reconciliation and the param
116    // isn't on any browser denylist.
117    var PARAM_MAP = {
118      utm_source: '_os',
119      utm_medium: '_om',
120      utm_campaign: '_oc',
121      utm_content: '_on',
122      utm_term: '_ot',
123      fbclid: '_fc',
124      ttclid: '_tc',
125      gclid: '_gc',
126      wbraid: '_wb',
127      gbraid: '_gb',
128      ref: '_rf',
129    };
130
131    // Enrich the CTA URL with attribution context before the hand-off.
132    //
133    // Source priority for each value:
134    //   1. The current landing-page URL's search params (covers the case
135    //      where the user just arrived from an ad with the trackers intact)
136    //   2. The attribution cookies set by the BaseLayout stub (covers the
137    //      case where the user has navigated around the site and the
138    //      original landing URL is gone — cookies still hold the IDs)
139    //
140    // The second source matters most for the IAB breakout specifically:
141    // cookies are per-browser-instance, so the IG WebView jar is invisible
142    // to Safari/Chrome after we hand the URL off. Promoting them into the
143    // URL (under their aliased names) bridges that gap.
144    //
145    // Enrichment is scoped to onemoreshot.ai targets; App Store / Play
146    // Store deeplinks pass through bare.
147    function enrichWithAttribution(target) {
148      try {
149        var url = new URL(target);
150        if (url.hostname.indexOf('onemoreshot.ai') === -1) return target;
151
152        var page;
153        try { page = new URL(window.location.href); } catch (e) { page = null; }
154        var cookies = (typeof window.getAttributionData === 'function')
155          ? (window.getAttributionData() || {})
156          : {};
157
158        function readSource(key) {
159          var v = page ? page.searchParams.get(key) : null;
160          if (v) return v;
161          // Cookie fallback only exists for the IDs the stub actually persists.
162          if (key === 'fbclid' && cookies.fbclid) return cookies.fbclid;
163          if (key === 'ttclid' && cookies.ttclid) return cookies.ttclid;
164          if (key === 'gclid' && cookies.gclid) return cookies.gclid;
165          if (key === 'wbraid' && cookies.wbraid) return cookies.wbraid;
166          if (key === 'gbraid' && cookies.gbraid) return cookies.gbraid;
167          if (key.indexOf('utm_') === 0 && cookies[key]) return cookies[key];
168          return null;
169        }
170
171        for (var orig in PARAM_MAP) {
172          var v = readSource(orig);
173          if (v) url.searchParams.set(PARAM_MAP[orig], v);
174        }
175
176        // AppLovin (Axon) click ids — forwarded under both the original names
177        // (the Axon pixel on the app only auto-captures the originals) and
178        // the aliases (survive tracker-param stripping in privacy browsers).
179        var APPLOVIN_IDS = { aleid: '_al', alart: '_ar' };
180        for (var akey in APPLOVIN_IDS) {
181          var av = (page ? page.searchParams.get(akey) : null) || cookies[akey] || null;
182          if (av) {
183            url.searchParams.set(akey, av);
184            url.searchParams.set(APPLOVIN_IDS[akey], av);
185          }
186        }
187
188        // ChatGPT Ads click id — original name only: the oaiq SDK on the
189        // app auto-captures `oppref` from the URL, and OpenAI describes it
190        // as privacy-preserving so it isn't on tracker denylists.
191        var oppref = (page ? page.searchParams.get('oppref') : null) || cookies.oppref || null;
192        if (oppref) url.searchParams.set('oppref', oppref);
193
194        // Promo code — not aliased: it isn't on any tracker denylist, and the
195        // app reads the literal `promo` key. URL first, cookie fallback
196        // (the BaseLayout stub persists it for 30 days).
197        var promo = (page ? page.searchParams.get('promo') : null) || cookies.promo || null;
198        if (promo) url.searchParams.set('promo', promo);
199
200        // GA client id (pre-seeded by the BaseLayout stub). Must ride the URL
201        // here: the IAB cookie jar is invisible to the external browser the
202        // user lands in, so the domain-wide _ga cookie doesn't make the jump.
203        if (cookies.gaClientId) url.searchParams.set('ga_client_id', cookies.gaClientId);
204
205        if (window.posthog && typeof window.posthog.get_distinct_id === 'function') {
206          var phId = window.posthog.get_distinct_id();
207          if (phId) url.searchParams.set('ph_distinct_id', phId);
208        }
209
210        return url.toString();
211      } catch (e) {
212        return target;
213      }
214    }
215
216    // Fire the platform-specific breakout scheme. Must be called synchronously
217    // from inside a user-gesture event (iOS WKWebView gesture requirement).
218    function fireBreakout(targetHref) {
219      targetHref = enrichWithAttribution(targetHref);
220      pendingTarget = targetHref;
221      clearTimeout(overlayTimer);
222
223      if (isAndroid) {
224        // Android: a single intent:// hand-off reliably opens Chrome (or the
225        // system default browser if Chrome is missing). No cascade needed.
226        try {
227          var u = new URL(targetHref);
228          var intentUrl =
229            'intent://' + u.host + u.pathname + u.search + u.hash +
230            '#Intent;scheme=https;package=com.android.chrome;end';
231          location.replace(intentUrl);
232        } catch (e) {}
233        // If the intent failed (very rare — system default still opens it),
234        // surface the overlay after a generous delay so the user has a
235        // manual escape hatch.
236        overlayTimer = setTimeout(showOverlay, 3000);
237        return;
238      }
239
240      // iOS path. Synchronously fire the most reliable scheme for this IAB,
241      // then cascade through third-party browser schemes.
242      var bare = targetHref.replace(/^https?:\/\//, '');
243      var encoded = encodeURIComponent(targetHref);
244
245      try {
246        if (isIG) {
247          // IG's own URL scheme — same-app routing, opens target in Safari.
248          location.replace('instagram://extbrowser/?url=' + encoded);
249        } else if (isThreads) {
250          location.replace('barcelona://extbrowser/?url=' + encoded);
251        } else {
252          // FB iOS / TikTok / Snapchat / etc. have no extbrowser scheme —
253          // jump straight to Chrome iOS (most common installed browser).
254          location.replace('googlechromes://' + bare);
255        }
256      } catch (e) {}
257
258      // Fallback cascade. Each fires only if the previous step did not
259      // navigate the page away. By the time these run the original user
260      // gesture is long gone, but iOS still accepts these schemes because
261      // they were originally invoked inside the gesture's call stack.
262      setTimeout(function () {
263        try { location.replace('googlechromes://' + bare); } catch (e) {}
264      }, 1500);
265      setTimeout(function () {
266        try { location.replace('firefox://open-url?url=' + encoded); } catch (e) {}
267      }, 3000);
268      setTimeout(function () {
269        try { location.replace('brave://open-url?url=' + encoded); } catch (e) {}
270      }, 4000);
271      overlayTimer = setTimeout(showOverlay, 5000);
272    }
273
274    function showOverlay() {
275      var overlay = document.getElementById('inapp-overlay');
276      if (!overlay) return;
277
278      // Adapt copy to platform on first show.
279      var dotsLocEl = document.getElementById('inapp-dots-loc');
280      var step2El = document.getElementById('inapp-step2');
281      var isIgIos = isIG && !isAndroid;
282      if (dotsLocEl) {
283        dotsLocEl.textContent = isIgIos ? 'at the top of the screen' : 'in the top right';
284      }
285      if (step2El) {
286        step2El.innerHTML = isAndroid
287          ? 'and choose <strong class="text-foreground">"Open in Chrome"</strong>'
288          : 'and choose <strong class="text-foreground">"Open in external browser"</strong>';
289      }
290
291      overlay.style.display = 'flex';
292      document.body.style.overflow = 'hidden';
293    }
294
295    function hideOverlay() {
296      var overlay = document.getElementById('inapp-overlay');
297      if (overlay) overlay.style.display = 'none';
298      document.body.style.overflow = '';
299    }
300
301    function continueInIab() {
302      var href = pendingTarget;
303      hideOverlay();
304      pendingTarget = null;
305      if (href) window.open(href, '_blank');
306    }
307
308    // Intercept CTA clicks (capture phase so we beat other handlers).
309    document.addEventListener('click', function (e) {
310      var link = e.target && e.target.closest ? e.target.closest('a') : null;
311      if (!link || !shouldIntercept(link)) return;
312
313      // Fire any data-track event before navigating away.
314      var tracked = link.closest('[data-track]');
315      if (tracked && typeof window.trackEvent === 'function') {
316        try {
317          window.trackEvent(tracked.getAttribute('data-track'), {
318            event_category: tracked.getAttribute('data-track-category') || 'engagement',
319            event_label: tracked.getAttribute('data-track-label') || '',
320            inapp_intercepted: true,
321          });
322        } catch (err) {}
323      }
324
325      e.preventDefault();
326      e.stopImmediatePropagation();
327      fireBreakout(link.href);
328    }, true);
329
330    // Wire overlay controls once the DOM is ready.
331    function wireOverlay() {
332      var closeBtn = document.getElementById('inapp-close');
333      var continueBtn = document.getElementById('inapp-continue');
334      var openBtn = document.getElementById('inapp-open-browser');
335
336      if (closeBtn) closeBtn.addEventListener('click', function () {
337        hideOverlay();
338        pendingTarget = null;
339      });
340      if (continueBtn) continueBtn.addEventListener('click', continueInIab);
341      if (openBtn) {
342        openBtn.addEventListener('click', function () {
343          if (pendingTarget) fireBreakout(pendingTarget);
344        });
345      }
346    }
347
348    if (document.readyState === 'loading') {
349      document.addEventListener('DOMContentLoaded', wireOverlay);
350    } else {
351      wireOverlay();
352    }
353
354    document.addEventListener('keydown', function (e) {
355      var overlay = document.getElementById('inapp-overlay');
356      if (e.key === 'Escape' && overlay && overlay.style.display === 'flex') hideOverlay();
357    });
358  })();
359</script>
359  <div id="top-banner" class="fixed top-0 left-0 right-0 z-[60] flex items-center justify-center gap-2 bg-gradient-to-r from-primary via-accent to-primary bg-[length:200%_100%] px-10 py-2 text-center text-[12px] font-medium text-white animate-banner-shimmer md:py-2.5 md:text-[13px]" data-astro-cid-vw2lj5a7> <span class="hidden rounded bg-white/20 px-2 py-0.5 text-[11px] font-bold uppercase tracking-wide md:inline" data-astro-cid-vw2lj5a7>Sep &#39;26</span> <span class="opacity-90 truncate" data-astro-cid-vw2lj5a7>Seedance 2.5 now available for improved lip-sync</span> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="top_banner" data-track-category="conversion" class="inline-flex shrink-0 items-center gap-1 rounded-full bg-white/20 px-2.5 py-0.5 text-[11px] font-semibold backdrop-blur-sm transition-colors hover:bg-white/30 md:text-xs" data-astro-cid-vw2lj5a7>
360Try now
361<svg class="h-3 w-3" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" data-astro-cid-vw2lj5a7><path stroke-linecap="round" stroke-linejoin="round" d="m9 5 7 7-7 7" data-astro-cid-vw2lj5a7></path></svg> </a> <button id="top-banner-close" class="absolute right-2 top-1/2 -translate-y-1/2 p-1 text-white/60 transition-colors hover:text-white" aria-label="Close banner" data-astro-cid-vw2lj5a7> <svg class="h-3.5 w-3.5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" data-astro-cid-vw2lj5a7><path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" data-astro-cid-vw2lj5a7></path></svg> </button> </div>  
361<script type="module">const e=document.getElementById("top-banner"),o=document.getElementById("navbar"),s=document.getElementById("top-banner-close");function t(){if(!o||!e)return;const n=e.style.display!=="none"?e.offsetHeight:0;o.style.top=n+"px",document.documentElement.style.scrollPaddingTop=n+88+"px",document.body.style.paddingTop=n+"px"}t();window.addEventListener("resize",t);s&&s.addEventListener("click",()=>{e.style.display="none",t()});</script>
361 <nav id="navbar" class="fixed top-0 left-0 right-0 z-50 transition-all duration-300 bg-transparent"> <div class="max-w-7xl mx-auto px-6 lg:px-8 relative"> <div class="relative flex items-center justify-between h-20"> <!-- Logo --> <a href="/" class="relative z-10 flex items-center hover:opacity-80 transition-opacity"> <img src="/lovable-uploads/logo-120.webp" alt="One More Shot AI — AI music video generator" class="h-10 w-10" width="40" height="40" loading="lazy"> </a> <!-- Desktop Navigation (absolutely centered) --> <div class="hidden lg:flex items-center space-x-8 absolute inset-x-0 justify-center pointer-events-none"> <a href="/#features" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Features </a><a href="/#examples" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Showcase </a><a href="/#pricing" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Pricing </a><a href="/#testimonials" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Testimonials </a><a href="/for-business/" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> For business </a><a href="/for-business/labels/" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> For labels </a><a href="/developers/api/" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> API </a><a href="/blog/" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Blog </a> </div> <!-- Auth buttons (right) --> <div class="hidden lg:flex relative z-10 items-center gap-2"> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors font-body font-medium">
362Log in
363</a> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="header_sign_in" data-track-category="conversion" class="inline-flex items-center justify-center rounded-lg bg-white px-4 py-2 text-sm font-semibold text-black transition-colors hover:bg-white/85 font-heading">
364Sign up
365</a> </div> <!-- Mobile menu button --> <button type="button" id="mobile-menu-btn" class="lg:hidden text-foreground hover:bg-card inline-flex items-center justify-center rounded-lg p-2 transition" aria-label="Toggle menu" aria-expanded="false"> <svg id="menu-icon-open" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg> <svg id="menu-icon-close" class="hidden h-6 w-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M18 6 6 18M6 6l12 12"></path></svg> </button> </div> <!-- Mobile Navigation --> <div id="mobile-menu" class="hidden lg:hidden absolute top-[5.5rem] left-4 right-4 bg-background border border-border/50 rounded-2xl shadow-2xl z-[100]"> <div class="py-4 px-6 space-y-1"> <a href="/#features" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> Features </a><a href="/#examples" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 roun
365ded-lg hover:bg-accent"> Showcase </a><a href="/#pricing" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> Pricing </a><a href="/#testimonials" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> Testimonials </a><a href="/for-business/" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> For business </a><a href="/for-business/labels/" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> For labels </a><a href="/developers/api/" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> API </a><a href="/blog/" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> Blog </a> <div class="pt-3"> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="mobile_sign_in" data-track-category="conversion" class="block w-full text-center rounded-full border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground py-3 px-8 font-heading font-medium transition-all duration-300">
366Sign In
367</a> </div> </div> </div> </div> </nav> 
367<script type="module">const o=document.getElementById("navbar"),a=document.getElementById("mobile-menu-btn"),h=document.getElementById("mobile-menu"),m=document.getElementById("menu-icon-open"),g=document.getElementById("menu-icon-close"),f=80;function i(e,n){const t=document.getElementById(e.replace(/^#/,""));if(!t)return;const r=document.querySelectorAll(".cv-auto");r.forEach(c=>{c.style.contentVisibility="visible"});const l=t.getBoundingClientRect().top+window.scrollY-f;window.scrollTo({top:l,behavior:n?"smooth":"instant"});const b=()=>r.forEach(c=>{c.style.contentVisibility=""});let d=-1;const u=()=>{window.scrollY===d?b():(d=window.scrollY,requestAnimationFrame(u))};requestAnimationFrame(u)}o?.addEventListener("click",e=>{const n=e.target.closest('a[href*="/#"]');if(!n||n.target==="_blank")return;const t=new URL(n.href,location.origin).hash;if(!t||!document.getElementById(t.replace(/^#/,"")))return;e.preventDefault(),history.pushState(null,"",`/${location.search}${t}`);const l=!n.classList.contains("mobile-nav-link");i(t,l)});window.addEventListener("popstate",()=>{location.hash&&i(location.hash,!0)});location.hash&&(i(location.hash,!1),window.addEventListener("load",()=>i(location.hash,!1),{once:!0}));let s=!1;window.addEventListener("scroll",()=>{s||(s=!0,requestAnimationFrame(()=>{if(!o){s=!1;return}window.scrollY>50?(o.classList.remove("bg-transparent"),o.classList.add("bg-background","border-b","border-border/20","shadow-lg")):(o.classList.add("bg-transparent"),o.classList.remove("bg-background","border-b","border-border/20","shadow-lg")),s=!1}))},{passive:!0});a?.addEventListener("click",()=>{const e=a.getAttribute("aria-expanded")==="true";a.setAttribute("aria-expanded",String(!e)),h?.classList.toggle("hidden"),m?.classList.toggle("hidden"),g?.classList.toggle("hidden")});document.querySelectorAll(".mobile-nav-link").forEach(e=>{e.addEventListener("click",()=>{h?.classList.add("hidden"),a?.setAttribute("aria-expanded","false"),m?.classList.remove("hidden"),g?.classList.add("hidden")})});</script>
367 <main id="main-content">  <section class="relative overflow-hidden bg-background px-5 pb-12 md:px-6 md:pb-16 pt-28 md:pt-32"> <div class="pointer-events-none absolute inset-0 overflow-hidden"> <div class="absolute -top-40 left-1/2 h-[600px] w-[600px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"></div> </div> <div class="relative z-10 mx-auto flex max-w-3xl flex-col items-center text-center"> <span class="mb-6 inline-flex items-center gap-2 rounded-full border border-white/[0.08] bg-white/[0.03] px-4 py-1.5 text-xs font-medium uppercase tracking-widest text-white/55"> For music businesses </span> <h1 class="font-heading text-4xl font-bold leading-tight tracking-tight text-white sm:text-5xl lg:text-6xl"> AI music videos for your roster, catalog, and clients </h1> <p class="mt-6 max-w-xl text-base leading-relaxed text-white/45 md:text-lg"> One More Shot AI helps labels, distributors, and agencies produce studio-quality, beat-synced music videos at scale — in minutes, not weeks, at a fraction of production cost. </p> <div class="mt-10 flex flex-col items-center gap-3 sm:flex-row"> <a href="https://calendly.com/angelo-krnl/one-more-shot-ai-product-demo" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="business_hero_demo" data-track-category="conversion" class="inline-flex items-center justify-center rounded-lg bg-white px-7 py-3.5 text-base font-semibold text-black transition-colors hover:bg-white/85 font-heading">
368Book a demo
369<svg class="ml-2 h-4 w-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> </a> <a href="#stakeholders" class="inline-flex items-center justify-center rounded-lg border border-white/[0.12] px-7 py-3.5 text-base font-semibold text-white/80 transition-colors hover:border-white/25 hover:text-white font-heading">
370Explore use cases
371</a> </div> <div class="mt-10 flex items-center justify-center gap-3"> <span class="flex -space-x-2"> <img src="/avatars/user-1.webp" alt="" class="h-7 w-7 rounded-full object-cover ring-2 ring-background" loading="lazy"><img src="/avatars/user-2.webp" alt="" class="h-7 w-7 rounded-full object-cover ring-2 ring-background" loading="lazy"><img src="/avatars/user-3.webp" alt="" class="h-7 w-7 rounded-full object-cover ring-2 ring-background" loading="lazy"><img src="/avatars/user-4.webp" alt="" class="h-7 w-7 rounded-full object-cover ring-2 ring-background" loading="lazy"><img src="/avatars/user-5.webp" alt="" class="h-7 w-7 rounded-full object-cover ring-2 ring-background" loading="lazy"> </span> <span class="text-sm text-white/45">Trusted by 50,000+ artists, labels &amp; teams</span> </div> </div> </section> <section id="examples" class="cv-auto py-14 md:py-24 relative overflow-hidden border-t border-white/[0.06] bg-white/[0.015]"> <!-- Background Effects -->  <div class="hidden md:block absolute top-0 left-1/4 w-96 h-96 bg-gradient-radial from-primary/10 to-transparent rounded-full blur-3xl"></div> <div class="hidden md:block absolute bottom-0 right-1/4 w-96 h-96 bg-gradient-radial from-accent/10 to-transparent rounded-full blur-3xl"></div> <div class="container mx-auto px-4 relative"> <!-- Section Header --> <div class="text-center mb-8 md:mb-16"> <div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-accent/10 border border-accent/20 mb-4 md:mb-6"> <svg class="w-4 h-4 text-accent" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z"></path><path d="M5 3v4"></path><path d="M19 17v4"></path><path d="M3 5h4"></path><path d="M17 19h4"></path></svg> <span class="text-sm font-medium text-accent">See It In Action</span> </div> <h2 class="text-3xl md:text-4xl lg:text-5xl font-bold mb-3 md:mb-6 bg-gradient-to-r from-foreground via-foreground to-muted-foreground bg-clip-text text-transparent">
372Examples That Inspire
373</h2> <p class="text-base md:text-lg text-muted-foreground max-w-2xl mx-auto">
374Discover what's possible with our AI-powered video generation. From music videos to visualizers, create content that captivates.
375</p> </div> <!-- Examples Grid --> <div class="grid md:grid-cols-3 gap-4 md:gap-8 max-w-6xl mx-auto mb-10 md:mb-16"> <div class="group overflow-hidden border-2 border-border hover:border-primary/50 transition-all duration-300 hover:scale-105 rounded-lg bg-card"> <div class="relative aspect-video overflow-hidden"> <img src="https://i.ytimg.com/vi/c_h9bClxsZw/maxresdefault.jpg" alt="knd - hell - Watch how One More Shot AI turns music into video" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-110" loading="lazy" decoding="async" width="400" height="225"> <!-- Play Button Overlay --> <div class="absolute inset-0 bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300"> <button class="example-play-btn rounded-full bg-white/40 md:bg-white/20 md:backdrop-blur-sm hover:bg-white/30 text-white border border-white/30 h-12 px-8 inline-flex items-center justify-center" data-video-url data-video-title="knd - hell" data-video-poster="https://i.ytimg.com/vi/c_h9bClxsZw/maxresdefault.jpg" data-youtube-id="c_h9bClxsZw" aria-label="Play knd - hell video"> <svg class="w-6 h-6 ml-1" fill="currentColor" viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg> </button> </div> <!-- Duration Badge -->  </div> <div class="p-4 md:p-6"> <h3 class="text-lg md:text-xl font-semibold mb-1 md:mb-2">knd - hell</h3> <p class="text-muted-foreground text-xs md:text-sm mb-3 md:mb-4">Watch how One More Shot AI turns music into video</p> <div class="flex gap-2 mb-3 md:mb-4"> <span class="text-xs px-2 py-1 bg-primary/10 text-primary rounded-full">AI Generated</span> <span class="text-xs px-2 py-1 bg-accent/10 text-accent rounded-full">Music Video</span> </div> <a href class="sr-only" aria-label="Watch knd - hell video"> knd - hell - Duration:  </a> <button class="example-play-btn w-full inline-flex items-center justify-center h-10 px-4 roun
375ded-lg border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground hover:border-primary transition-all duration-300 text-sm font-medium" data-video-url data-video-title="knd - hell" data-video-poster="https://i.ytimg.com/vi/c_h9bClxsZw/maxresdefault.jpg" data-youtube-id="c_h9bClxsZw">
376Watch Full Video
377</button> </div> </div><div class="group overflow-hidden border-2 border-border hover:border-primary/50 transition-all duration-300 hover:scale-105 rounded-lg bg-card"> <div class="relative aspect-video overflow-hidden"> <img src="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fpolyphemus.webp?alt=media&token=743aecb6-237d-4f5e-86e9-8d8b60625222" alt="POLYPHEMUS - Amazing AI-generated music video showcase" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-110" loading="lazy" decoding="async" width="400" height="225"> <!-- Play Button Overlay --> <div class="absolute inset-0 bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300"> <button class="example-play-btn rounded-full bg-white/40 md:bg-white/20 md:backdrop-blur-sm hover:bg-white/30 text-white border border-white/30 h-12 px-8 inline-flex items-center justify-center" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fpolyphemus.mp4?alt=media&token=0e443e58-667e-4009-9f6f-1461b716e0a0" data-video-title="POLYPHEMUS" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fpolyphemus.webp?alt=media&token=743aecb6-237d-4f5e-86e9-8d8b60625222" data-youtube-id aria-label="Play POLYPHEMUS video"> <svg class="w-6 h-6 ml-1" fill="currentColor" viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg> </button> </div> <!-- Duration Badge --> <div class="absolute top-4 right-4 bg-black/70 text-white text-xs px-2 py-1 rounded"> 1:52 </div> </div> <div class="p-4 md:p-6"> <h3 class="text-lg md:text-xl font-semibold mb-1 md:mb-2">POLYPHEMUS</h3> <p class="text-muted-foreground text-xs md:text-sm mb-3 md:mb-4">Amazing AI-generated music video showcase</p> <div class="flex gap-2 mb-3 md:mb-4"> <span class="text-xs px-2 py-1 bg-primary/10 text-primary rounded-full">AI Generated</span> <span class="text-xs px-2 py-1 bg-accent/10 text-accent rounded-full">Music Video</span> </div> <a href="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fpolyphemus.mp4?alt=media&token=0e443e58-667e-4009-9f6f-1461b716e0a0" class="sr-only" aria-label="Watch POLYPHEMUS video"> POLYPHEMUS - Duration: 1:52 </a> <button class="example-play-btn w-full inline-flex items-center justify-center h-10 px-4 rounded-lg border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground hover:border-primary transition-all duration-300 text-sm font-medium" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fpolyphemus.mp4?alt=media&token=0e443e58-667e-4009-9f6f-1461b716e0a0" data-video-title="POLYPHEMUS" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fpolyphemus.webp?alt=media&token=743aecb6-237d-4f5e-86e9-8d8b60625222" data-youtube-id>
378Watch Full Video
379</button> </div> </div><div class="group overflow-hidden border-2 border-border hover:border-primary/50 transition-all duration-300 hover:scale-105 rounded-lg bg-card"> <div class="relative aspect-video overflow-hidden"> <img src="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhypnotic.webp?alt=media&token=21d8035c-c9c1-4849-8887-28de05da8252" alt="HYPNOTIC - Transform your music into captivating videos" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-110" loading="lazy" decoding="async" width="400" height="225"> <!-- Play Button Overlay --> <div class="absolute inset-0 bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300"> <button class="example-play-btn rounded-full bg-white/40 md:bg-white/20 md:backdrop-blur-sm hover:bg-white/30 text-white border border-white/30 h-12 px-8 inline-flex items-center justify-center" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhypnotic.mp4?alt=media&token=3e292de4-232c-4db2-821d-14142ce4c23e" data-video-title="HYPNOTIC" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhypnotic.webp?alt=media&token=21d8035c-c9c1-4849-8887-28de05da8252" data-youtube-id aria-label="Play HYPNOTIC video"> <svg class="w-6 h-6 ml-1" fill="currentColor" viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg> </button> </div> <!-- Duration Badge --> <div class="absolute top-4 right-4 bg-black/70 text-white text-xs px-2 py-1 rounded"> 2:08 </div> </div> <div class="p-4 md:p-6"> <h3 class="text-lg md:text-xl font-semibold mb-1 md:mb-2">HYPNOTIC</h3> <p class="text-muted-foreground text-xs md:text-sm mb-3 md:mb-4">Transform your music into captivating videos</p> <div class="flex gap-2 mb-3 md:mb-4"> <span class="text-xs px-2 py-1 bg-primary/10 text-primary rounded-full">AI Generated</span> <span class="text-xs px-2 py-1 bg-accent/10 text-accent rounded-full">Music Video</span> </div> <a href="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhypnotic.mp4?alt=media&token=3e292de4-232c-4db2-821d-14142ce4c23e" class="sr-only" aria-label="Watch HYPNOTIC video"> HYPNOTIC - Duration: 2:08 </a> <button class="example-play-btn w-full inline-flex items-center justify-center h-10 px-4 roun
379ded-lg border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground hover:border-primary transition-all duration-300 text-sm font-medium" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhypnotic.mp4?alt=media&token=3e292de4-232c-4db2-821d-14142ce4c23e" data-video-title="HYPNOTIC" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhypnotic.webp?alt=media&token=21d8035c-c9c1-4849-8887-28de05da8252" data-youtube-id>
380Watch Full Video
381</button> </div> </div><div class="group overflow-hidden border-2 border-border hover:border-primary/50 transition-all duration-300 hover:scale-105 rounded-lg bg-card"> <div class="relative aspect-video overflow-hidden"> <img src="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fstanding_in_the_hush.webp?alt=media&token=8baf4269-615f-47a4-8b8e-002038e6066b" alt="Standing in the Hush - Amazing AI-generated music video showcase" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-110" loading="lazy" decoding="async" width="400" height="225"> <!-- Play Button Overlay --> <div class="absolute inset-0 bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300"> <button class="example-play-btn rounded-full bg-white/40 md:bg-white/20 md:backdrop-blur-sm hover:bg-white/30 text-white border border-white/30 h-12 px-8 inline-flex items-center justify-center" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fstanding_in_the_hush.mp4?alt=media&token=e35bdd38-4323-4a62-9193-7db6873c4de0" data-video-title="Standing in the Hush" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fstanding_in_the_hush.webp?alt=media&token=8baf4269-615f-47a4-8b8e-002038e6066b" data-youtube-id aria-label="Play Standing in the Hush video"> <svg class="w-6 h-6 ml-1" fill="currentColor" viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg> </button> </div> <!-- Duration Badge --> <div class="absolute top-4 right-4 bg-black/70 text-white text-xs px-2 py-1 rounded"> 3:22 </div> </div> <div class="p-4 md:p-6"> <h3 class="text-lg md:text-xl font-semibold mb-1 md:mb-2">Standing in the Hush</h3> <p class="text-muted-foreground text-xs md:text-sm mb-3 md:mb-4">Amazing AI-generated music video showcase</p> <div class="flex gap-2 mb-3 md:mb-4"> <span class="text-xs px-2 py-1 bg-primary/10 text-primary rounded-full">AI Generated</span> <span class="text-xs px-2 py-1 bg-accent/10 text-accent rounded-full">Music Video</span> </div> <a href="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fstanding_in_the_hush.mp4?alt=media&token=e35bdd38-4323-4a62-9193-7db6873c4de0" class="sr-only" aria-label="Watch Standing in the Hush video"> Standing in the Hush - Duration: 3:22 </a> <button class="example-play-btn w-full inline-flex items-center justify-center h-10 px-4 rounded-lg border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground hover:border-primary transition-all duration-300 text-sm font-medium" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fstanding_in_the_hush.mp4?alt=media&token=e35bdd38-4323-4a62-9193-7db6873c4de0" data-video-title="Standing in the Hush" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fstanding_in_the_hush.webp?alt=media&token=8baf4269-615f-47a4-8b8e-002038e6066b" data-youtube-id>
382Watch Full Video
383</button> </div> </div><div class="group overflow-hidden border-2 border-border hover:border-primary/50 transition-all duration-300 hover:scale-105 rounded-lg bg-card"> <div class="relative aspect-video overflow-hidden"> <img src="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhold_on_the_moment.webp?alt=media&token=ff1debb1-190c-40e8-a358-370ec288774d" alt="Hold On The Moment - Amazing AI-generated music video showcase" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-110" loading="lazy" decoding="async" width="400" height="225"> <!-- Play Button Overlay --> <div class="absolute inset-0 bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300"> <button class="example-play-btn rounded-full bg-white/40 md:bg-white/20 md:backdrop-blur-sm hover:bg-white/30 text-white border border-white/30 h-12 px-8 inline-flex items-center justify-center" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhold_on_the_moment.mp4?alt=media&token=3451017c-5885-4bd0-bb54-fb66f9906b7f" data-video-title="Hold On The Moment" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhold_on_the_moment.webp?alt=media&token=ff1debb1-190c-40e8-a358-370ec288774d" data-youtube-id aria-label="Play Hold On The Moment video"> <svg class="w-6 h-6 ml-1" fill="currentColor" viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg> </button> </div> <!-- Duration Badge --> <div class="absolute top-4 right-4 bg-black/70 text-white text-xs px-2 py-1 rounded"> 4:17 </div> </div> <div class="p-4 md:p-6"> <h3 class="text-lg md:text-xl font-semibold mb-1 md:mb-2">Hold On The Moment</h3> <p class="text-muted-foreground text-xs md:text-sm mb-3 md:mb-4">Amazing AI-generated music video showcase</p> <div class="flex gap-2 mb-3 md:mb-4"> <span class="text-xs px-2 py-1 bg-primary/10 text-primary rounded-full">AI Generated</span> <span class="text-xs px-2 py-1 bg-accent/10 text-accent rounded-full">Music Video</span> </div> <a href="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhold_on_the_moment.mp4?alt=media&token=3451017c-5885-4bd0-bb54-fb66f9906b7f" class="sr-only" aria-label="Watch Hold On The Moment video"> Hold On The Moment - Duration: 4:17 </a> <button class="example-play-btn w-full inline-flex items-center justify-center h-10 px-4 roun
383ded-lg border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground hover:border-primary transition-all duration-300 text-sm font-medium" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhold_on_the_moment.mp4?alt=media&token=3451017c-5885-4bd0-bb54-fb66f9906b7f" data-video-title="Hold On The Moment" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fhold_on_the_moment.webp?alt=media&token=ff1debb1-190c-40e8-a358-370ec288774d" data-youtube-id>
384Watch Full Video
385</button> </div> </div><div class="group overflow-hidden border-2 border-border hover:border-primary/50 transition-all duration-300 hover:scale-105 rounded-lg bg-card"> <div class="relative aspect-video overflow-hidden"> <img src="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fback_to_basic.webp?alt=media&token=eb288475-d568-47db-a0d1-15ca6e4d5a39" alt="Back to Basic - Amazing AI-generated music video showcase" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-110" loading="lazy" decoding="async" width="400" height="225"> <!-- Play Button Overlay --> <div class="absolute inset-0 bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300"> <button class="example-play-btn rounded-full bg-white/40 md:bg-white/20 md:backdrop-blur-sm hover:bg-white/30 text-white border border-white/30 h-12 px-8 inline-flex items-center justify-center" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fback_to_basic.mp4?alt=media&token=fc5de78e-c076-401f-a9af-38a91e36226e" data-video-title="Back to Basic" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fback_to_basic.webp?alt=media&token=eb288475-d568-47db-a0d1-15ca6e4d5a39" data-youtube-id aria-label="Play Back to Basic video"> <svg class="w-6 h-6 ml-1" fill="currentColor" viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg> </button> </div> <!-- Duration Badge --> <div class="absolute top-4 right-4 bg-black/70 text-white text-xs px-2 py-1 rounded"> 3:19 </div> </div> <div class="p-4 md:p-6"> <h3 class="text-lg md:text-xl font-semibold mb-1 md:mb-2">Back to Basic</h3> <p class="text-muted-foreground text-xs md:text-sm mb-3 md:mb-4">Amazing AI-generated music video showcase</p> <div class="flex gap-2 mb-3 md:mb-4"> <span class="text-xs px-2 py-1 bg-primary/10 text-primary rounded-full">AI Generated</span> <span class="text-xs px-2 py-1 bg-accent/10 text-accent rounded-full">Music Video</span> </div> <a href="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fback_to_basic.mp4?alt=media&token=fc5de78e-c076-401f-a9af-38a91e36226e" class="sr-only" aria-label="Watch Back to Basic video"> Back to Basic - Duration: 3:19 </a> <button class="example-play-btn w-full inline-flex items-center justify-center h-10 px-4 rounded-lg border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground hover:border-primary transition-all duration-300 text-sm font-medium" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fback_to_basic.mp4?alt=media&token=fc5de78e-c076-401f-a9af-38a91e36226e" data-video-title="Back to Basic" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2Fback_to_basic.webp?alt=media&token=eb288475-d568-47db-a0d1-15ca6e4d5a39" data-youtube-id>
386Watch Full Video
387</button> </div> </div><div class="group overflow-hidden border-2 border-border hover:border-primary/50 transition-all duration-300 hover:scale-105 rounded-lg bg-card"> <div class="relative aspect-video overflow-hidden"> <img src="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2F6_feet.webp?alt=media&token=bdd9d978-c7e9-45d7-957e-9161b1264407" alt="6 Feet - Transform your track into a stunning visual experience" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-110" loading="lazy" decoding="async" width="400" height="225"> <!-- Play Button Overlay --> <div class="absolute inset-0 bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300"> <button class="example-play-btn rounded-full bg-white/40 md:bg-white/20 md:backdrop-blur-sm hover:bg-white/30 text-white border border-white/30 h-12 px-8 inline-flex items-center justify-center" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2F6_feet.mp4?alt=media&token=a26d8fae-352d-4f4b-8965-b23859e89b23" data-video-title="6 Feet" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2F6_feet.webp?alt=media&token=bdd9d978-c7e9-45d7-957e-9161b1264407" data-youtube-id aria-label="Play 6 Feet video"> <svg class="w-6 h-6 ml-1" fill="currentColor" viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg> </button> </div> <!-- Duration Badge --> <div class="absolute top-4 right-4 bg-black/70 text-white text-xs px-2 py-1 rounded"> 2:26 </div> </div> <div class="p-4 md:p-6"> <h3 class="text-lg md:text-xl font-semibold mb-1 md:mb-2">6 Feet</h3> <p class="text-muted-foreground text-xs md:text-sm mb-3 md:mb-4">Transform your track into a stunning visual experience</p> <div class="flex gap-2 mb-3 md:mb-4"> <span class="text-xs px-2 py-1 bg-primary/10 text-primary rounded-full">Cinematic</span> <span class="text-xs px-2 py-1 bg-accent/10 text-accent rounded-full">Electronic</span> </div> <a href="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2F6_feet.mp4?alt=media&token=a26d8fae-352d-4f4b-8965-b23859e89b23" class="sr-only" aria-label="Watch 6 Feet video"> 6 Feet - Duration: 2:26 </a> <button class="example-play-btn w-full inline-flex items-center justify-center h-10 px-4 roun
387ded-lg border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground hover:border-primary transition-all duration-300 text-sm font-medium" data-video-url="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2F6_feet.mp4?alt=media&token=a26d8fae-352d-4f4b-8965-b23859e89b23" data-video-title="6 Feet" data-video-poster="https://firebasestorage.googleapis.com/v0/b/photographer-dv8f47.firebasestorage.app/o/landing_sample_videos%2F6_feet.webp?alt=media&token=bdd9d978-c7e9-45d7-957e-9161b1264407" data-youtube-id>
388Watch Full Video
389</button> </div> </div> </div> </div> </section> 
389<script type="module">const s=document.getElementById("example-modal"),e=document.getElementById("example-modal-video"),g=document.getElementById("example-modal-player"),y=document.getElementById("example-modal-controls"),r=document.getElementById("modal-seekbar-track"),m=document.getElementById("modal-seekbar-fill"),u=document.getElementById("modal-seekbar-thumb"),f=document.getElementById("modal-time-current"),v=document.getElementById("modal-time-duration"),b=document.getElementById("modal-icon-play"),B=document.getElementById("modal-icon-pause"),I=document.getElementById("modal-icon-unmuted"),x=document.getElementById("modal-icon-muted");let d=!1,c=!1;function h(t){const n=Math.floor(t/60),o=Math.floor(t%60);return`${n}:${o.toString().padStart(2,"0")}`}function i(){b?.classList.toggle("hidden",d),B?.classList.toggle("hidden",!d)}function L(){if(!e||!e.duration)return;const t=e.currentTime/e.duration*100;m&&(m.style.width=`${t}%`),u&&(u.style.left=`${t}%`),f&&(f.textContent=h(e.currentTime))}function E(){g?.querySelector("iframe")?.remove()}function k(t,n,o,a){if(s?.classList.remove("hidden"),s?.classList.add("flex"),window.trackEvent&&window.trackEvent("example_video_play",{event_category:"engagement",event_label:n}),a){e?.classList.add("hidden"),y?.classList.add("hidden"),E();const l=document.createElement("iframe");l.src=`https://www.youtube.com/embed/${a}?autoplay=1&rel=0`,l.title=n,l.className="w-full aspect-video max-h-[80dvh]",l.allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",l.allowFullscreen=!0,l.setAttribute("frameborder","0"),g?.appendChild(l);return}if(E(),e?.classList.remove("hidden"),y?.classList.remove("hidden"),e&&(e.src=t,e.poster=o),m&&(m.style.width="0%"),u&&(u.style.left="0%"),f&&(f.textContent="0:00"),v&&(v.textContent="0:00"),e){const l=()=>{e.play().then(()=>{d=!0,i()}).catch(()=>{d=!1,i()})};e.readyState>=1?l():e.addEventListener("loadedmetadata",l,{once:!0})}}function w(){e?.pause(),e&&(e.src=""),E(),s?.classList.add("hidden"),s?.classList.remove("flex"),d=!1,i()}document.getElementById("modal-close-btn")?.addEventListener("click",w);e?.addEventListener("click",()=>{d?(e.pause(),d=!1):(e.play(),d=!0),i()});e?.addEventListener("loadedmetadata",()=>{v&&(v.textContent=h(e.duration))});e?.addEventListener("timeupdate",()=>{c||L()});e?.addEventListener("ended",()=>{d=!1,i()});document.getElementById("modal-play-pause")?.addEventListener("click",()=>{e&&(d?(e.pause(),d=!1):(e.play(),d=!0),i())});document.getElementById("modal-mute-btn")?.addEventListener("click",()=>{e&&(e.muted=!e.muted,I?.classList.toggle("hidden",e.muted),x?.classList.toggle("hidden",!e.muted))});document.getElementById("modal-fullscreen-btn")?.addEventListener("click",()=>{e&&(e.requestFullscreen?e.requestFullscreen():e.webkitEnterFullscreen&&e.webkitEnterFullscreen())});function p(t){if(!r||!e||!e.duration)return;const n=r.getBoundingClientRect(),o="touches"in t?t.touches[0].clientX:t.clientX,a=Math.max(0,Math.min(1,(o-n.left)/n.width));e.currentTime=a*e.duration,L()}r?.addEventListener("mousedown",t=>{c=!0,p(t);const n=a=>p(a),o=()=>{c=!1,document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",o)};document.addEventListener("mousemove",n),document.addEventListener("mouseup",o)});r?.addEventListener("touchstart",t=>{c=!0,p(t);const n=a=>p(a),o=()=>{c=!1,document.removeEventListener("touchmove",n),document.removeEventListener("touchend",o)};document.addEventListener("touchmove",n),document.addEventListener("touchend",o)},{passive:!0});document.querySelectorAll(".example-play-btn").forEach(t=>{t.addEventListener("click",n=>{n.stopPropagation();const o=t;k(o.dataset.videoUrl||"",o.dataset.videoTitle||"",o.dataset.videoPoster||"",o.dataset.youtubeId||"")})});s?.addEventListener("click",t=>{t.target===s&&w()});window.addEventListener("open-example-video",(t=>{const{url:n,title:o,poster:a}=t.detail;n&&k(n,o,a)}));</script>
389 <section class="bg-background px-5 pt-4 pb-2 md:px-6"> <p class="mx-auto max-w-2xl text-center text-sm leading-relaxed text-white/40">
390Powered by the <a href="/" class="text-primary transition-colors hover:text-primary/80">AI music video generator</a> trusted by 50,000+ independent artists.
391</p> </section> <section class="bg-background px-5 py-16 md:px-6 md:py-24"> <div class="mx-auto max-w-5xl"> <div class="mx-auto mb-12 max-w-2xl text-center md:mb-16"> <h2 class="font-heading text-3xl font-bold leading-tight tracking-tight text-white md:text-4xl lg:text-5xl"> Why teams choose One More Shot AI </h2> <p class="mx-auto mt-4 max-w-xl text-base leading-relaxed text-white/45"> The same engine independent artists love, built to operate at the scale a business needs. </p> </div> <div class="grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3"> <div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.12] md:p-7"> <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9L12 3zM5 19l.6 1.6L7 21l-1.4.6L5 23l-.6-1.4L3 21l1.4-.4L5 19z"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Studio-quality output</h3> <p class="text-[15px] leading-relaxed text-white/50">Cinematic, beat-synced visuals with realistic motion and accurate lip-sync — release-grade videos your artists are proud to put their name on, not obvious AI filler.</p> </div><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.12] md:p-7"> <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M3 3v18h18M7 14l3-3 3 3 5-6"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Production at scale</h3> <p class="text-[15px] leading-relaxed text-white/50">Generate release visuals across an entire roster or back catalog — batch dozens of videos in the time a traditional shoot takes to schedule.</p> </div><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.12] md:p-7"> <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M12 1v22M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">A fraction of the cost</h3> <p class="text-[15px] leading-relaxed text-white/50">Replace four- and five-figure production budgets with a predictable per-seat or volume price. Cost per video drops the more you ship.</p> </div><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.12] md:p-7"> <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M13 2 3 14h7l-1 8 10-12h-7l1-8z"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Release-day turnaround</h3> <p class="text-[15px] leading-relaxed text-white/50">Go from final master to a beat-synced, lip-synced video in minutes — fast enough to hit every release date and react to trends.</p> </div><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.12] md:p-7"> <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M12 2l2.4 7.4H22l-6 4.6 2.3 7.4L12 17l-6.3 4.4L8 14 2 9.4h7.6L12 2z"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Consistent brand control</h3> <p class="text-[15px] leading-relaxed text-white/50">Save styles, palettes, and presets so every artist and every release looks intentional and on-brand across platforms.</p> </div><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.12] md:p-7"> <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M16 18l6-6-6-6M8 6l-6 6 6 6"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">White-label &amp; API</h3> <p class="text-[15px] leading-relaxed text-white/50">Embed AI video generation directly into your own platform, distribution flow, or client portal. Offer it under your brand.</p> </div><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.12] md:p-7"> <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M12 2l8 4v6c0 5-3.4 8.5-8 10-4.6-1.5-8-5-8-10V6l8-4zM9 12l2 2 4-4"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Clear rights &amp; ownership</h3> <p class="text-[15px] leading-relaxed text-white/50">Visuals are royalty-free and yours to distribute commercially across YouTube, TikTok, Instagram, and Spotify Canvas.</p> </div> </div> </div> </section> <section id="stakeholders" class="bg-background px-5 py-16 md:px-6 md:py-24"> <div class="mx-auto max-w-5xl"> <div class="mx-auto mb-12 max-w-2xl text-center md:mb-16"> <h2 class="font-heading text-3xl font-bold leading-tight tracking-tight text-white md:text-4xl lg:text-5xl">
392Built for music businesses of every kind
393</h2> <p class="mx-auto mt-4 max-w-xl text-base leading-relaxed text-white/45">
394Whether you manage a roster, distribute a catalog, or run campaigns for clients, One More Shot AI scales to your workflow.
395</p> </div> <div class="grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3"> <a href="/for-business/labels/" class="group block rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.14] md:p-7">  <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M20.59 13.41 11 3.82A2 2 0 0 0 9.59 3H4a1 1 0 0 0-1 1v5.59A2 2 0 0 0 3.59 11l9.59 9.59a2 2 0 0 0 2.82 0l4.59-4.59a2 2 0 0 0 0-2.82zM7 7h.01"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Record labels</h3> <p class="text-[15px] leading-relaxed text-white/50">Equip your whole roster with release-ready visuals, cut per-video budgets, and keep launches on schedule.</p> <span class="mt-4 inline-flex items-center gap-1.5 text-sm font-semibold text-primary">
396Learn more
397<svg class="h-4 w-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
397<path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> </span> </a><a href="/for-business/distributors/" class="group block rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.14] md:p-7">  <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16zM3.27 6.96 12 12l8.73-5.04M12 22V12"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Distributors &amp; aggregators</h3> <p class="text-[15px] leading-relaxed text-white/50">Offer AI music videos as a value-add or white-label feature to the artists you already distribute.</p> <span class="mt-4 inline-flex items-center gap-1.5 text-sm font-semibold text-primary">
398Learn more
399<svg class="h-4 w-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> </span> </a><a href="/for-business/agencies/" class="group block rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 transition-colors hover:border-white/[0.14] md:p-7">  <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M3 21h18M5 21V7l8-4v18M19 21V11l-6-4M9 9v.01M9 13v.01M9 17v.01"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Marketing agencies</h3> <p class="text-[15px] leading-relaxed text-white/50">Produce Spotify Canvas, vertical cuts, lyric videos, and ad creative for every client at volume.</p> <span class="mt-4 inline-flex items-center gap-1.5 text-sm font-semibold text-primary">
400Learn more
401<svg class="h-4 w-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> </span> </a><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 md:p-7">  <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M9 7a4 4 0 1 0 0 .01M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Artist managers</h3> <p class="text-[15px] leading-relaxed text-white/50">Keep content flowing for every managed artist without booking a shoot for each release.</p>  </div><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 md:p-7">  <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2zM22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Publishers &amp; catalog owners</h3> <p class="text-[15px] leading-relaxed text-white/50">Visualize back catalogs to drive new streams, pitches, and sync opportunities.</p>  </div><div class="rounded-2xl border border-white/[0.06] bg-white/[0.02] p-6 md:p-7">  <div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl border border-white/[0.08] bg-white/[0.04] text-primary"> <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path> </svg> </div> <h3 class="mb-2 font-heading text-lg font-bold text-white">Sync &amp; production libraries</h3> <p class="text-[15px] leading-relaxed text-white/50">Give every track in your library a visual so supervisors and buyers can experience it instantly.</p>  </div> </div> </div> </section> <section id="faq" class="cv-auto py-16 md:py-32 relative overflow-hidden"> <div class="hidden md:block absolute top-1/4 left-0 w-96 h-96 bg-primary/5 rounded-full blur-3xl"></div> <div class="hidden md:block absolute bottom-1/4 right-0 w-96 h-96 bg-accent/5 rounded-full blur-3xl"></div> <div class="max-w-4xl mx-auto px-4 md:px-6 lg:px-8 relative z-10"> <div class="text-center mb-10 md:mb-20 space-y-3 md:space-y-6"> <div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-card md:bg-card/50 md:backdrop-blur-sm border border-border/50 text-sm font-medium"> <svg class="w-4 h-4 text-primary" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><path d="M12 17h.01"></path></svg>
402FAQ
403</div> <h2 class="text-3xl md:text-5xl lg:text-7xl font-heading font-black">
404Frequently asked  <span class="gradient-text">questions</span> </h2> <p class="text-base md:text-xl text-muted-foreground max-w-3xl mx-auto font-body leading-relaxed">
405Everything you need to know about creating AI music videos.
406</p> </div> <div class="space-y-3 md:space-y-4"> <details class="group glass-card rounded-2xl md:rounded-3xl overflow-hidden transition-all duration-300 hover:shadow-card" data-faq-item> <summary class="flex items-center justify-between gap-4 cursor-pointer p-5 md:p-8 list-none [&::-webkit-details-marker]:hidden select-none"> <h3 class="text-base md:text-lg font-heading font-semibold text-foreground text-left"> How does pricing work for teams and companies? </h3> <span class="shrink-0 w-8 h-8 md:w-10 md:h-10 rounded-xl bg-card flex items-center justify-center border border-border/50 group-open:bg-primary/10 transition-colors duration-300"> <svg class="w-4 h-4 md:w-5 md:h-5 text-muted-foreground group-open:text-primary transition-transform duration-300 group-open:rotate-45" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path d="M12 5v14m-7-7h14"></path> </svg> </span> </summary> <div class="px-5 pb-5 md:px-8 md:pb-8 -mt-2"> <p class="text-sm md:text-base text-muted-foreground font-body leading-relaxed"> We offer volume and seat-based plans tailored to your output. Book a demo and we will scope a plan around your roster size, release cadence, and whether you need white-label or API access. </p> </div> </details>
406<details class="group glass-card rounded-2xl md:rounded-3xl overflow-hidden transition-all duration-300 hover:shadow-card" data-faq-item> <summary class="flex items-center justify-between gap-4 cursor-pointer p-5 md:p-8 list-none [&::-webkit-details-marker]:hidden select-none"> <h3 class="text-base md:text-lg font-heading font-semibold text-foreground text-left"> Can we white-label or integrate via API? </h3> <span class="shrink-0 w-8 h-8 md:w-10 md:h-10 rounded-xl bg-card flex items-center justify-center border border-border/50 group-open:bg-primary/10 transition-colors duration-300"> <svg class="w-4 h-4 md:w-5 md:h-5 text-muted-foreground group-open:text-primary transition-transform duration-300 group-open:rotate-45" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path d="M12 5v14m-7-7h14"></path> </svg> </span> </summary> <div class="px-5 pb-5 md:px-8 md:pb-8 -mt-2"> <p class="text-sm md:text-base text-muted-foreground font-body leading-relaxed"> Yes. One More Shot AI can be embedded into your own platform, distribution workflow, or client portal via API, and presented under your own brand. We will walk you through the integration on a demo. </p> </div> </details><details class="group glass-card rounded-2xl md:rounded-3xl overflow-hidden transition-all duration-300 hover:shadow-card" data-faq-item> <summary class="flex items-center justify-between gap-4 cursor-pointer p-5 md:p-8 list-none [&::-webkit-details-marker]:hidden select-none"> <h3 class="text-base md:text-lg font-heading font-semibold text-foreground text-left"> Who owns the videos we generate? </h3> <span class="shrink-0 w-8 h-8 md:w-10 md:h-10 rounded-xl bg-card flex items-center justify-center border border-border/50 group-open:bg-primary/10 transition-colors duration-300"> <svg class="w-4 h-4 md:w-5 md:h-5 text-muted-foreground group-open:text-primary transition-transform duration-300 group-open:rotate-45" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path d="M12 5v14m-7-7h14"></path> </svg> </span> </summary> <div class="px-5 pb-5 md:px-8 md:pb-8 -mt-2"> <p class="text-sm md:text-base text-muted-foreground font-body leading-relaxed"> You do. Generated visuals are royalty-free and cleared for commercial distribution on every major platform, so you and your artists can publish without licensing friction. </p> </div> </details><details class="group glass-card rounded-2xl md:rounded-3xl overflow-hidden transition-all duration-300 hover:shadow-card" data-faq-item> <summary class="flex items-center justify-between gap-4 cursor-pointer p-5 md:p-8 list-none [&::-webkit-details-marker]:hidden select-none"> <h3 class="text-base md:text-lg font-heading font-semibold text-foreground text-left"> Can the platform handle a large catalog or roster? </h3> <span class="shrink-0 w-8 h-8 md:w-10 md:h-10 rounded-xl bg-card flex items-center justify-center border border-border/50 group-open:bg-primary/10 transition-colors duration-300"> <svg class="w-4 h-4 md:w-5 md:h-5 text-muted-foreground group-open:text-primary transition-transform duration-300 group-open:rotate-45" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path d="M12 5v14m-7-7h14"></path> </svg> </span> </summary> <div class="px-5 pb-5 md:px-8 md:pb-8 -mt-2"> <p class="text-sm md:text-base text-muted-foreground font-body leading-relaxed"> Absolutely. The platform is built for batch generation across many tracks and artists, with saved brand presets so output stays consistent at scale. </p> </div> </details><details class="group glass-card rounded-2xl md:rounded-3xl overflow-hidden transition-all duration-300 hover:shadow-card" data-faq-item> <summary class="flex items-center justify-between gap-4 cursor-pointer p-5 md:p-8 list-none [&::-webkit-details-marker]:hidden select-none"> <h3 class="text-base md:text-lg font-heading font-semibold text-foreground text-left"> Do you support multiple team members and shared styles? </h3> <span class="shrink-0 w-8 h-8 md:w-10 md:h-10 rounded-xl bg-card flex items-center justify-center border border-border/50 group-open:bg-primary/10 transition-colors duration-300"> <svg class="w-4 h-4 md:w-5 md:h-5 text-muted-foreground group-open:text-primary transition-transform duration-300 group-open:rotate-45" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path d="M12 5v14m-7-7h14"></path> </svg> </span> </summary> <div class="px-5 pb-5 md:px-8 md:pb-8 -mt-2"> <p class="text-sm md:text-base text-muted-foreground font-body leading-relaxed"> Yes. Team workspaces let multiple members collaborate, reuse shared visual presets, and keep every release on-brand. </p> </div> </details> </div> </div> </section> <section class="bg-background px-5 py-16 md:px-6 md:py-24"> <div class="mx-auto max-w-4xl overflow-hidden rounded-3xl border border-white/[0.08] bg-gradient-to-br from-primary/15 via-white/[0.03] to-accent/15 px-6 py-12 text-center md:px-12 md:py-16"> <h2 class="font-heading text-3xl font-bold leading-tight tracking-tight text-white md:text-4xl lg:text-5xl"> See it on your own catalog </h2> <p class="mx-auto mt-4 max-w-xl text-base leading-relaxed text-white/55"> Book a 20-minute demo and we’ll show you how One More Shot AI fits your roster, workflow, and volume — and scope a plan around it. </p> <a href="https://calendly.com/angelo-krnl/one-more-shot-ai-product-demo" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="business_band_demo" data-track-category="conversion" class="mt-9 inline-flex items-center justify-center rounded-lg bg-white px-8 py-3.5 text-base font-semibold text-black transition-colors hover:bg-white/85 font-heading">
407Book a demo
408<svg class="ml-2 h-4 w-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
408<path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> </a> </div> </section>  </main> <footer class="bg-background border-t border-border/20 py-8 md:py-12"> <div class="max-w-7xl mx-auto px-4 md:px-6 lg:px-8"> <div class="grid grid-cols-2 md:grid-cols-5 lg:grid-cols-6 gap-8 md:gap-10"> <!-- Brand --> <div class="col-span-2 md:col-span-5 lg:col-span-1 space-y-4"> <div class="flex items-center space-x-3"> <img src="/lovable-uploads/logo-120.webp" alt="One More Shot AI — AI music video generator logo" class="h-8 w-8" width="32" height="32" loading="lazy"> <span class="text-xl font-heading font-bold text-foreground">
409One More Shot AI
410</span> </div> <p class="text-sm text-muted-foreground font-body">
411Create stunning AI-powered music videos in minutes. Transform your tracks into captivating visual experiences.
412</p> <div class="flex items-center gap-2" aria-label="Social media"> <a href="https://www.instagram.com/onemoreshot.ai/" target="_blank" rel="noopener noreferrer" aria-label="One More Shot AI on Instagram" class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border border-border/40 text-muted-foreground transition-colors hover:border-primary/50 hover:text-foreground"> <svg class="h-4 w-4" fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg> </a> <a href="https://www.youtube.com/@onemoreshot-ai" target="_blank" rel="noopener noreferrer" aria-label="One More Shot AI on YouTube" class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border border-border/40 text-muted-foreground transition-colors hover:border-primary/50 hover:text-foreground"> <svg class="h-4 w-4" fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"></path><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"></polygon></svg> </a> <a href="https://discord.com/invite/CG7Zvuupmh" target="_blank" rel="noopener noreferrer" aria-label="One More Shot AI on Discord" class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border border-border/40 text-muted-foreground transition-colors hover:border-primary/50 hover:text-foreground"> <svg class="h-4 w-4" fill="currentColor" viewBox="0 0 24 24"><path d="M20.317 4.369a19.79 19.79 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.6 12.6 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.74 19.74 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.058a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.1 13.1 0 0 1-1.872-.892.077.077 0 0 1-.008-.128c.126-.094.252-.192.372-.291a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.061 0a.074.074 0 0 1 .078.009c.12.099.246.198.373.292a.077.077 0 0 1-.006.127 12.3 12.3 0 0 1-1.873.891.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.84 19.84 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.331c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"></path></svg> </a> <a href="https://www.linkedin.com/company/krnl/" target="_blank" rel="noopener noreferrer" aria-label="KRNL on LinkedIn" class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border border-border/40 text-muted-foreground transition-colors hover:border-primary/50 hover:text-foreground"> <svg class="h-4 w-4" fill="currentColor" viewBox="0 0 24 24">
412<path d="M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14zM8.34 9.67H5.67V18h2.67V9.67zM7 6.33a1.55 1.55 0 1 0 0 3.1 1.55 1.55 0 0 0 0-3.1zM18.33 18v-4.57c0-2.45-1.31-3.59-3.06-3.59a2.64 2.64 0 0 0-2.39 1.31h-.04V9.67h-2.56V18h2.67v-4.12c0-1.09.2-2.14 1.55-2.14 1.33 0 1.35 1.24 1.35 2.21V18h2.59z"></path></svg> </a> </div> <div class="mt-4 flex flex-wrap items-center gap-3"> <a target="_blank" href="https://aitoptools.com/tool/1-more-shot/" title="One More Shot AI" rel="noopener noreferrer"> <img src="https://aitoptools.com/wp-content/uploads/2024/01/promote-embed.png" width="220" height="80" alt="One More Shot AI on AI Top Tools" class="max-w-[220px] w-full h-auto" loading="lazy"> </a> <a target="_blank" href="https://aiagentsdirectory.com/agent/one-more-shot-ai" title="Discover One More Shot AI on AI Agents Directory" rel="noopener noreferrer"> <img src="https://aiagentsdirectory.com/featured-badge.svg?v=2024" width="200" height="50" alt="One More Shot AI - Featured on AI Agents Directory" class="max-w-[200px] w-full h-auto" loading="lazy"> </a> </div> </div> <!-- Product --> <nav class="space-y-4" aria-label="Product"> <h3 class="text-sm font-semibold text-foreground font-heading">Product</h3> <ul class="space-y-2"> <li> <a href="/ai-music-video-generator/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> AI Music Video Generator </a> </li><li> <a href="/album-cover-generator/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> AI Album Cover Generator </a> </li><li> <a href="/inspo/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Inspiration Gallery </a> </li><li> <a href="/compare/runway/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Compare vs Runway </a> </li><li> <a href="/compare/kaiber/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Compare vs Kaiber </a> </li><li> <a href="/compare/neuralframes/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Compare vs Neural Frames </a> </li> </ul> </nav> <!-- Free Tools --> <nav class="space-y-4" aria-label="Free Tools"> <h3 class="text-sm font-semibold font-heading"> <a href="/tools/" class="inline-flex items-center gap-1 text-primary hover:underline">
413Free Tools
414<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> </a> </h3> <ul class="space-y-2"> <li> <a href="/tools/bpm-finder/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> BPM Finder </a> </li><li> <a href="/tools/song-key-finder/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Song Key Finder </a> </li><li> <a href="/tools/audio-trimmer/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Audio Trimmer </a> </li><li> <a href="/tools/mp3-to-mp4/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> MP3 to MP4 Converter </a> </li><li> <a href="/tools/video-to-mp3/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Video to MP3 </a> </li><li> <a href="/tools/lyrics-generator/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> AI Lyrics Generator </a> </li><li> <a href="/tools/band-name-generator/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Band Name Generator </a> </li><li> <a href="/tools/suno-prompt-generator/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Suno Prompt Generator </a> </li> </ul> </nav> <!-- Resources --> <nav class="space-y-4" aria-label="Resources"> <h3 class="text-sm font-semibold text-foreground font-heading">Resources</h3> <ul class="space-y-2"> <li> <a href="/blog/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Blog </a> </li><li> <a href="/best-ai-music-video-generator/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Best AI Music Video Generator </a> </li><li> <a href="/free-ai-music-video-generator/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Free AI Music Video Generator </a> </li><li> <a href="/suno-music-video/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Music Video for Suno </a> </li><li> <a href="/lyrics-to-video/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Lyrics to Video </a> </li><li> <a href="/press-kit/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> Press Kit </a> </li> </ul> </nav> <!-- For Business --> <nav class="space-y-4" aria-label="For Business"> <h3 class="text-sm font-semibold font-heading"> <a href="/for-business/" class="inline-flex items-center gap-1 text-primary hover:underline">
415For Business
416<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
416<path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> </a> </h3> <ul class="space-y-2"> <li> <a href="/for-business/labels/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> For Record Labels </a> </li><li> <a href="/for-business/distributors/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> For Distributors </a> </li><li> <a href="/for-business/agencies/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> For Marketing Agencies </a> </li> </ul> </nav> <!-- Get the App --> <div class="space-y-4"> <h3 class="text-sm font-semibold text-foreground font-heading">Get the App</h3> <div class="flex flex-col gap-3"> <a href="https://apps.apple.com/us/app/ai-music-video-generator-1ms/id6744976219" target="_blank" rel="noopener noreferrer" data-track="app_download_click" data-track-label="ios" data-track-category="conversion" class="inline-flex items-center justify-start w-full min-h-9 rounded-md px-3 py-2 text-sm leading-tight border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground transition-all duration-300 font-medium"> <svg class="w-4 h-4 mr-2 shrink-0" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12.01" y2="18"></line></svg>
417Download for iOS
418</a> <a href="https://play.google.com/store/apps/details?id=ai.krnl.onemoreshot&hl=en" target="_blank" rel="noopener noreferrer" data-track="app_download_click" data-track-label="android" data-track-category="conversion" class="inline-flex items-center justify-start w-full min-h-9 rounded-md px-3 py-2 text-sm leading-tight border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground transition-all duration-300 font-medium"> <svg class="w-4 h-4 mr-2 shrink-0" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12.01" y2="18"></line></svg>
419Download for Android
420</a> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" data-track="web_app_access" data-track-label="footer_try_online" data-track-category="conversion" class="inline-flex items-center justify-start w-full min-h-9 rounded-md px-3 py-2 text-sm leading-tight border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground transition-all duration-300 font-medium"> <svg class="w-4 h-4 mr-2 shrink-0" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
421Try Online
422</a> </div> </div> </div> <hr class="my-8 border-border/20"> <!-- Bottom --> <div class="flex flex-col md:flex-row justify-between items-center gap-4"> <div class="flex flex-col md:flex-row items-center gap-2 md:gap-4"> <p class="text-sm text-muted-foreground font-body">
423&copy; 2026 One More Shot AI. All rights reserved.
424</p> <a href="https://www.iubenda.com/privacy-policy/40200298" class="iubend
424a-white iubenda-noiframe iubenda-embed text-sm text-muted-foreground hover:text-foreground transition-colors font-body" title="Privacy Policy">
425Privacy Policy
426</a> <a href="/terms/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body">
427Terms &amp; Conditions
428</a> <a href="/affiliate/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body">
429Affiliates
430</a> </div> <div class="flex flex-wrap items-center justify-center gap-x-3 gap-y-1"> <span class="text-xs text-muted-foreground/40 font-body">Find us on</span> <a href="https://bio.site/ai_music_video_generator" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground/60 hover:text-foreground transition-colors font-body"> Bio Site </a><a href="https://beacons.ai/ai_music_video_generator" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground/60 hover:text-foreground transition-colors font-body"> Beacons </a><a href="https://solo.to/one_more_shot_ai" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground/60 hover:text-foreground transition-colors font-body"> Solo </a><a href="https://www.f6s.com/software/one-more-shot-ai#about" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground/60 hover:text-foreground transition-colors font-body"> F6S </a><a href="https://linke.to/ai_music_video_maker" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground/60 hover:text-foreground transition-colors font-body"> Linke </a><a href="https://claude.ai/public/artifacts/a3cb7876-f2f0-4d3f-b5a7-d727f2e42c1c" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground/60 hover:text-foreground transition-colors font-body"> Claude </a><a href="https://luma.com/sgpi2zmd" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground/60 hover:text-foreground transition-colors font-body"> Luma </a> </div> <a href="https://krnl.ai" target="_blank" rel="noopener noreferrer" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body">
431made with ❤️ by KRNL
432</a> </div> </div> </footer> <!-- Fixed bottom CTA — visible once the user scrolls past the hero --> <div id="fixed-cta" class="fixed bottom-0 left-0 right-0 z-[100] translate-y-full transition-transform duration-300 ease-out pointer-events-none"> <div class="mx-auto flex justify-center bg-background/90 backdrop-blur-md px-4 pb-5 pt-3 pointer-events-auto border-t border-border/20"> <a href="https://calendly.com/angelo-krnl/one-more-shot-ai-product-demo" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="business_fixed_demo" data-track-category="conversion" class="inline-flex items-center justify-center rounded-full bg-gradient-to-r from-pink-500 to-purple-600 px-8 py-3.5 text-base font-semibold text-white shadow-[0_4px_24px_rgba(219,39,119,.4)] transition-all duration-300 hover:scale-105 hover:from-pink-600 hover:to-purple-700 hover:shadow-[0_4px_32px_rgba(219,39,119,.55)] md:px-10 md:py-4 md:text-lg"> Book a demo <svg class="ml-2 h-5 w-5" fill="none" stroke="currentColor" stroke-width="3" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14m-7-7 7 7-7 7"></path></svg> </a> </div> </div> 
432<script>
433      document.addEventListener('visibilitychange', function() {
434        if (document.visibilityState === 'hidden') {
435          document.querySelectorAll('video').forEach(function(v) { v.pause(); });
436        }
437      });
438
439      (function() {
440        var cta = document.getElementById('fixed-cta');
441        var hero = document.querySelector('section');
442        var footer = document.querySelector('footer');
443        if (!cta || !hero) return;
444
445        var pastHero = false;
446        var footerVisible = false;
447
448        function update() {
449          if (pastHero && !footerVisible) {
450            cta.classList.remove('translate-y-full');
451          } else {
452            cta.classList.add('translate-y-full');
453          }
454        }
455
456        var heroObs = new IntersectionObserver(function(entries) {
457          pastHero = !entries[0].isIntersecting;
458          update();
459        }, { threshold: 0 });
460        heroObs.observe(hero);
461
462        if (footer) {
463          var footerObs = new IntersectionObserver(function(entries) {
464            footerVisible = entries[0].isIntersecting;
465            update();
466          }, { threshold: 0 });
467          footerObs.observe(footer);
468        }
469      })();
470    </script>
470 <!-- PostHog (unconditional, not consent-gated) --> 
470<script>
471      !function(t,e){var o,n,p,r;e.__SV||(window.posthog && window.posthog.__loaded)||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="ki Ci init qi Hi pr ji zi Di capture calculateEventProperties Qi register register_once register_for_session unregister unregister_for_session Ki getFeatureFlag getFeatureFlagPayload getFeatureFlagResult getAllFeatureFlags isFeatureEnabled reloadFeatureFlags updateFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey displaySurvey cancelPendingSurvey canRenderSurvey canRenderSurveyAsync Xi identify setPersonProperties unsetPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset setIdentity clearIdentity get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException addExceptionStep captureLog startExceptionAutocapture stopExceptionAutocapture loadToolbar get_property getSessionProperty Ji Gi createPersonProfile setInternalOrTestUser Yi Ai rn opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing get_explicit_consent_status is_capturing clear_opt_in_out_capturing Vi debug mr it getPageViewId captureTraceFeedback captureTraceMetric Oi".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
472      posthog.init('phc_C3hfDs7KS6q8FPRrQHM1Ph4azRohyQ8U28yh1zBlxrP',{api_host:'https://n.krnl.ai',ui_host:'https://eu.posthog.com',defaults:'2026-05-30',person_profiles:'identified_only'});
473    </script>
473 <!-- Append PostHog distinct_id + Rewardful referral + Google click IDs to all app links at click time --> 
473<script>
474      document.addEventListener('click', function(e) {
475        var link = e.target.closest ? e.target.closest('a') : null;
476        if (!link) return;
477        var href = link.getAttribute('href') || '';
478        if (href.indexOf('app.onemoreshot.ai') === -1) return;
479        try {
480          var url = new URL(link.href);
481          var changed = false;
482          var id = window.posthog && window.posthog.get_distinct_id ? window.posthog.get_distinct_id() : null;
483          if (id) {
484            url.searchParams.set('ph_distinct_id', id);
485            changed = true;
486          }
487          // Forward Google click IDs under the aliased names the app already
488          // reads (same convention as InAppBrowserBreakout's PARAM_MAP, see
489          // commit 70b73ff). URL first, attribution cookie as fallback so the
490          // ID survives internal navigation. Kept as three distinct aliases:
491          // gclid/wbraid/gbraid are separate fields in Google's conversion
492          // APIs and must not be collapsed into one.
493          var GOOGLE_IDS = { gclid: '_gc', wbraid: '_wb', gbraid: '_gb' };
494          var page = new URL(window.location.href);
495          var cookies = (typeof window.getAttributionData === 'function') ? (window.getAttributionData() || {}) : {};
496          for (var key in GOOGLE_IDS) {
497            var v = page.searchParams.get(key) || cookies[key] || null;
498            if (v) {
499              url.searchParams.set(GOOGLE_IDS[key], v);
500              changed = true;
501            }
502          }
503          // Forward AppLovin (Axon) click ids. Original names too (not just
504          // aliases): the Axon pixel on the app only auto-captures `aleid`/
505          // `alart` under their original names, which gives the app-side
506          // purchase event deterministic click attribution instead of relying
507          // on the _axwrt cookie surviving the cross-subdomain hop.
508          var APPLOVIN_IDS = { aleid: '_al', alart: '_ar' };
509          for (var akey in APPLOVIN_IDS) {
510            var av = page.searchParams.get(akey) || cookies[akey] || null;
511            if (av) {
512              url.searchParams.set(akey, av);
513              url.searchParams.set(APPLOVIN_IDS[akey], av);
514              changed = true;
515            }
516          }
517          // Forward UTM params under the aliased names the app reads (utm_*
518          // is on tracker-param denylists in privacy browsers). URL first,
519          // cookie as fallback so campaign attribution survives internal
520          // navigation before the CTA click.
521          var UTM_MAP = { utm_source: '_os', utm_medium: '_om', utm_campaign: '_oc', utm_content: '_on', utm_term: '_ot' };
522          for (var ukey in UTM_MAP) {
523            var uv = page.searchParams.get(ukey) || cookies[ukey] || null;
524            if (uv) {
525              url.searchParams.set(UTM_MAP[ukey], uv);
526              changed = true;
527            }
528          }
529          // Forward the ChatGPT Ads click id under its original name — the
530          // oaiq SDK on the app auto-captures `oppref` from the URL it
531          // lands on. URL first, cookie as fallback.
532          var oppref = page.searchParams.get('oppref') || cookies.oppref || null;
533          if (oppref) {
534            url.searchParams.set('oppref', oppref);
535            changed = true;
536          }
537          // Forward the promo code so the app can apply it on open.
538          // URL first, cookie as fallback (survives internal navigation).
539          var promo = page.searchParams.get('promo') || cookies.promo || null;
540          if (promo) {
541            url.searchParams.set('promo', promo);
542            changed = true;
543          }
544          // Forward the (pre-seeded) GA client id so the app can store it on
545          // the user document even when GA never initialized on the landing
546          // page (consent not given yet, ad blocker, fast CTA click).
547          if (cookies.gaClientId) {
548            url.searchParams.set('ga_client_id', cookies.gaClientId);
549            changed = true;
550          }
551          // Forward the Rewardful referral ID so the app can send it to Stripe
552          // as client_reference_id. Only send it when present (Stripe rejects blanks).
553          var referral = window.Rewardful && window.Rewardful.referral ? window.Rewardful.referral : null;
554          if (referral) {
555            url.searchParams.set('referral', referral);
556            changed = true;
557          }
558          if (changed) link.href = url.toString();
559        } catch(ex) {}
560      }, true);
561    </script>
561 <!-- iubenda widget (consent banner + analytics init via dashboard callback + privacy policy embed) --> 
561<script type="text/javascript" src="https://embeds.iubenda.com/widgets/0d8e2ea5-8abb-475c-9821-86c25eb541cf.js" async></script>
561 <!-- Expose the AppLovin (Axon) public event key to the inline bridge below --> 
561<script>(function(){const axonEventKey = "4a5d79e9-1078-4d19-9f47-62bf9355e45e";
562
563      window.__AXON_EVENT_KEY = axonEventKey || '';
564    })();</script>
564 <!-- Activate trackEvent bridge (called from iubenda dashboard callback) --> 
564<script>
565      (function(){
566        var GA_MAP={demo_video_play:'ViewContent',example_video_play:'ViewContent'};
567        // Internal event -> AppLovin (Axon) event name. generate_lead requires
568        // {currency,value}; a nominal lead value keeps it eligible for
569        // optimization (AppLovin discounts/excludes value 0).
570        var AXON_MAP={cta_click:'generate_lead'};
571        var AXON_LEAD_VALUE=1;
572
573        // Load the AppLovin (Axon) pixel once, after consent (this runs from the
574        // iubenda callback). No-op when the key isn't configured.
575        function loadAxon(){
576          var key=window.__AXON_EVENT_KEY;
577          if(!key||window.axon)return;
578          var t=['https://s.axon.ai/pixel.js','https://res4.applovin.com/p/l/loader.iife.js'];
579          var a=window.axon=function(){a.performOperation?a.performOperation.apply(a,arguments):a.operationQueue.push(arguments)};
580          a.operationQueue=[];a.ts=Date.now();a.eventKey=key;
581          var n=document.getElementsByTagName('script')[0];
582          for(var o=0;o<t.length;o++){var i=document.createElement('script');i.async=!0;
582i.src=t[o];n.parentNode.insertBefore(i,n)}
583          window.axon('init');
584          try{window.axon('track','page_view')}catch(x){}
585        }
586
587        // Load the ChatGPT Ads (OpenAI) pixel once, after consent (this runs
588        // from the iubenda callback).
589        function loadOaiq(){
590          if(window.oaiq)return;
591          var q=function(){q.q.push(arguments)};q.q=[];window.oaiq=q;
592          var j=document.createElement('script');j.async=1;j.src='https://bzrcdn.openai.com/sdk/oaiq.min.js';
593          var f=document.getElementsByTagName('script')[0];f.parentNode.insertBefore(j,f);
594          window.oaiq('init',{pixelId:'5rS3DE9iesebmwDDNWdvUf'});
595          window.oaiq('measure','page_viewed',{type:'contents'});
596        }
597
598        // Beacon transport keeps the event in flight when the click is about to
599        // navigate the page away (InAppBrowserBreakout calls location.replace
600        // synchronously after firing trackEvent; without sendBeacon, the gtag
601        // XHR and queued PostHog batch are cancelled before they leave).
602        window._activateTracking=function(){
603          loadAxon();
604          loadOaiq();
605          window.trackEvent=function(name,params){
606            params=params||{};
607            try{
608              if(window.gtag){
609                var gp={transport_type:'beacon'};
610                for(var k in params)if(Object.prototype.hasOwnProperty.call(params,k))gp[k]=params[k];
611                window.gtag('event',name,gp);
612              }
613            }catch(x){}
614            try{var fb=GA_MAP[name];if(window.fbq&&fb)window.fbq('track',fb,params)}catch(x){}
615            try{if(window.posthog&&window.posthog.capture)window.posthog.capture(name,params,{transport:'sendBeacon',send_instantly:true})}catch(x){}
616            try{
617              if(window.axon){
618                var ax=AXON_MAP[name];
619                if(ax==='generate_lead'){window.axon('track','generate_lead',{currency:'USD',value:AXON_LEAD_VALUE})}
620                else if(ax){window.axon('track',ax)}
621              }
622            }catch(x){}
623          };
624          var q=window._tq;
625          if(q){for(var i=0;i<q.length;i++)window.trackEvent(q[i][0],q[i][1])}
626          window._tq=null;
627        };
628      })();
629    </script>
629 </body> </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.