PageSourceSearch

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

html onemoreshot.ai collected 2026-10-01 11:34:56 UTC 107,580 bytes, 628 lines download raw bytes

1<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="color-scheme" content="dark"><meta name="description" content="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 &#39;26</span> <span class="opacity-90 truncate" data-astro-cid-vw2lj5a7>Seedance 2.5 now available for improved lip-sync</span> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="top_banner" data-track-category="conversion" class="inline-flex shrink-0 items-center gap-1 rounded-full bg-white/20 px-2.5 py-0.5 text-[11px] font-semibold backdrop-blur-sm transition-colors hover:bg-white/30 md:text-xs" data-astro-cid-vw2lj5a7>
360Try now
361<svg class="h-3 w-3" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" data-astro-cid-vw2lj5a7><path stroke-linecap="round" stroke-linejoin="round" d="m9 5 7 7-7 7" data-astro-cid-vw2lj5a7></path></svg> </a> <button id="top-banner-close" class="absolute right-2 top-1/2 -translate-y-1/2 p-1 text-white/60 transition-colors hover:text-white" aria-label="Close banner" data-astro-cid-vw2lj5a7> <svg class="h-3.5 w-3.5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" data-astro-cid-vw2lj5a7><path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" data-astro-cid-vw2lj5a7></path></svg> </button> </div>  
361<script type="module">const e=document.getElementById("top-banner"),o=document.getElementById("navbar"),s=document.getElementById("top-banner-close");function t(){if(!o||!e)return;const n=e.style.display!=="none"?e.offsetHeight:0;o.style.top=n+"px",document.documentElement.style.scrollPaddingTop=n+88+"px",document.body.style.paddingTop=n+"px"}t();window.addEventListener("resize",t);s&&s.addEventListener("click",()=>{e.style.display="none",t()});</script>
361 <nav id="navbar" class="fixed top-0 left-0 right-0 z-50 transition-all duration-300 bg-transparent"> <div class="max-w-7xl mx-auto px-6 lg:px-8 relative"> <div class="relative flex items-center justify-between h-20"> <!-- Logo --> <a href="/" class="relative z-10 flex items-center hover:opacity-80 transition-opacity"> <img src="/lovable-uploads/logo-120.webp" alt="One More Shot AI — AI music video generator" class="h-10 w-10" width="40" height="40" loading="lazy"> </a> <!-- Desktop Navigation (absolutely centered) --> <div class="hidden lg:flex items-center space-x-8 absolute inset-x-0 justify-center pointer-events-none"> <a href="/#features" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Features </a><a href="/#examples" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Showcase </a><a href="/#pricing" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Pricing </a><a href="/#testimonials" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Testimonials </a><a href="/for-business/" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> For business </a><a href="/for-business/labels/" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> For labels </a><a href="/developers/api/" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> API </a><a href="/blog/" class="pointer-events-auto text-muted-foreground hover:text-foreground transition-colors font-body font-medium hover:scale-105 transition-transform"> Blog </a> </div> <!-- Auth buttons (right) --> <div class="hidden lg:flex relative z-10 items-center gap-2"> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors font-body font-medium">
362Log in
363</a> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="header_sign_in" data-track-category="conversion" class="inline-flex items-center justify-center rounded-lg bg-white px-4 py-2 text-sm font-semibold text-black transition-colors hover:bg-white/85 font-heading">
364Sign up
365</a> </div> <!-- Mobile menu button --> <button type="button" id="mobile-menu-btn" class="lg:hidden text-foreground hover:bg-card inline-flex items-center justify-center rounded-lg p-2 transition" aria-label="Toggle menu" aria-expanded="false"> <svg id="menu-icon-open" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg> <svg id="menu-icon-close" class="hidden h-6 w-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M18 6 6 18M6 6l12 12"></path></svg> </button> </div> <!-- Mobile Navigation --> <div id="mobile-menu" class="hidden lg:hidden absolute top-[5.5rem] left-4 right-4 bg-background border border-border/50 rounded-2xl shadow-2xl z-[100]"> <div class="py-4 px-6 space-y-1"> <a href="/#features" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> Features </a><a href="/#examples" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 roun
365ded-lg hover:bg-accent"> Showcase </a><a href="/#pricing" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> Pricing </a><a href="/#testimonials" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> Testimonials </a><a href="/for-business/" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> For business </a><a href="/for-business/labels/" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> For labels </a><a href="/developers/api/" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> API </a><a href="/blog/" class="mobile-nav-link block w-full text-left text-foreground hover:text-primary transition-colors font-body font-medium py-3 px-4 rounded-lg hover:bg-accent"> Blog </a> <div class="pt-3"> <a href="https://app.onemoreshot.ai" target="_blank" rel="noopener noreferrer" data-track="cta_click" data-track-label="mobile_sign_in" data-track-category="conversion" class="block w-full text-center rounded-full border border-primary/50 bg-transparent text-primary hover:bg-primary hover:text-primary-foreground py-3 px-8 font-heading font-medium transition-all duration-300">
366Sign In
367</a> </div> </div> </div> </div> </nav> 
367<script type="module">const o=document.getElementById("navbar"),a=document.getElementById("mobile-menu-btn"),h=document.getElementById("mobile-menu"),m=document.getElementById("menu-icon-open"),g=document.getElementById("menu-icon-close"),f=80;function i(e,n){const t=document.getElementById(e.replace(/^#/,""));if(!t)return;const r=document.querySelectorAll(".cv-auto");r.forEach(c=>{c.style.contentVisibility="visible"});const l=t.getBoundingClientRect().top+window.scrollY-f;window.scrollTo({top:l,behavior:n?"smooth":"instant"});const b=()=>r.forEach(c=>{c.style.contentVisibility=""});let d=-1;const u=()=>{window.scrollY===d?b():(d=window.scrollY,requestAnimationFrame(u))};requestAnimationFrame(u)}o?.addEventListener("click",e=>{const n=e.target.closest('a[href*="/#"]');if(!n||n.target==="_blank")return;const t=new URL(n.href,location.origin).hash;if(!t||!document.getElementById(t.replace(/^#/,"")))return;e.preventDefault(),history.pushState(null,"",`/${location.search}${t}`);const l=!n.classList.contains("mobile-nav-link");i(t,l)});window.addEventListener("popstate",()=>{location.hash&&i(location.hash,!0)});location.hash&&(i(location.hash,!1),window.addEventListener("load",()=>i(location.hash,!1),{once:!0}));let s=!1;window.addEventListener("scroll",()=>{s||(s=!0,requestAnimationFrame(()=>{if(!o){s=!1;return}window.scrollY>50?(o.classList.remove("bg-transparent"),o.classList.add("bg-background","border-b","border-border/20","shadow-lg")):(o.classList.add("bg-transparent"),o.classList.remove("bg-background","border-b","border-border/20","shadow-lg")),s=!1}))},{passive:!0});a?.addEventListener("click",()=>{const e=a.getAttribute("aria-expanded")==="true";a.setAttribute("aria-expanded",String(!e)),h?.classList.toggle("hidden"),m?.classList.toggle("hidden"),g?.classList.toggle("hidden")});document.querySelectorAll(".mobile-nav-link").forEach(e=>{e.addEventListener("click",()=>{h?.classList.add("hidden"),a?.setAttribute("aria-expanded","false"),m?.classList.remove("hidden"),g?.classList.add("hidden")})});</script>
367 <main id="main-content">  <section class="relative overflow-hidden bg-background px-5 pb-12 md:px-6 md:pb-16 pt-28 md:pt-32"> <div class="pointer-events-none absolute inset-0 overflow-hidden"> <div class="absolute -top-40 left-1/2 h-[600px] w-[600px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"></div> </div> <div class="relative z-10 mx-auto flex max-w-3xl flex-col items-center text-center"> <span class="mb-6 inline-flex items-center gap-2 rounded-full border border-white/[0.08] bg-white/[0.03] px-4 py-1.5 text-xs font-medium uppercase tracking-widest text-white/55"> For 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 &amp; 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&amp;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&copy; 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 &amp; 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.