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="Give your entire roster release-ready AI music videos. Cut production budgets, hit every release date, and keep visuals on-brand. Book a demo with One More Shot AI."><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/labels/"><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 Record Labels â Roster-Wide Visuals at Scale | One More Shot AI"><meta property="og:description" content="Give your entire roster release-ready AI music videos. Cut production budgets, hit every release date, and keep visuals on-brand. Book a demo with One More Shot AI."><meta property="og:url" content="https://www.onemoreshot.ai/for-business/labels/"><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 Record Labels â Roster-Wide Visuals at Scale | One More Shot AI"><meta name="twitter:description" content="Give your entire roster release-ready AI music videos. Cut production budgets, hit every release date, and keep visuals on-brand. Book a demo with One More Shot AI."><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 Record Labels â Roster-Wide Visuals at Scale | 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":"Can we manage multiple artists from one account?","acceptedAnswer":{"@type":"Answer","text":"Yes. Team workspaces let your label manage many artists and releases, each with its own saved visual presets, from a single account."}},{"@type":"Question","name":"Are the videos cleared for commercial release?","acceptedAnswer":{"@type":"Answer","text":"Yes. Output is royalty-free on the visual side and cleared for commercial distribution on YouTube, streaming, and social platforms."}},{"@type":"Question","name":"Do you offer volume pricing for labels?","acceptedAnswer":{"@type":"Answer","text":"We build label plans around your roster size and release cadence. Book a demo and we will tailor pricing to your output."}}]}</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":"Record Labels","item":"https://www.onemoreshot.ai/for-business/labels/"}]}</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 record labels </span> <h1 class="font-heading text-4xl font-bold leading-tight tracking-tight text-white sm:text-5xl lg:text-6xl"> Release-ready visuals for your entire roster </h1> <p class="mt-6 max-w-xl text-base leading-relaxed text-white/45 md:text-lg"> Stop choosing which releases get a music video. Give every artist studio-quality, beat-synced visuals in minutes â at a fraction of traditional 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_labels_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="/for-business/#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 class="bg-background px-5 pt-4 pb-12 md:px-6 md:pt-6 md:pb-16"> <div class="mx-auto max-w-3xl text-center"> <p class="text-lg leading-relaxed text-white/65 md:text-xl md:leading-relaxed">Labels live and die by release velocity and visual quality. Traditional video production forces a hard choice: spend big on a few priority artists, or leave most of the roster with static cover art. One More Shot AI removes that trade-off. Upload a master, apply your label or artist preset, and generate a finished video the same day â so every release, from your headliner to your newest signing, ships with visuals that compete with major-label output.</p> <p class="mx-auto mt-5 max-w-2xl text-sm leading-relaxed text-white/40"> 372Powered by the <a href="/" class="text-primary transition-colors hover:text-primary/80">AI music video generator</a> trusted by 50,000+ independent artists. 373</p> </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">
373<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"> 374Examples That Inspire 375</h2> <p class="text-base md:text-lg text-muted-foreground max-w-2xl mx-auto"> 376Discover what's possible with our AI-powered video generation. From music videos to visualizers, create content that captivates. 377</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 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 data-video-title="knd - hell" data-video-poster="https://i.ytimg.com/vi/c_h9bClxsZw/maxresdefault.jpg" data-youtube-id="c_h9bClxsZw"> 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%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 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%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> 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%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 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%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> 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%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 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%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> 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%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 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%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> 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%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 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%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> 388Watch Full Video 389</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 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%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> 390Watch Full Video 391</button> </div> </div> </div> </div> </section>
391<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>
391 <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"> What record labels get </h2> </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">Major-label-grade visuals</h3> <p class="text-[15px] leading-relaxed text-white/50">Cinematic, beat-synced output with realistic motion and accurate lip-sync â visuals that stand confidently next to your biggest releases.</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">Whole-roster coverage</h3> <p class="text-[15px] leading-relaxed text-white/50">Batch-generate videos for every artist and every single, not just the priority releases that fit the budget.</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">Predictable production costs</h3> <p class="text-[15px] leading-relaxed text-white/50">Trade unpredictable per-video budgets for a flat plan. Free up A&R and marketing spend for promotion.</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">On-brand at scale</h3> <p class="text-[15px] leading-relaxed text-white/50">Lock in per-artist visual identities with saved styles so every release looks deliberate and cohesive.</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">Never miss a release date</h3> <p class="text-[15px] leading-relaxed text-white/50">Same-day turnaround means visuals are never the bottleneck between master delivery and launch.</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> 392FAQ 393</div> <h2 class="text-3xl md:text-5xl lg:text-7xl font-heading font-black"> 394Frequently 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"> 395Everything you need to know about creating AI music videos. 396</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"> Can we manage multiple artists from one account? </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 your label manage many artists and releases, each with its own saved visual presets, from a single account. </p> </div> </details>
396<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"> Are the videos cleared for commercial release? </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. Output is royalty-free on the visual side and cleared for commercial distribution on YouTube, streaming, and social platforms. </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 offer volume pricing for labels? </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 build label plans around your roster size and release cadence. Book a demo and we will tailor pricing to your output. </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-5xl"> <div class="mb-10 text-center md:mb-12"> <h2 class="font-heading text-2xl font-bold tracking-tight text-white md:text-3xl"> 397More for music businesses 398</h2> <p class="mx-auto mt-3 max-w-xl text-base leading-relaxed text-white/45"> 399See how other teams use One More Shot AI, or browse the 400<a href="/for-business/" class="text-primary transition-colors hover:text-primary/80">full business overview</a>. 401</p> </div> <div class="grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3"> <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"> <h3 class="mb-2 font-heading text-lg font-bold text-white">Music Distributors</h3> <p class="text-[15px] leading-relaxed text-white/50">Turn the catalog you distribute into a new value-add. Let your artists create studio-quality, beat-synced videos â under your brand, inside your flow.</p> <span class="mt-4 inline-flex items-center gap-1.5 text-sm font-semibold text-primary"> 402Learn more 403<svg class="h-4 w-4 transition-transform group-hover:translate-x-0.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> </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"> <h3 class="mb-2 font-heading text-lg font-bold text-white">Music Marketing Agencies</h3> <p class="text-[15px] leading-relaxed text-white/50">Spin up studio-quality Spotify Canvas, vertical social cuts, lyric videos, and ad creative for every client â without expanding your production team.</p> <span class="mt-4 inline-flex items-center gap-1.5 text-sm font-semibold text-primary"> 404Learn more 405<svg class="h-4 w-4 transition-transform group-hover:translate-x-0.5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
405<path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> </span> </a> </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"> 406Book a demo 407<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> </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"> 408One More Shot AI 409</span> </div> <p class="text-sm text-muted-foreground font-body"> 410Create stunning AI-powered music videos in minutes. Transform your tracks into captivating visual experiences. 411</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
4111.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"><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"> 412Free Tools 413<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"> 414For Business 415<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
415<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> 416Download for iOS 417</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> 418Download for Android 419</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> 420Try Online 421</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"> 422© 2026 One More Shot AI. All rights reserved. 423</p> <a href="https://www.iubenda.com/privacy-policy/40200298" class="iubend
423a-white iubenda-noiframe iubenda-embed text-sm text-muted-foreground hover:text-foreground transition-colors font-body" title="Privacy Policy"> 424Privacy Policy 425</a> <a href="/terms/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> 426Terms & Conditions 427</a> <a href="/affiliate/" class="text-sm text-muted-foreground hover:text-foreground transition-colors font-body"> 428Affiliates 429</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"> 430made with â¤ï¸ by KRNL 431</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_labels_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>
431<script> 432 document.addEventListener('visibilitychange', function() { 433 if (document.visibilityState === 'hidden') { 434 document.querySelectorAll('video').forEach(function(v) { v.pause(); }); 435 } 436 }); 437 438 (function() { 439 var cta = document.getElementById('fixed-cta'); 440 var hero = document.querySelector('section'); 441 var footer = document.querySelector('footer'); 442 if (!cta || !hero) return; 443 444 var pastHero = false; 445 var footerVisible = false; 446 447 function update() { 448 if (pastHero && !footerVisible) { 449 cta.classList.remove('translate-y-full'); 450 } else { 451 cta.classList.add('translate-y-full'); 452 } 453 } 454 455 var heroObs = new IntersectionObserver(function(entries) { 456 pastHero = !entries[0].isIntersecting; 457 update(); 458 }, { threshold: 0 }); 459 heroObs.observe(hero); 460 461 if (footer) { 462 var footerObs = new IntersectionObserver(function(entries) { 463 footerVisible = entries[0].isIntersecting; 464 update(); 465 }, { threshold: 0 }); 466 footerObs.observe(footer); 467 } 468 })(); 469 </script>
469 <!-- PostHog (unconditional, not consent-gated) -->
469<script> 470 !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||[]); 471 posthog.init('phc_C3hfDs7KS6q8FPRrQHM1Ph4azRohyQ8U28yh1zBlxrP',{api_host:'https://n.krnl.ai',ui_host:'https://eu.posthog.com',defaults:'2026-05-30',person_profiles:'identified_only'}); 472 </script>
472 <!-- Append PostHog distinct_id + Rewardful referral + Google click IDs to all app links at click time -->
472<script> 473 document.addEventListener('click', function(e) { 474 var link = e.target.closest ? e.target.closest('a') : null; 475 if (!link) return; 476 var href = link.getAttribute('href') || ''; 477 if (href.indexOf('app.onemoreshot.ai') === -1) return; 478 try { 479 var url = new URL(link.href); 480 var changed = false; 481 var id = window.posthog && window.posthog.get_distinct_id ? window.posthog.get_distinct_id() : null; 482 if (id) { 483 url.searchParams.set('ph_distinct_id', id); 484 changed = true; 485 } 486 // Forward Google click IDs under the aliased names the app already 487 // reads (same convention as InAppBrowserBreakout's PARAM_MAP, see 488 // commit 70b73ff). URL first, attribution cookie as fallback so the 489 // ID survives internal navigation. Kept as three distinct aliases: 490 // gclid/wbraid/gbraid are separate fields in Google's conversion 491 // APIs and must not be collapsed into one. 492 var GOOGLE_IDS = { gclid: '_gc', wbraid: '_wb', gbraid: '_gb' }; 493 var page = new URL(window.location.href); 494 var cookies = (typeof window.getAttributionData === 'function') ? (window.getAttributionData() || {}) : {}; 495 for (var key in GOOGLE_IDS) { 496 var v = page.searchParams.get(key) || cookies[key] || null; 497 if (v) { 498 url.searchParams.set(GOOGLE_IDS[key], v); 499 changed = true; 500 } 501 } 502 // Forward AppLovin (Axon) click ids. Original names too (not just 503 // aliases): the Axon pixel on the app only auto-captures `aleid`/ 504 // `alart` under their original names, which gives the app-side 505 // purchase event deterministic click attribution instead of relying 506 // on the _axwrt cookie surviving the cross-subdomain hop. 507 var APPLOVIN_IDS = { aleid: '_al', alart: '_ar' }; 508 for (var akey in APPLOVIN_IDS) { 509 var av = page.searchParams.get(akey) || cookies[akey] || null; 510 if (av) { 511 url.searchParams.set(akey, av); 512 url.searchParams.set(APPLOVIN_IDS[akey], av); 513 changed = true; 514 } 515 } 516 // Forward UTM params under the aliased names the app reads (utm_* 517 // is on tracker-param denylists in privacy browsers). URL first, 518 // cookie as fallback so campaign attribution survives internal 519 // navigation before the CTA click. 520 var UTM_MAP = { utm_source: '_os', utm_medium: '_om', utm_campaign: '_oc', utm_content: '_on', utm_term: '_ot' }; 521 for (var ukey in UTM_MAP) { 522 var uv = page.searchParams.get(ukey) || cookies[ukey] || null; 523 if (uv) { 524 url.searchParams.set(UTM_MAP[ukey], uv); 525 changed = true; 526 } 527 } 528 // Forward the ChatGPT Ads click id under its original name â the 529 // oaiq SDK on the app auto-captures `oppref` from the URL it 530 // lands on. URL first, cookie as fallback. 531 var oppref = page.searchParams.get('oppref') || cookies.oppref || null; 532 if (oppref) { 533 url.searchParams.set('oppref', oppref); 534 changed = true; 535 } 536 // Forward the promo code so the app can apply it on open. 537 // URL first, cookie as fallback (survives internal navigation). 538 var promo = page.searchParams.get('promo') || cookies.promo || null; 539 if (promo) { 540 url.searchParams.set('promo', promo); 541 changed = true; 542 } 543 // Forward the (pre-seeded) GA client id so the app can store it on 544 // the user document even when GA never initialized on the landing 545 // page (consent not given yet, ad blocker, fast CTA click). 546 if (cookies.gaClientId) { 547 url.searchParams.set('ga_client_id', cookies.gaClientId); 548 changed = true; 549 } 550 // Forward the Rewardful referral ID so the app can send it to Stripe 551 // as client_reference_id. Only send it when present (Stripe rejects blanks). 552 var referral = window.Rewardful && window.Rewardful.referral ? window.Rewardful.referral : null; 553 if (referral) { 554 url.searchParams.set('referral', referral); 555 changed = true; 556 } 557 if (changed) link.href = url.toString(); 558 } catch(ex) {} 559 }, true); 560 </script>
560 <!-- iubenda widget (consent banner + analytics init via dashboard callback + privacy policy embed) -->
560<script type="text/javascript" src="https://embeds.iubenda.com/widgets/0d8e2ea5-8abb-475c-9821-86c25eb541cf.js" async></script>
560 <!-- Expose the AppLovin (Axon) public event key to the inline bridge below -->
560<script>(function(){const axonEventKey = "4a5d79e9-1078-4d19-9f47-62bf9355e45e"; 561 562 window.__AXON_EVENT_KEY = axonEventKey || ''; 563 })();</script>
563 <!-- Activate trackEvent bridge (called from iubenda dashboard callback) -->
563<script> 564 (function(){ 565 var GA_MAP={demo_video_play:'ViewContent',example_video_play:'ViewContent'}; 566 // Internal event -> AppLovin (Axon) event name. generate_lead requires 567 // {currency,value}; a nominal lead value keeps it eligible for 568 // optimization (AppLovin discounts/excludes value 0). 569 var AXON_MAP={cta_click:'generate_lead'}; 570 var AXON_LEAD_VALUE=1; 571 572 // Load the AppLovin (Axon) pixel once, after consent (this runs from the 573 // iubenda callback). No-op when the key isn't configured. 574 function loadAxon(){ 575 var key=window.__AXON_EVENT_KEY; 576 if(!key||window.axon)return; 577 var t=['https://s.axon.ai/pixel.js','https://res4.applovin.com/p/l/loader.iife.js']; 578 var a=window.axon=function(){a.performOperation?a.performOperation.apply(a,arguments):a.operationQueue.push(arguments)}; 579 a.operationQueue=[];a.ts=Date.now();a.eventKey=key; 580 var n=document.getElementsByTagName('script')[0]; 581 for(var o=0;o<t.length;o++){var i=document.createElement('script');i.async=!0;
581i.src=t[o];n.parentNode.insertBefore(i,n)} 582 window.axon('init'); 583 try{window.axon('track','page_view')}catch(x){} 584 } 585 586 // Load the ChatGPT Ads (OpenAI) pixel once, after consent (this runs 587 // from the iubenda callback). 588 function loadOaiq(){ 589 if(window.oaiq)return; 590 var q=function(){q.q.push(arguments)};q.q=[];window.oaiq=q; 591 var j=document.createElement('script');j.async=1;j.src='https://bzrcdn.openai.com/sdk/oaiq.min.js'; 592 var f=document.getElementsByTagName('script')[0];f.parentNode.insertBefore(j,f); 593 window.oaiq('init',{pixelId:'5rS3DE9iesebmwDDNWdvUf'}); 594 window.oaiq('measure','page_viewed',{type:'contents'}); 595 } 596 597 // Beacon transport keeps the event in flight when the click is about to 598 // navigate the page away (InAppBrowserBreakout calls location.replace 599 // synchronously after firing trackEvent; without sendBeacon, the gtag 600 // XHR and queued PostHog batch are cancelled before they leave). 601 window._activateTracking=function(){ 602 loadAxon(); 603 loadOaiq(); 604 window.trackEvent=function(name,params){ 605 params=params||{}; 606 try{ 607 if(window.gtag){ 608 var gp={transport_type:'beacon'}; 609 for(var k in params)if(Object.prototype.hasOwnProperty.call(params,k))gp[k]=params[k]; 610 window.gtag('event',name,gp); 611 } 612 }catch(x){} 613 try{var fb=GA_MAP[name];if(window.fbq&&fb)window.fbq('track',fb,params)}catch(x){} 614 try{if(window.posthog&&window.posthog.capture)window.posthog.capture(name,params,{transport:'sendBeacon',send_instantly:true})}catch(x){} 615 try{ 616 if(window.axon){ 617 var ax=AXON_MAP[name]; 618 if(ax==='generate_lead'){window.axon('track','generate_lead',{currency:'USD',value:AXON_LEAD_VALUE})} 619 else if(ax){window.axon('track',ax)} 620 } 621 }catch(x){} 622 }; 623 var q=window._tq; 624 if(q){for(var i=0;i<q.length;i++)window.trackEvent(q[i][0],q[i][1])} 625 window._tq=null; 626 }; 627 })(); 628 </script>
628 </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.