<!DOCTYPE html><html lang="en" data-theme="spotube" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/spotube-logo.png"/><link rel="preload" as="image" href="/images/lockup_built-w-flutter.png"/><link rel="preload" as="image" href="/images/lockup_built-w-flutter_wht.png"/><link rel="preload" as="image" href="https://hackerbadge.vercel.app/api?id=39066136"/><link rel="preload" as="image" href="https://flathub.org/api/badge?locale=en"/><link rel="preload" as="image" href="/images/mobile-screenshots/android-1.webp"/><meta name="monetag" content="986ed8b54683e3bb9040e770b47c8a2c"/><title>Spotube - Open Source Music Streaming</title><meta name="description" content="Open source, extensible, and native. No tracking, no premium, just your music."/><link rel="modulepreload" href="/assets/manifest-dc7bb07a.js"/><link rel="modulepreload" href="/assets/entry.client-CUl-0cyP.js"/><link rel="modulepreload" href="/assets/jsx-runtime-CYwcB9U0.js"/><link rel="modulepreload" href="/assets/react-dom-Dau_ZBVR.js"/><link rel="modulepreload" href="/assets/root-xGDUQj7u.js"/><link rel="modulepreload" href="/assets/cookie-consent-BCWi3LNG.js"/><link rel="modulepreload" href="/assets/si-DmSkEPHI.js"/><link rel="modulepreload" href="/assets/fa6-BQ9li2sV.js"/><link rel="modulepreload" href="/assets/lu-U9gci2m8.js"/><link rel="modulepreload" href="/assets/dist-CjSClf9q.js"/><link rel="modulepreload" href="/assets/home-BulPKHHl.js"/><link rel="modulepreload" href="/assets/DisplayAd-CEbNhbpI.js"/><link rel="modulepreload" href="/assets/FloatingAd-D2weWbL9.js"/><link rel="stylesheet" href="/assets/root-DNHY299q.css"/><script>
					(function () {
						try {
						var theme = localStorage.getItem("theme");
						if (!theme) {
						theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
						}
						document.documentElement.classList.toggle("dark", theme === "dark");
						} catch (_) {}
					})();
					</script></head><body><header class="sticky top-0 z-50 w-full border-b border-surface-200-800 bg-surface-50-900/80 backdrop-blur"><div class="max-w-7xl mx-auto px-4 h-16 flex items-center justify-between"><div class="flex items-center gap-4"><a class="flex items-center gap-2" href="/" data-discover="true"><img src="/images/spotube-logo.png" width="28" alt="Spotube Logo"/><span class="text-lg font-bold">Spotube</span></a><nav class="hidden md:flex items-center gap-1"><a class="px-3 py-2 rounded-lg text-sm font-medium transition-colors text-primary-500" href="/" data-discover="true">Home</a><a class="px-3 py-2 rounded-lg text-sm font-medium transition-colors hover:underline hover:underline-offset-4 hover:text-primary-500" href="/blog" data-discover="true">Blog</a><a class="px-3 py-2 rounded-lg text-sm font-medium transition-colors hover:underline hover:underline-offset-4 hover:text-primary-500" href="https://docs.spotube.cc">Docs</a><a class="px-3 py-2 rounded-lg text-sm font-medium transition-colors hover:underline hover:underline-offset-4 hover:text-primary-500" href="/downloads" data-discover="true">Downloads</a><a class="px-3 py-2 rounded-lg text-sm font-medium transition-colors hover:underline hover:underline-offset-4 hover:text-primary-500" href="/about" data-discover="true">About</a></nav></div><div class="flex items-center gap-2"><button type="button" aria-label="Loading theme..."><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a2.83 2.83 0 0 0 4 4 4 4 0 1 1-4-4"></path><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.9 4.9 1.4 1.4"></path><path d="m17.7 17.7 1.4 1.4"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.3 17.7-1.4 1.4"></path><path d="m19.1 4.9-1.4 1.4"></path></svg></button><a href="https://github.com/KRTirtho/spotube" target="_blank" rel="noopener noreferrer" class="px-3 py-1.5 text-sm bg-black dark:bg-white text-white dark:text-black rounded-full hidden sm:inline-flex items-center gap-1"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg>Star Us (46.3K)</a><button type="button" class="p-2 rounded-lg hover:preset-tonal-surface transition-colors md:hidden" aria-label="Open menu"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-xl" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><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></button></div></div></header><div data-scope="dialog" data-part="backdrop" hidden="" id="dialog:_R_4j5_:backdrop" data-state="closed" class="fixed inset-0 z-40 bg-surface-50-950/50 md:hidden transition transition-discrete opacity-0 starting:data-[state=open]:opacity-0 data-[state=open]:opacity-100"></div><div data-scope="dialog" data-part="positioner" id="dialog:_R_4j5_:positioner" style="pointer-events:none" class="fixed inset-0 z-50 flex justify-start md:hidden"><div data-scope="dialog" data-part="content" role="dialog" hidden="" id="dialog:_R_4j5_:content" tabindex="-1" data-state="closed" aria-modal="true" aria-labelledby="dialog:_R_4j5_:title" aria-describedby="dialog:_R_4j5_:description" class="h-screen card preset-filled-surface-100-900 w-72 p-0 shadow-xl transition transition-discrete opacity-0 -translate-x-full starting:data-[state=open]:opacity-0 starting:data-[state=open]:-translate-x-full data-[state=open]:opacity-100 data-[state=open]:translate-x-0"><header class="flex items-center justify-between p-4 border-b border-surface-200-800"><a class="flex items-center gap-2" href="/" data-discover="true"><img src="/images/spotube-logo.png" width="28" alt="Spotube Logo"/><span class="text-lg font-bold">Spotube</span></a><button data-scope="dialog" data-part="close-trigger" id="dialog:_R_4j5_:close" type="button" class="btn-icon hover:preset-tonal"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="size-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></header><nav class="flex flex-col p-3 gap-1"><a class="flex items-center gap-3 px-4 py-3 rounded-xl text-sm font-medium transition-colors hover:preset-tonal-surface" href="/" data-discover="true">Home</a><a class="flex items-center gap-3 px-4 py-3 rounded-xl text-sm font-medium transition-colors hover:preset-tonal-surface" href="/blog" data-discover="true">Blog</a><a class="flex items-center gap-3 px-4 py-3 rounded-xl text-sm font-medium transition-colors hover:preset-tonal-surface" href="https://docs.spotube.cc">Docs</a><a class="flex items-center gap-3 px-4 py-3 rounded-xl text-sm font-medium transition-colors hover:preset-tonal-surface" href="/downloads" data-discover="true">Downloads</a><a class="flex items-center gap-3 px-4 py-3 rounded-xl text-sm font-medium transition-colors hover:preset-tonal-surface" href="/about" data-discover="true">About</a><button type="button" aria-label="Loading theme..."><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a2.83 2.83 0 0 0 4 4 4 4 0 1 1-4-4"></path><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.9 4.9 1.4 1.4"></path><path d="m17.7 17.7 1.4 1.4"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.3 17.7-1.4 1.4"></path><path d="m19.1 4.9-1.4 1.4"></path></svg></button></nav></div></div><div><section class="relative flex flex-col items-center text-center pt-12 md:pt-24 px-4 overflow-hidden" style="min-height:60vh"><div class="absolute inset-0 overflow-hidden pointer-events-none"><div class="absolute inset-0" style="opacity:1;transform:none"><div class="absolute top-20 left-10 w-32 h-32 rounded-full bg-primary-500/5 blur-3xl"></div><div class="absolute top-40 right-20 w-48 h-48 rounded-full bg-purple-500/5 blur-3xl"></div></div><div class="absolute inset-0" style="opacity:1;transform:none"><div class="absolute bottom-40 left-1/4 w-24 h-24 rounded-full bg-cyan-500/5 blur-2xl"></div><div class="absolute top-60 right-1/3 w-36 h-36 rounded-full bg-pink-500/5 blur-2xl"></div></div><div class="absolute inset-0" style="opacity:1;transform:none"><div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-64 h-64 rounded-full bg-primary-500/3 blur-3xl"></div></div></div><div class="absolute inset-0 pointer-events-none" style="z-index:0"><div class="absolute inset-0 transition-opacity duration-300" style="background:radial-gradient(600px circle at var(--spotlight-x, 50%) var(--spotlight-y, 50%), rgba(147, 130, 255, 0.04), transparent 40%)"></div></div><div class="absolute inset-0 overflow-hidden pointer-events-none"><div class="absolute w-96 h-96 rounded-full blur-3xl" style="background:radial-gradient(circle, rgba(99, 132, 255, 0.08) 0%, transparent 70%);left:10%;top:20%"></div><div class="absolute w-80 h-80 rounded-full blur-3xl" style="background:radial-gradient(circle, rgba(147, 130, 255, 0.06) 0%, transparent 70%);right:15%;top:40%"></div></div><canvas class="absolute inset-0 w-full h-full pointer-events-none" style="z-index:1"></canvas><canvas class="absolute bottom-0 left-0 w-full pointer-events-none" style="z-index:1;height:60px"></canvas><div class="" style="transform:none"><div class="relative" style="z-index:10;opacity:0;transform:translateY(30px)"><div class="relative inline-block"><div><h1 class="text-3xl sm:text-4xl md:text-7xl font-bold mb-2">Spotube</h1></div><div class="absolute inset-0 blur-2xl opacity-20 pointer-events-none" style="background:linear-gradient(90deg, #6366f1, #9382ff, #a855f7)"></div></div><p class="text-lg md:text-xl text-surface-500 max-w-2xl mb-8">A cross-platform extensible open-source music streaming platform.<br/>Bring your own music metadata, playlists, and audio sources with plugins.</p><div class="flex justify-center gap-1 sm:gap-4 mb-8"><a href="/downloads" class="flex items-center justify-center gap-2 btn btn-lg scale-90 sm:scale-100 preset-filled-primary-500 px-4 sm:px-8"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" x2="12" y1="15" y2="3"></line></svg>Downloads</a><a href="https://docs.spotube.cc" class="flex items-center justify-center gap-2 btn btn-lg scale-90 sm:scale-100 preset-tonal-primary px-4 sm:px-8">Learn More</a></div><div class="flex gap-4 mb-4 justify-center"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 576 512" class="text-2xl text-[#3DDC84]" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"></path></svg><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" class="text-2xl text-[#00A2F0]" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"></path></svg><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" class="text-2xl" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"></path></svg><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" class="text-2xl" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"></path></svg></div><img src="/images/lockup_built-w-flutter.png" alt="Built with Flutter" class="dark:hidden h-10 mx-auto mt-2 mb-4"/><img src="/images/lockup_built-w-flutter_wht.png" alt="Built with Flutter" class="hidden dark:block h-10 mx-auto mt-2 mb-4"/><div class="flex justify-center items-center gap-2 sm:gap-6 mb-4 max-h-16"><a href="https://news.ycombinator.com/item?id=39066136" target="_blank" rel="noopener noreferrer"><img src="https://hackerbadge.vercel.app/api?id=39066136" alt="HackerNews"/></a><a href="https://flathub.org/apps/com.github.KRTirtho.Spotube" target="_blank" rel="noopener noreferrer"><img width="160" alt="Download on Flathub" src="https://flathub.org/api/badge?locale=en"/></a></div></div></div></section><br/><section class="px-4 md:px-24 flex flex-col gap-16"><div class="flex flex-col gap-6"><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"><div><h2 class="text-3xl font-bold flex items-center gap-2">Project Supporters<span class="text-red-500">❤️</span></h2><p class="mt-1"><span class="opacity-60">Spotube is community-funded. Join our<!-- --> </span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16" class="inline-block ml-1" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill-opacity=".4" d="M12.995 8.195c0 .937-.312 1.912-.78 2.693l1.99 1.99c.976-1.327 1.6-2.966 1.6-4.683 0-1.795-.624-3.434-1.561-4.76l-2.068 2.028c.468.781.78 1.679.78 2.732z"></path><path d="M8 13.151a4.995 4.995 0 1 1 0-9.99c1.015 0 1.951.273 2.732.82l1.95-2.03a7.805 7.805 0 1 0 .04 12.449l-1.951-2.03a5.07 5.07 0 0 1-2.732.781z"></path></svg> <a href="https://opencollective.com/spotube" target="_blank" rel="noopener noreferrer" class="text-primary-500 hover:underline">Open Collective</a>.</p></div><button type="button" class="btn preset-tonal-primary" tabindex="0">Become a Supporter</button></div></div><div data-scope="dialog" data-part="backdrop" hidden="" id="dialog:_R_h935_:backdrop" data-state="closed" class="fixed inset-0 z-50 bg-surface-50-950/50"></div><div data-scope="dialog" data-part="positioner" id="dialog:_R_h935_:positioner" style="pointer-events:none" class="fixed inset-0 z-50 flex justify-center items-center p-4"><div data-scope="dialog" data-part="content" role="dialog" hidden="" id="dialog:_R_h935_:content" tabindex="-1" data-state="closed" aria-modal="true" aria-labelledby="dialog:_R_h935_:title" aria-describedby="dialog:_R_h935_:description" class="card preset-filled-surface-50-950 w-full max-w-4xl p-6 space-y-4 shadow-xl transition transition-discrete opacity-0 translate-y-[100px] starting:data-[state=open]:opacity-0 starting:data-[state=open]:translate-y-[100px] data-[state=open]:opacity-100 data-[state=open]:translate-y-0"><header class="flex justify-between items-center"><div data-scope="dialog" data-part="title" id="dialog:_R_h935_:title" class="text-xl font-bold">All Supporters</div><button data-scope="dialog" data-part="close-trigger" id="dialog:_R_h935_:close" type="button" class="btn-icon hover:preset-tonal"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="size-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></header><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4" style="max-height:60vh;overflow-y:auto"></div></div></div><div class="flex flex-col gap-12 py-8 relative"><div class="absolute inset-0 overflow-hidden pointer-events-none"><div class="absolute rounded-full bg-primary-500/20" style="left:35.461264337720124%;top:37.80221635974006%;width:4.4164226663369215px;height:4.4164226663369215px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:86.91491859609337%;top:8.536568056154902%;width:3.8741224942201313px;height:3.8741224942201313px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:87.3439218117661%;top:48.87370373481217%;width:4.456467747127976px;height:4.456467747127976px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:96.18337613858998%;top:29.746057291112436%;width:4.428518357572836px;height:4.428518357572836px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:53.86323637984112%;top:67.22743965109177%;width:2.0017138233371794px;height:2.0017138233371794px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:50.379222224237985%;top:60.84079541734091%;width:3.114287548526825px;height:3.114287548526825px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:4.3888208078470825%;top:71.50142507818649%;width:4.491354054345123px;height:4.491354054345123px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:87.90278951216881%;top:86.07810147505093%;width:3.343976697596803px;height:3.343976697596803px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:28.146427931353777%;top:45.56303936865902%;width:2.1056176319858855px;height:2.1056176319858855px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:46.75340213109098%;top:11.53949217364243%;width:2.397344272859141px;height:2.397344272859141px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:14.949357355157368%;top:8.500811711060141%;width:4.097157339928596px;height:4.097157339928596px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:99.54098890986727%;top:72.29235389012227%;width:5.558244057878608px;height:5.558244057878608px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:82.45770622596555%;top:56.28879785397886%;width:4.805719346963543px;height:4.805719346963543px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:70.92772670316825%;top:73.52211600449819%;width:3.647358120958014px;height:3.647358120958014px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:21.538019484101902%;top:72.6937457128586%;width:5.798959490099917px;height:5.798959490099917px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:75.92846437320414%;top:19.156301869845937%;width:5.335909914383866px;height:5.335909914383866px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:8.624069641162402%;top:1.2916526716562737%;width:3.989077288778444px;height:3.989077288778444px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:59.95417045726788%;top:42.52489968461948%;width:2.7462476983524073px;height:2.7462476983524073px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:49.674962855375426%;top:31.407650437585822%;width:5.1488971240631525px;height:5.1488971240631525px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:53.628189468666434%;top:65.06671424579658%;width:5.505481152809814px;height:5.505481152809814px"></div></div><div class="text-center relative z-10" style="opacity:0;transform:translateY(20px)"><h2 class="text-3xl md:text-4xl font-bold mb-4" style="opacity:0">Why Spotube?</h2><p class="text-surface-500 max-w-2xl mx-auto" style="opacity:0">A small step towards decentralized music streaming. No premium subscriptions required, no telemetry, just your music.</p></div><div class="grid grid-cols-1 md:grid-cols-2 gap-6 relative z-10"><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-4 hover:shadow-lg transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-14 h-14 flex items-center justify-center rounded-xl bg-gradient-to-br from-blue-500 to-cyan-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-white" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 18V5l12-2v13"></path><circle cx="6" cy="18" r="3"></circle><circle cx="18" cy="16" r="3"></circle></svg></div><h3 class="text-xl font-semibold">Bring Your Own Music</h3><p class="text-surface-500 leading-relaxed">Connect your preferred music sources through community plugins. Support for video platforms, alternative frontends, and more.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-4 hover:shadow-lg transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-14 h-14 flex items-center justify-center rounded-xl bg-gradient-to-br from-purple-500 to-pink-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-white" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M21 15V6"></path><path d="M18.5 18a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"></path><path d="M12 12H3"></path><path d="M16 6H3"></path><path d="M12 18H3"></path></svg></div><h3 class="text-xl font-semibold">Playlist Sync</h3><p class="text-surface-500 leading-relaxed">Import and sync your playlists from popular music services, or manage them locally. Your music, your way.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-4 hover:shadow-lg transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-14 h-14 flex items-center justify-center rounded-xl bg-gradient-to-br from-orange-500 to-red-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-white" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><line x1="12" x2="12" y1="19" y2="22"></line></svg></div><h3 class="text-xl font-semibold">Synced Lyrics</h3><p class="text-surface-500 leading-relaxed">Sing along with time-synced lyrics from public lyric databases. Works regardless of your music source plugin.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-4 hover:shadow-lg transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-14 h-14 flex items-center justify-center rounded-xl bg-gradient-to-br from-green-500 to-emerald-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-white" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3"></path></svg></div><h3 class="text-xl font-semibold">Local Playback</h3><p class="text-surface-500 leading-relaxed">Full playback control happens locally on your device. No server-side restrictions or limitations.</p></div></div></div><div class="relative group max-w-5xl mx-auto" style="opacity:0.5;transform:scale(0.8) rotateX(10deg)"><div class="relative" style="transform:perspective(1000px)"><div class="absolute inset-0 bg-gradient-to-r from-primary-500/10 via-purple-500/10 to-primary-500/10 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div><div class="relative rounded-xl overflow-hidden border border-surface-100-900 bg-zinc-50 dark:bg-zinc-900 shadow-2xl shadow-primary-500/5"><img src="/images/spotube-screenshot.webp" alt="Spotube Desktop Application" class="w-full h-auto" loading="lazy"/></div></div></div><div class="flex flex-col lg:flex-row items-center gap-12 relative"><div class="absolute inset-0 overflow-hidden pointer-events-none"><div class="absolute rounded-full bg-primary-500/20" style="left:22.11742187873016%;top:68.60473200181528%;width:2.7460764506972577px;height:2.7460764506972577px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:62.07935006115284%;top:72.80040405729196%;width:5.677198797267927px;height:5.677198797267927px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:13.035855849246802%;top:70.58754427913165%;width:5.658604684412449px;height:5.658604684412449px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:69.60632827969202%;top:88.37109072302394%;width:2.506339759421339px;height:2.506339759421339px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:76.47570416625405%;top:88.69569456070012%;width:3.779887350518px;height:3.779887350518px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:1.7159183712494253%;top:9.676858953246526%;width:4.600509514682299px;height:4.600509514682299px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:43.193745839511436%;top:91.94447011801464%;width:2.9825619367313685px;height:2.9825619367313685px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:17.143236629309943%;top:92.69098397354732%;width:2.2298568638403164px;height:2.2298568638403164px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:14.867866372166683%;top:62.37782218725396%;width:2.063991900009979px;height:2.063991900009979px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:71.25578884578054%;top:4.615567111346364%;width:4.702696832379183px;height:4.702696832379183px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:23.21848114963285%;top:38.438154053061346%;width:4.86551710673802px;height:4.86551710673802px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:84.48810356949255%;top:71.1844198499094%;width:5.884317679170024px;height:5.884317679170024px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:72.9946052927999%;top:85.13804594405411%;width:3.200970739047384px;height:3.200970739047384px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:40.84526989712642%;top:59.620366325979624%;width:2.624133511920351px;height:2.624133511920351px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:11.867576123795276%;top:47.68163256769229%;width:3.9735942375720734px;height:3.9735942375720734px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:37.41345058523673%;top:61.14954813539952%;width:4.903407802083161px;height:4.903407802083161px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:3.8952401774234646%;top:13.373713928178766%;width:4.353564615161547px;height:4.353564615161547px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:47.60938284718661%;top:83.48140833001854%;width:2.2221086665556857px;height:2.2221086665556857px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:53.20667685436475%;top:34.9898163116656%;width:4.638110863872843px;height:4.638110863872843px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:20.399163353460835%;top:21.069651196880713%;width:5.3614792058544385px;height:5.3614792058544385px"></div></div><div class="flex-1 text-left max-w-lg relative z-10"><h3 class="text-2xl md:text-3xl font-bold mb-4" style="opacity:0;transform:translateX(-20px)">Your Music, Everywhere</h3><p class="text-surface-500 mb-6" style="opacity:0;transform:translateX(-20px)">Seamlessly stream music across all your devices. Desktop, mobile, or tablet — Spotube adapts to your lifestyle with native performance on every platform.</p><div class="flex flex-wrap gap-4"><div class="flex items-center gap-2 px-4 py-2 rounded-lg preset-tonal-primary-500" style="opacity:0;transform:scale(0.8)"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-lg" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg><span class="text-sm font-medium">Desktop</span></div><div class="flex items-center gap-2 px-4 py-2 rounded-lg preset-tonal-primary-500" style="opacity:0;transform:scale(0.8)"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-lg" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><rect width="14" height="20" x="5" y="2" rx="2" ry="2"></rect><path d="M12 18h.01"></path></svg><span class="text-sm font-medium">Mobile</span></div></div></div><div class="flex-1 flex flex-col items-center gap-6 relative z-10" style="transform:translateY(50px) rotateY(-15deg)"><div class="relative"><div class="absolute inset-0 bg-gradient-to-br from-primary-500/30 to-purple-500/30 rounded-3xl blur-lg"></div><div class="relative rounded-3xl overflow-hidden border-4 border-surface-100-900 bg-zinc-50 dark:bg-zinc-900 shadow-2xl w-52 md:w-60"><div class="relative" style="aspect-ratio:9/16"><img src="/images/mobile-screenshots/android-1.webp" alt="Home" class="absolute inset-0 w-full h-full object-contain bg-zinc-50 dark:bg-zinc-900" style="opacity:0;transform:scale(0.95)"/></div></div></div><div class="flex gap-1.5"><button type="button" class="flex flex-col items-center gap-0.5 px-2.5 py-1.5 rounded-lg transition-all preset-filled-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-xs" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg><span class="text-[9px]">Home</span></button><button type="button" class="flex flex-col items-center gap-0.5 px-2.5 py-1.5 rounded-lg transition-all opacity-50 hover:opacity-80"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-xs" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><span class="text-[9px]">Search</span></button><button type="button" class="flex flex-col items-center gap-0.5 px-2.5 py-1.5 rounded-lg transition-all opacity-50 hover:opacity-80"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-xs" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="m16 6 4 14"></path><path d="M12 6v14"></path><path d="M8 8v12"></path><path d="M4 4v16"></path></svg><span class="text-[9px]">Library</span></button><button type="button" class="flex flex-col items-center gap-0.5 px-2.5 py-1.5 rounded-lg transition-all opacity-50 hover:opacity-80"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-xs" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 18V5l12-2v13"></path><circle cx="6" cy="18" r="3"></circle><circle cx="18" cy="16" r="3"></circle></svg><span class="text-[9px]">Playing</span></button><button type="button" class="flex flex-col items-center gap-0.5 px-2.5 py-1.5 rounded-lg transition-all opacity-50 hover:opacity-80"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-xs" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><line x1="12" x2="12" y1="19" y2="22"></line></svg><span class="text-[9px]">Lyrics</span></button></div></div></div><div class="flex flex-col gap-8"><div class="flex flex-col gap-2" style="opacity:0;transform:translateY(20px)"><h2 class="text-3xl font-bold">Features</h2><p class="opacity-60 max-w-2xl">A cross-platform extensible open-source music streaming platform. Bring your own music metadata, playlists, and audio sources with community-created plugins.</p></div><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"></path></svg></div><h3 class="text-lg font-semibold">Plugin Powered</h3><p class="text-sm opacity-70 leading-relaxed">Supports any platform or custom music service through plugins created by the community or by yourself.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg></div><h3 class="text-lg font-semibold">Community Driven</h3><p class="text-sm opacity-70 leading-relaxed">Plugins for popular platforms or create your own. A step towards the decentralized music streaming era.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" x2="12" y1="15" y2="3"></line></svg></div><h3 class="text-lg font-semibold">Downloadable Tracks</h3><p class="text-sm opacity-70 leading-relaxed">Freely download tracks with tagged metadata. No restrictions, no premium required.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8"></path><path d="M10 19v-3.96 3.15"></path><path d="M7 19h5"></path><rect width="6" height="10" x="16" y="12" rx="2"></rect></svg></div><h3 class="text-lg font-semibold">Cross-Platform</h3><p class="text-sm opacity-70 leading-relaxed">Runs natively on Android, Windows, Linux, and macOS. One app for all your devices.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z"></path><path d="M16 8 2 22"></path><path d="M17.5 15H9"></path></svg></div><h3 class="text-lg font-semibold">Lightweight</h3><p class="text-sm opacity-70 leading-relaxed">Small binary size and minimal data usage. Not built with Electron web technologies.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div><h3 class="text-lg font-semibold">Synced Lyrics</h3><p class="text-sm opacity-70 leading-relaxed">Time-synced lyrics regardless of the plugin support. Sing along with your favorite tracks.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div><h3 class="text-lg font-semibold">No Telemetry</h3><p class="text-sm opacity-70 leading-relaxed">No diagnostics, no user data collection. Your privacy is respected by design.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><h3 class="text-lg font-semibold">Native Performance</h3><p class="text-sm opacity-70 leading-relaxed">Built with Flutter for native performance. Smooth, fast, and responsive on every platform.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><h3 class="text-lg font-semibold">Open Source</h3><p class="text-sm opacity-70 leading-relaxed">Fully libre software. Inspect, modify, and contribute to the codebase freely.</p></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 space-y-3 hover:shadow-lg hover:shadow-primary-500/10 transition-all duration-300" style="opacity:0;transform:translateY(30px)"><div class="w-12 h-12 flex items-center justify-center rounded-xl preset-tonal-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="text-2xl text-primary-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z"></path><path d="M16 9a5 5 0 0 1 0 6"></path><path d="M19.364 18.364a9 9 0 0 0 0-12.728"></path></svg></div><h3 class="text-lg font-semibold">Local Playback</h3><p class="text-sm opacity-70 leading-relaxed">Playback control is done locally, not on the server. Your music, your control.</p></div></div></div><div class="flex flex-col gap-8 py-8 relative"><div class="absolute inset-0 overflow-hidden pointer-events-none"><div class="absolute rounded-full bg-primary-500/20" style="left:82.81622905544737%;top:93.72132945435287%;width:2.1971479494917467px;height:2.1971479494917467px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:42.671428103584596%;top:45.43361743359093%;width:2.401373864634171px;height:2.401373864634171px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:96.53469455373684%;top:0.20600763299958302%;width:5.671449715959498px;height:5.671449715959498px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:37.295315160691025%;top:15.10327946871508%;width:2.3684909013584408px;height:2.3684909013584408px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:6.991502771894353%;top:56.15246305249635%;width:3.0978278376234982px;height:3.0978278376234982px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:18.102958365555022%;top:92.22130982373693%;width:2.761781667364482px;height:2.761781667364482px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:6.579007620500121%;top:40.768045027602426%;width:4.8085316628341666px;height:4.8085316628341666px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:93.90106860649945%;top:87.08109798211294%;width:4.646283879547539px;height:4.646283879547539px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:93.82073105688474%;top:56.726008170712184%;width:2.1732780524717477px;height:2.1732780524717477px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:63.49266021344311%;top:53.956289481278574%;width:5.769190239838117px;height:5.769190239838117px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:69.32318172193877%;top:97.60399753476344%;width:2.4726540270908206px;height:2.4726540270908206px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:27.305017048340872%;top:85.57013683768666%;width:3.4455336377319483px;height:3.4455336377319483px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:68.79970533978846%;top:37.690763180325604%;width:5.1831808609769014px;height:5.1831808609769014px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:18.241234700708088%;top:1.257309558399733%;width:5.224992222874727px;height:5.224992222874727px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:71.87459607755966%;top:96.44731901944171%;width:4.68383212920015px;height:4.68383212920015px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:66.49267629663544%;top:51.925619971074035%;width:4.79163485113102px;height:4.79163485113102px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:52.4208382332219%;top:70.6689452669936%;width:5.698487696114175px;height:5.698487696114175px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:93.84861955258688%;top:30.479126809528488%;width:2.0517986958628036px;height:2.0517986958628036px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:40.12118831356752%;top:23.5247874584682%;width:3.835010141105303px;height:3.835010141105303px"></div><div class="absolute rounded-full bg-primary-500/20" style="left:98.80159549579423%;top:95.4312980272292%;width:2.0602050041280906px;height:2.0602050041280906px"></div></div><div class="text-center relative z-10" style="opacity:0;transform:translateY(20px)"><h2 class="text-3xl md:text-4xl font-bold mb-4">Available Everywhere</h2><p class="text-surface-500 max-w-2xl mx-auto">Install Spotube on any platform using your preferred package manager or download method.</p></div><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 relative z-10"><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 text-center space-y-3" style="opacity:0;transform:translateY(20px)"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" class="text-5xl mx-auto text-[#00A2F0]" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"></path></svg><h3 class="text-lg font-semibold">Windows</h3><div class="flex flex-wrap gap-2 justify-center"><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">EXE Installer</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">WinGet</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">Scoop</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">Chocolatey</span></div></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 text-center space-y-3" style="opacity:0;transform:translateY(20px)"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" class="text-5xl mx-auto text-surface-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"></path></svg><h3 class="text-lg font-semibold">macOS</h3><div class="flex flex-wrap gap-2 justify-center"><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">DMG</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">Homebrew</span></div></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 text-center space-y-3" style="opacity:0;transform:translateY(20px)"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" class="text-5xl mx-auto text-surface-500" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"></path></svg><h3 class="text-lg font-semibold">Linux</h3><div class="flex flex-wrap gap-2 justify-center"><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">Flatpak</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">Debian/Ubuntu</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">Arch/Manjaro</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">Fedora/OpenSuse</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">Tarball</span></div></div><div class="card preset-outlined-surface-100-900 bg-zinc-50 dark:bg-zinc-900 p-6 text-center space-y-3" style="opacity:0;transform:translateY(20px)"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 576 512" class="text-5xl mx-auto text-[#3DDC84]" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"></path></svg><h3 class="text-lg font-semibold">Android</h3><div class="flex flex-wrap gap-2 justify-center"><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">APK</span><span class="text-xs px-2 py-1 rounded preset-tonal-primary-500">F-Droid</span></div></div></div><div class="text-center relative z-10" style="opacity:0"><a href="/downloads" class="inline-flex items-center gap-2 btn btn-lg preset-filled-primary-500"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" x2="12" y1="15" y2="3"></line></svg>View All Downloads</a></div></div></section><br/></div><footer class="w-full border-t border-surface-300-700 bg-surface-50-900"><div class="max-w-7xl mx-auto px-4 py-12"><div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8"><div class="flex flex-col gap-3"><a class="flex items-center gap-2" href="/" data-discover="true"><img src="/images/spotube-logo.png" width="32" alt="Spotube Logo"/><span class="text-xl font-bold">Spotube</span></a><p class="text-sm text-surface-500">Open source, extensible, and native music streaming platform.</p><p class="text-xs text-surface-600-400">Copyright © <!-- -->2026<!-- --> Spotube</p></div><div class="flex flex-col gap-3"><h4 class="font-semibold text-surface-900-100">Product</h4><a class="text-sm text-surface-500 hover:text-primary-500 transition-colors" href="/downloads" data-discover="true">Downloads</a><a class="text-sm text-surface-500 hover:text-primary-500 transition-colors" href="/docs" data-discover="true">Documentation</a><a class="text-sm text-surface-500 hover:text-primary-500 transition-colors" href="/about" data-discover="true">About</a></div><div class="flex flex-col gap-3"><h4 class="font-semibold text-surface-900-100">Community</h4><a href="https://github.com/KRTirtho/spotube" target="_blank" rel="noopener noreferrer" class="text-sm text-surface-500 hover:text-primary-500 transition-colors flex items-center gap-2"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" class="inline" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> GitHub</a><a href="https://discord.gg/uJ94vxB6vg" target="_blank" rel="noopener noreferrer" class="text-sm text-surface-500 hover:text-primary-500 transition-colors flex items-center gap-2"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" class="inline" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"></path></svg> Discord</a><a href="https://x.com/TeamSpotube" target="_blank" rel="noopener noreferrer" class="text-sm text-surface-500 hover:text-primary-500 transition-colors flex items-center gap-2"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" class="inline" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg> Twitter</a><a href="https://opencollective.com/spotube" target="_blank" rel="noopener noreferrer" class="text-sm text-surface-500 hover:text-primary-500 transition-colors flex items-center gap-2"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16" class="inline" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill-opacity=".4" d="M12.995 8.195c0 .937-.312 1.912-.78 2.693l1.99 1.99c.976-1.327 1.6-2.966 1.6-4.683 0-1.795-.624-3.434-1.561-4.76l-2.068 2.028c.468.781.78 1.679.78 2.732z"></path><path d="M8 13.151a4.995 4.995 0 1 1 0-9.99c1.015 0 1.951.273 2.732.82l1.95-2.03a7.805 7.805 0 1 0 .04 12.449l-1.951-2.03a5.07 5.07 0 0 1-2.732.781z"></path></svg> OpenCollective</a><a href="https://buymeacoffee.com/krtirtho" target="_blank" rel="noopener noreferrer" class="text-sm text-surface-500 hover:text-primary-500 transition-colors flex items-center gap-2"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" class="inline" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379-.197-.069-.42-.098-.57-.241-.152-.143-.196-.366-.231-.572-.065-.378-.125-.756-.192-1.133-.057-.325-.102-.69-.25-.987-.195-.4-.597-.634-.996-.788a5.723 5.723 0 00-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834 0 00-3.7.062c-.915.083-1.88.184-2.75.5-.318.116-.646.256-.888.501-.297.302-.393.77-.177 1.146.154.267.415.456.692.58.36.162.737.284 1.123.366 1.075.238 2.189.331 3.287.37 1.218.05 2.437.01 3.65-.118.299-.033.598-.073.896-.119.352-.054.578-.513.474-.834-.124-.383-.457-.531-.834-.473-.466.074-.96.108-1.382.146-1.177.08-2.358.082-3.536.006a22.228 22.228 0 01-1.157-.107c-.086-.01-.18-.025-.258-.036-.243-.036-.484-.08-.724-.13-.111-.027-.111-.185 0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076 0 013.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145.392.085.895.113 1.07.542.055.137.08.288.111.431l.319 1.484a.237.237 0 01-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704 0 01-4.743.295 37.059 37.059 0 01-4.699-.304c-.14-.017-.293-.042-.417-.06-.326-.048-.649-.108-.973-.161-.393-.065-.768-.032-1.123.161-.29.16-.527.404-.675.701-.154.316-.199.66-.267 1-.069.34-.176.707-.135 1.056.087.753.613 1.365 1.37 1.502a39.69 39.69 0 0011.343.376.483.483 0 01.535.53l-.071.697-1.018 9.907c-.041.41-.047.832-.125 1.237-.122.637-.553 1.028-1.182 1.171-.577.131-1.165.2-1.756.205-.656.004-1.31-.025-1.966-.022-.699.004-1.556-.06-2.095-.58-.475-.458-.54-1.174-.605-1.793l-.731-7.013-.322-3.094c-.037-.351-.286-.695-.678-.678-.336.015-.718.3-.678.679l.228 2.185.949 9.112c.147 1.344 1.174 2.068 2.446 2.272.742.12 1.503.144 2.257.156.966.016 1.942.053 2.892-.122 1.408-.258 2.465-1.198 2.616-2.657.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484 0 01.39-.426c.402-.078.787-.212 1.074-.518.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233-2.416.359-4.866.54-7.308.46-1.748-.06-3.477-.254-5.207-.498-.17-.024-.353-.055-.47-.18-.22-.236-.111-.71-.054-.995.052-.26.152-.609.463-.646.484-.057 1.046.148 1.526.22.577.088 1.156.159 1.737.212 2.48.226 5.002.19 7.472-.14.45-.06.899-.13 1.345-.21.399-.072.84-.206 1.08.206.166.281.188.657.162.974a.544.544 0 01-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884 0 01-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38 0 0 1.243.065 1.658.065.447 0 1.786-.065 1.786-.065.783 0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996 0 00-1.322-.238c-.826 0-1.491.284-2.26.613z"></path></svg> Buy Me a Coffee</a><a href="https://patreon.com/krtirtho" target="_blank" rel="noopener noreferrer" class="text-sm text-surface-500 hover:text-primary-500 transition-colors flex items-center gap-2"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" class="inline" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M489.7 153.8c-.1-65.4-51-119-110.7-138.3C304.8-8.5 207-5 136.1 28.4C50.3 68.9 23.3 157.7 22.3 246.2C21.5 319 28.7 510.6 136.9 512c80.3 1 92.3-102.5 129.5-152.3c26.4-35.5 60.5-45.5 102.4-55.9c72-17.8 121.1-74.7 121-150z"></path></svg> Patreon</a></div><div class="flex flex-col gap-3"><h4 class="font-semibold text-surface-900-100">Legal</h4><a class="text-sm text-surface-500 hover:text-primary-500 transition-colors" href="/p/privacy" data-discover="true">Privacy Policy</a><a class="text-sm text-surface-500 hover:text-primary-500 transition-colors" href="/p/terms" data-discover="true">Terms of Service</a></div></div><div class="border-t border-surface-300-700 pt-6"><div class="flex flex-col sm:flex-row justify-between items-center gap-4"><div class="flex flex-col gap-2 text-xs text-surface-600-400"><p>Built with <!-- -->❤️<!-- --> by the Spotube community</p><p>Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC.</p></div><div class="flex gap-4"><a href="https://github.com/KRTirtho/spotube" target="_blank" rel="noopener noreferrer" class="text-surface-500 hover:text-primary-500 transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" class="text-xl" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a><a href="https://discord.gg/uJ94vxB6vg" target="_blank" rel="noopener noreferrer" class="text-surface-500 hover:text-primary-500 transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" class="text-xl" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"></path></svg></a><a href="https://x.com/TeamSpotube" target="_blank" rel="noopener noreferrer" class="text-surface-500 hover:text-primary-500 transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" class="text-xl" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a></div></div><div class="mt-5 flex flex-wrap items-center gap-3 text-xs text-surface-500"><a href="/rss.xml" class="hover:text-primary-500 transition-colors">RSS Feed</a><span class="opacity-40">•</span><button type="button" class="inline-flex items-center gap-2 rounded-full border border-surface-200-800 bg-surface-100-900 px-3 py-1 text-[11px] font-semibold text-surface-600-400 transition-colors hover:bg-surface-200-800"><span>Copy RSS URL</span></button><span class="text-[11px] text-surface-500 break-all">/rss.xml</span></div></div></div></footer><div></div><script>((storageKey2, restoreKey) => {
    if (!window.history.state || !window.history.state.key) {
      let key = Math.random().toString(32).slice(2);
      window.history.replaceState({ key }, "");
    }
    try {
      let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
      let storedY = positions[restoreKey || window.history.state.key];
      if (typeof storedY === "number") {
        window.scrollTo(0, storedY);
      }
    } catch (error) {
      console.error(error);
      sessionStorage.removeItem(storageKey2);
    }
  })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"v8_passThroughRequests":false,"unstable_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">import "/assets/manifest-dc7bb07a.js";
import * as route0 from "/assets/root-xGDUQj7u.js";
import * as route1 from "/assets/home-BulPKHHl.js";
  
  window.__reactRouterRouteModules = {"root":route0,"routes/home":route1};

import("/assets/entry.client-CUl-0cyP.js");</script><!--$?--><template id="B:0"></template><!--/$--><script id="_R_">requestAnimationFrame(function(){$RT=performance.now()});</script><div hidden id="S:0"><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{},\"actionData\",\"errors\"]\n");</script><!--$?--><template id="B:1"></template><!--/$--></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>