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 & 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 & 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 & 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 '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 & 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 & 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 & 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 & 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 & 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 & 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© 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 & 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.