PageSourceSearch

https://grovymusic.vercel.app/history

html grovymusic.vercel.app collected 2026-10-03 07:02:04 UTC 53,664 bytes, 30 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ficons%2Flogo.png&amp;w=48&amp;q=75 1x, /_next/image?url=%2Ficons%2Flogo.png&amp;w=96&amp;q=75 2x"/><link rel="stylesheet" href="/_next/static/chunks/0vpbbc8qqo1g9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0fldi-4fgo6om.js"/>
1<script src="/_next/static/chunks/0juranndmacur.js" async=""></script>
1<script src="/_next/static/chunks/0u95dh6lcl7tm.js" async=""></script>
1<script src="/_next/static/chunks/0o59ac8426icc.js" async=""></script>
1<script src="/_next/static/chunks/0mu1qslb0zv9i.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-0qjdu2gp-ry08.js" async=""></script>
1<script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script>
1<script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script>
1<script src="/_next/static/chunks/0r.bxwxh9-t65.js" async=""></script>
1<script src="/_next/static/chunks/161lh-iqu.2pd.js" async=""></script>
1<script src="/_next/static/chunks/0eqdrjcsbtdqv.js" async=""></script>
1<script src="/_next/static/chunks/15619b7r6nayd.js" async=""></script>
1<script src="/_next/static/chunks/0bfcsgxof1k9d.js" async=""></script>
1<script src="/_next/static/chunks/0eqzpaa.e4d-p.js" async=""></script>
1<script src="/_next/static/chunks/14peafcwwojya.js" async=""></script>
1<script src="/_next/static/chunks/11xf2_zzc5iow.js" async=""></script>
1<link rel="preload" href="https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&amp;display=swap" as="style"/><link rel="dns-prefetch" href="https://fonts.googleapis.com"/><link rel="dns-prefetch" href="https://fonts.gstatic.com"/><link rel="dns-prefetch" href="https://ytapi.gauravramyadav.workers.dev"/><link rel="dns-prefetch" href="https://jiosaavn-api.gauravramyadav.workers.dev"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://ytapi.gauravramyadav.workers.dev"/><link rel="preconnect" href="https://jiosaavn-api.gauravramyadav.workers.dev"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta name="apple-mobile-web-app-title" content="Grovy"/><meta name="color-scheme" content="dark"/><meta name="theme-color" content="#000000"/><meta name="msapplication-TileColor" content="#000000"/><link rel="icon" type="image/png" href="/icons/logo.png"/><link rel="shortcut icon" href="/icons/logo.png"/><link rel="apple-touch-icon" href="/icons/logo.png"/><title>History | Grovy</title><meta name="description" content="Your personal listening history in Grovy."/><meta name="application-name" content="Grovy"/><link rel="author" href="https://archduke.is-a.dev"/><meta name="author" content="Archduke"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="keywords" content="grovy,music player,open-source music player,web music player,privacy-first music app,open source,music streaming,PWA,music discovery,trending music,charts,lyrics,playlist manager,next.js"/><meta name="referrer" content="origin-when-cross-origin"/><meta name="creator" content="Archduke"/><meta name="publisher" content="Archduke"/><meta name="robots" content="noindex, nofollow"/><meta name="googlebot" content="noindex, nofollow, noimageindex"/><meta name="category" content="Entertainment"/><link rel="canonical" href="https://grovy.vercel.app/history"/><meta name="format-detection" content="telephone=no, address=no, email=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Grovy"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta property="og:title" content="Grovy - Open-source Music Player"/><meta property="og:description" content="Grovy is an open-source web music player with fast search, streaming, lyrics, and local-first playlists."/><meta property="og:url" content="https://grovy.vercel.app"/><meta property="og:site_name" content="Grovy"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://grovy.vercel.app/opengraph-image"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Grovy open-source web music player"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@archduke1337"/><meta name="twitter:title" content="Grovy - Open-source Music Player"/><meta name="twitter:description" content="Grovy is an open-source web music player with fast search, streaming, lyrics, and local-first playlists."/><meta name="twitter:image" content="https://grovy.vercel.app/twitter-image"/><link rel="icon" href="/icons/logo.png" type="image/png" sizes="any"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="apple-touch-icon" href="/icons/logo.png" sizes="180x180" type="image/png"/><link href="https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&amp;display=swap" rel="stylesheet"/>
1<script>
2              const updateThemeColor = () => {
3                const meta = document.querySelector('meta[name="theme-color"]');
4                if (meta) meta.content = document.documentElement.classList.contains('dark') ? '#000000' : '#f5f5f7';
5              };
6              updateThemeColor();
7              new MutationObserver(updateThemeColor).observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });
8            </script>
8<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Grovy","url":"https://grovy.vercel.app","description":"Grovy is an open-source web music player with fast search, streaming, lyrics, and local-first playlists.","inLanguage":"en-US","potentialAction":{"@type":"SearchAction","target":"https://grovy.vercel.app/?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
8<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebApplication","name":"Grovy","description":"Grovy is an open-source web music player with fast search, streaming, lyrics, and local-first playlists.","url":"https://grovy.vercel.app","applicationCategory":"MultimediaApplication","operatingSystem":"Web","inLanguage":"en-US","isAccessibleForFree":true,"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"author":{"@type":"Person","name":"Archduke","url":"https://archduke.is-a.dev"},"softwareVersion":"latest"}</script>
8<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Grovy","url":"https://grovy.vercel.app","logo":"https://grovy.vercel.app/icons/logo.png","sameAs":["https://github.com/archduke1337/grovy","https://archduke.is-a.dev"]}</script>
8<script>
9              if (typeof window !== 'undefined' && 'serviceWorker' in navigator) {
10                window.addEventListener('load', async () => {
11                  try {
12                    const registration = await navigator.serviceWorker.register('/sw.js', { scope: '/' });
13                    await registration.update();
14
15                    if ('caches' in window) {
16                      const keys = await caches.keys();
17                      await Promise.all(
18                        keys
19                          .filter((key) => key.startsWith('workbox-') || key.startsWith('grovy-v1') || key.startsWith('grovy-v2'))
20                          .map((key) => caches.delete(key))
21                      );
22                    }
23                  } catch (_) {}
24                });
25              }
26            </script>
26<script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script>
26</head><body class="bg-[#f5f5f7] dark:bg-black min-h-dvh overflow-x-hidden antialiased"><div hidden=""><!--$--><!--/$--></div><a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:z-[999] focus:p-4 focus:bg-white focus:text-black">Skip to content</a><div id="yt-player-hidden" style="position:absolute;top:-9999px;left:-9999px"></div><div style="display:contents;--player-primary:#3b82f6;--player-secondary:#8b5cf6"><div class="fixed inset-0 -z-10 overflow-hidden pointer-events-none bg-white dark:bg-black transition-colors duration-1000 undefined"><div class="absolute inset-0 opacity-20 dark:opacity-30 transition-colors duration-2000" style="background:radial-gradient(circle at 50% 50%, #3b82f610 0%, transparent 80%)"></div><div class="absolute inset-0 bg-white dark:bg-white mix-blend-overlay pointer-events-none"></div><div class="absolute inset-0 bg-noise opacity-[0.025] mix-blend-overlay pointer-events-none"></div><div class="absolute inset-0 bg-[radial-gradient(ellipse_at_center,transparent_40%,rgba(0,0,0,0.4)_100%)] opacity-30 dark:opacity-40 pointer-events-none"></div></div><div class="flex"><aside class="hidden lg:flex flex-col w-64 h-screen fixed left-0 top-0 border-r border-black/5 dark:border-white/5 bg-gray-50/50 dark:bg-black/20 backdrop-blur-xl z-40 overflow-y-auto custom-scrollbar"><div class="p-6"><a class="flex items-center gap-2.5 mb-10" href="/"><img alt="Grovy" loading="lazy" width="28" height="28" decoding="async" data-nimg="1" class="w-7 h-7" style="color:transparent" srcSet="/_next/image?url=%2Ficons%2Flogo.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2Ficons%2Flogo.png&amp;w=64&amp;q=75 2x" src="/_next/image?url=%2Ficons%2Flogo.png&amp;w=64&amp;q=75"/><span class="text-xl font-bold tracking-tight dark:text-white" style="font-family:&#x27;Silkscreen&#x27;, cursive">Grovy</span></a><div class="space-y-8"><div class="space-y-1"><a class="flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition-colors duration-200 text-gray-600 dark:text-white/50 hover:bg-black/5 dark:hover:bg-white/5 hover:text-gray-900 dark:hover:text-white" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>Home</a></div><div class="space-y-4"><h3 class="px-3 text-[11px] font-bold uppercase tracking-wider text-gray-400 dark:text-white/20">Your Library</h3><div class="space-y-1"><a class="flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition-colors duration-200 bg-black/5 dark:bg-white/10 text-sky-500 dark:text-sky-400" href="/history"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-sky-500 dark:text-sky-400"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>Recently Played</a><a class="flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition-colors duration-200 text-gray-600 dark:text-white/50 hover:bg-black/5 dark:hover:bg-white/5 hover:text-gray-900 dark:hover:text-white" href="/favorites"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path></svg>Favorite Songs</a></div></div><div class="space-y-4"><div class="flex items-center justify-between px-3"><h3 class="text-[11px] font-bold uppercase tracking-wider text-gray-400 dark:text-white/20">Playlists</h3><button aria-label="Create playlist" class="p-1 rounded-md hover:bg-black/5 dark:hover:bg-white/10 text-gray-400 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button></div><div class="space-y-1"><a class="flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition-colors duration-200 text-gray-600 dark:text-white/50 hover:bg-black/5 dark:hover:bg-white/5" href="/playlists"><div class="w-4 h-4 flex items-center justify-center"><div class="w-1.5 h-1.5 rounded-full bg-sky-500"></div></div>All Playlists</a></div></div></div></div></aside><div class="flex-1 lg:ml-64 relative min-h-dvh flex flex-col"><div class="fixed top-0 left-0 right-0 z-[60] px-3 sm:px-4 py-2 md:py-3 pointer-events-none"><nav class="
27          mx-auto max-w-5xl pointer-events-auto transition-colors transition-shadow duration-500 ease-out
28          rounded-2xl px-4 sm:px-6 py-3 sm:py-4 bg-transparent
29        "><div class="flex items-center justify-between"><div class="flex items-center gap-3 sm:gap-4"><a class="flex items-center gap-2 sm:gap-2.5 group" href="/"><div class="relative w-8 h-8 sm:w-9 sm:h-9"><img alt="Grovy" width="36" height="36" decoding="async" data-nimg="1" class="w-full h-full object-contain drop-shadow-sm" style="color:transparent" srcSet="/_next/image?url=%2Ficons%2Flogo.png&amp;w=48&amp;q=75 1x, /_next/image?url=%2Ficons%2Flogo.png&amp;w=96&amp;q=75 2x" src="/_next/image?url=%2Ficons%2Flogo.png&amp;w=96&amp;q=75"/></div><span class="text-base sm:text-lg font-bold tracking-tight text-black dark:text-white" style="font-family:&#x27;Silkscreen&#x27;, cursive">Grovy</span></a></div><div class="hidden md:flex lg:hidden items-center gap-2"><div class="flex items-center gap-0.5 p-1 bg-black/[0.03] dark:bg-white/[0.04] rounded-xl"><a class="relative px-4 py-2 rounded-lg text-[12px] font-semibold transition-colors transition-shadow duration-300 text-black/40 dark:text-white/35 hover:text-black/70 dark:hover:text-white/60" href="/">Home</a><a class="relative px-4 py-2 rounded-lg text-[12px] font-semibold transition-colors transition-shadow duration-300 text-black/40 dark:text-white/35 hover:text-black/70 dark:hover:text-white/60" href="/playlists">Library</a></div><div class="flex items-center gap-1 ml-2"><a class="flex items-center gap-1.5 px-2.5 py-2 rounded-xl hover:bg-black/[0.04] dark:hover:bg-white/[0.06] transition-colors transition-shadow duration-300 text-black/40 dark:text-white/40 hover:text-black/70 dark:hover:text-white/70" href="/auth/sign-in"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
29ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span class="text-[12px] font-semibold">Sign In</span></a><button class="p-2.5 rounded-xl hover:bg-black/[0.04] dark:hover:bg-white/[0.06] transition-colors transition-shadow duration-300 group text-black/30 dark:text-white/30 hover:text-black/60 dark:hover:text-white/60" aria-label="Toggle theme"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="group-hover:rotate-45 transition-transform"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg></button><a target="_blank" rel="noopener noreferrer" aria-label="GitHub" class="p-2.5 rounded-xl hover:bg-black/[0.04] dark:hover:bg-white/[0.06] transition-colors transition-shadow duration-300 group text-black/30 dark:text-white/30 hover:text-black/60 dark:hover:text-white/60" href="https://github.com/archduke1337/grovy"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="group-hover:scale-110 transition-transform"><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></a></div></div><div class="hidden lg:flex items-center gap-1"><a class="flex items-center gap-1.5 px-2.5 py-2 rounded-xl hover:bg-black/[0.04] dark:hover:bg-white/[0.06] transition-colors transition-shadow duration-300 text-black/40 dark:text-white/40 hover:text-black/70 dark:hover:text-white/70" href="/auth/sign-in"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span class="text-[12px] font-semibold">Sign In</span></a><button class="p-2.5 rounded-xl hover:bg-black/[0.04] dark:hover:bg-white/[0.06] transition-colors transition-shadow duration-300 group text-black/30 dark:text-white/30 hover:text-black/60 dark:hover:text-white/60" aria-label="Toggle theme"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="group-hover:rotate-45 transition-transform"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg></button><a target="_blank" rel="noopener noreferrer" aria-label="GitHub" class="p-2.5 rounded-xl hover:bg-black/[0.04] dark:hover:bg-white/[0.06] transition-colors transition-shadow duration-300 group text-black/30 dark:text-white/30 hover:text-black/60 dark:hover:text-white/60" href="https://github.com/archduke1337/grovy"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="group-hover:scale-110 transition-transform"><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></a></div><div class="flex items-center gap-1.5 md:hidden"><button aria-label="Toggle theme" class="p-2 rounded-xl text-black/40 dark:text-white/40 hover:bg-black/5 dark:hover:bg-white/5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg></button><button aria-label="Toggle menu" class="p-2 rounded-xl transition-colors transition-shadow duration-300 text-black dark:text-white hover:bg-black/5 dark:hover:bg-white/5"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu"><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></nav></div>
29<main id="main-content" class="flex-1 pt-14 sm:pt-16 md:pt-20 pb-28 sm:pb-32 safe-bottom"><!--$?--><template id="B:0"></template><div class="w-full max-w-350 mx-auto px-3 sm:px-5 md:px-10 lg:px-16 py-4 sm:py-6 md:py-8 space-y-8 sm:space-y-10 md:space-y-14 pb-36 min-h-dvh animate-pulse"><div class="pt-2 sm:pt-4 md:pt-8 space-y-6"><div class="space-y-3"><div class="h-12 sm:h-16 w-64 bg-gray-200 dark:bg-white/6 rounded-2xl"></div><div class="h-5 w-48 bg-gray-100 dark:bg-white/3 rounded-xl"></div></div><div class="h-12 max-w-2xl bg-gray-100 dark:bg-white/5 rounded-2xl"></div><div class="flex gap-2"><div class="h-8 rounded-full bg-gray-100 dark:bg-white/4" style="width:80px"></div><div class="h-8 rounded-full bg-gray-100 dark:bg-white/4" style="width:70px"></div><div class="h-8 rounded-full bg-gray-100 dark:bg-white/4" style="width:75px"></div><div class="h-8 rounded-full bg-gray-100 dark:bg-white/4" style="width:85px"></div></div></div><div class="space-y-5"><div class="h-8 w-32 bg-gray-200 dark:bg-white/6 rounded-xl"></div><div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3 sm:gap-4 md:gap-5"><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5">
29<div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5"><div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5"><div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5"><div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5">
29<div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5"><div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5"><div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5"><div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5">
29<div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div><div class="space-y-3"><div class="aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3"></div><div class="space-y-1.5 px-0.5"><div class="h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg"></div><div class="h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg"></div></div></div></div></div></div><!--/$--></main></div></div></div><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><div aria-live="polite" role="status" class="fixed bottom-20 sm:bottom-24 left-1/2 -translate-x-1/2 z-50 flex flex-col items-center gap-2 pointer-events-none w-full max-w-md px-4"></div>
29<script>requestAnimationFrame(function(){$RT=performance.now()});</script>
29<script src="/_next/static/chunks/0fldi-4fgo6om.js" id="_R_" async=""></script>
29<div hidden id="S:0"><div class="w-full max-w-350 mx-auto px-3 sm:px-5 md:px-8 lg:px-10 pt-8 sm:pt-10 md:pt-12 pb-36 sm:pb-40 space-y-10 sm:space-y-14" style="opacity:0"><header class="flex flex-col md:flex-row items-start md:items-end justify-between gap-6 sm:gap-8 pt-4 sm:pt-8"><div class="space-y-4"><div class="flex items-center gap-3 font-black uppercase text-[11px] sm:text-[12px] tracking-[0.25em] text-blue-500"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>Playback History</span></div><h1 class="text-4xl sm:text-6xl md:text-7xl lg:text-8xl font-black text-gray-900 dark:text-white tracking-[-0.04em] leading-none">Recent<span class="text-blue-500/20">.</span></h1></div></header><div class="py-20 sm:py-32 text-center space-y-8"><div class="w-24 h-24 mx-auto rounded-4xl bg-gray-100 dark:bg-white/3 flex items-center justify-center text-gray-300 dark:text-white/10 shadow-inner"><svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div><div class="space-y-3"><p class="text-2xl sm:text-3xl font-black text-gray-900 dark:text-white tracking-tight">Your history is empty</p><p class="text-gray-400 dark:text-white/30 font-bold max-w-sm mx-auto">Songs you listen to will appear here for quick access. Start playing music to build your listening history.</p></div><button class="flex items-center gap-2.5 mx-auto px-8 py-3.5 rounded-2xl bg-gray-900 dark:bg-white text-white dark:text-black font-black text-[14px] hover:scale-105 active:scale-95 transition-all shadow-xl"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg>Find Music</button></div></div><!--$--><!--/$--></div>
29<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};
30$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>
30<script>(self.__next_f=self.__next_f||[]).push([0])</script>
30<script>self.__next_f.push([1,"1:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"LoadingBoundaryProvider\"]\n9:I[53348,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\",\"/_next/static/chunks/0eqzpaa.e4d-p.js\"],\"default\"]\n:HL[\"/_next/static/chunks/0vpbbc8qqo1g9.css\",\"style\"]\n"])</script>
30<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"history\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"history\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",20],[[\"$\",\"$L1\",null,{\"loading\":[[\"$\",\"div\",\"l\",{\"className\":\"w-full max-w-350 mx-auto px-3 sm:px-5 md:px-10 lg:px-16 py-4 sm:py-6 md:py-8 space-y-8 sm:space-y-10 md:space-y-14 pb-36 min-h-dvh animate-pulse\",\"children\":[[\"$\",\"div\",null,{\"className\":\"pt-2 sm:pt-4 md:pt-8 space-y-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-12 sm:h-16 w-64 bg-gray-200 dark:bg-white/6 rounded-2xl\"}],[\"$\",\"div\",null,{\"className\":\"h-5 w-48 bg-gray-100 dark:bg-white/3 rounded-xl\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-12 max-w-2xl bg-gray-100 dark:bg-white/5 rounded-2xl\"}],[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"h-8 rounded-full bg-gray-100 dark:bg-white/4\",\"style\":{\"width\":80}}],[\"$\",\"div\",\"1\",{\"className\":\"h-8 rounded-full bg-gray-100 dark:bg-white/4\",\"style\":{\"width\":70}}],[\"$\",\"div\",\"2\",{\"className\":\"h-8 rounded-full bg-gray-100 dark:bg-white/4\",\"style\":{\"width\":75}}],[\"$\",\"div\",\"3\",{\"className\":\"h-8 rounded-full bg-gray-100 dark:bg-white/4\",\"style\":{\"width\":85}}]]}]]}],[\"$\",\"div\",null,{\"className\":\"space-y-5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-8 w-32 bg-gray-200 dark:bg-white/6 rounded-xl\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3 sm:gap-4 md:gap-5\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 roun
30ded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}],[\"$\",\"div\",\"1\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}],[\"$\",\"div\",\"2\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}],[\"$\",\"div\",\"3\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 roun
30ded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}],[\"$\",\"div\",\"4\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}],[\"$\",\"div\",\"5\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}],[\"$\",\"div\",\"6\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 roun
30ded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}],[\"$\",\"div\",\"7\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],\"$L2\"]}],\"$L3\",\"$L4\"]}]]}]]}],[],[]],\"children\":\"$L5\"}],{\"children\":[\"$L6\",{\"children\":[\"$L7\",{},null,false,null]},null,false,null]},null,false,null],\"$L8\",false]],\"m\":\"$undefined\",\"G\":[\"$9\",[\"$La\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"bjIJ4k-uDfpBy_8WONGRM\"}\n"])</script>
30<script>self.__next_f.push([1,"b:\"$Sreact.fragment\"\ne:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\nf:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n10:I[47257,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ClientPageRoot\"]\n11:I[40801,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\",\"/_next/static/chunks/14peafcwwojya.js\"],\"default\"]\n14:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\n15:\"$Sreact.suspense\"\n17:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\n19:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700\u0026display=swap\",\"style\"]\n2:[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 roun
30ded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]\n3:[\"$\",\"div\",\"8\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}]\n4:[\"$\",\"div\",\"9\",{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-square rounded-xl sm:rounded-2xl bg-gray-100 dark:bg-white/3\"}],[\"$\",\"div\",null,{\"className\":\"space-y-1.5 px-0.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-3/4 bg-gray-100 dark:bg-white/4 rounded-lg\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-1/2 bg-gray-50 dark:bg-white/2 rounded-lg\"}]]}]]}]\n"])</script>
30<script>self.__next_f.push([1,"5:[\"$\",\"$b\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0vpbbc8qqo1g9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/161lh-iqu.2pd.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/15619b7r6nayd.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/0bfcsgxof1k9d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://fonts.gstatic.com\"}],[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://ytapi.gauravramyadav.workers.dev\"}],[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://jiosaavn-api.gauravramyadav.workers.dev\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://ytapi.gauravramyadav.workers.dev\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://jiosaavn-api.gauravramyadav.workers.dev\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700\u0026display=swap\",\"rel\":\"stylesheet\"}],[\"$\",\"meta\",null,{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Grovy\"}],[\"$\",\"meta\",null,{\"name\":\"color-scheme\",\"content\":\"dark\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"content\":\"#000000\"}],[\"$\",\"meta\",null,{\"name\":\"msapplication-TileColor\",\"content\":\"#000000\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n              const updateThemeColor = () =\u003e {\\n                const meta = document.querySelector('meta[name=\\\"theme-color\\\"]');\\n                if (meta) meta.content = document.documentElement.classList.contains('dark') ? '#000000' : '#f5f5f7';\\n              };\\n              updateThemeColor();\\n              new MutationObserver(updateThemeColor).observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\\n            \"}}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/png\",\"href\":\"/icons/logo.png\"}],[\"$\",\"link\",null,{\"rel\":\"shortcut icon\",\"href\":\"/icons/logo.png\"}],[\"$\",\"link\",null,{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/logo.png\"}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"Grovy\\\",\\\"url\\\":\\\"https://grovy.vercel.app\\\",\\\"description\\\":\\\"Grovy is an open-source web music player with fast search, streaming, lyrics, and local-first playlists.\\\",\\\"inLanguage\\\":\\\"en-US\\\",\\\"potentialAction\\\":{\\\"@type\\\":\\\"SearchAction\\\",\\\"target\\\":\\\"https://grovy.vercel.app/?q={search_term_string}\\\",\\\"query-input\\\":\\\"required name=search_term_string\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebApplication\\\",\\\"name\\\":\\\"Grovy\\\",\\\"description\\\":\\\"Grovy is an open-source web music player with fast search, streaming, lyrics, and local-first playlists.\\\",\\\"url\\\":\\\"https://grovy.vercel.app\\\",\\\"applicationCategory\\\":\\\"MultimediaApplication\\\",\\\"o
30peratingSystem\\\":\\\"Web\\\",\\\"inLanguage\\\":\\\"en-US\\\",\\\"isAccessibleForFree\\\":true,\\\"offers\\\":{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\"},\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Archduke\\\",\\\"url\\\":\\\"https://archduke.is-a.dev\\\"},\\\"softwareVersion\\\":\\\"latest\\\"}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Grovy\\\",\\\"url\\\":\\\"https://grovy.vercel.app\\\",\\\"logo\\\":\\\"https://grovy.vercel.app/icons/logo.png\\\",\\\"sameAs\\\":[\\\"https://github.com/archduke1337/grovy\\\",\\\"https://archduke.is-a.dev\\\"]}\"}}],\"$Lc\"]}],\"$Ld\"]}]]}]\n"])</script>
30<script>self.__next_f.push([1,"6:[\"$\",\"$b\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n7:[\"$\",\"$b\",\"c\",{\"children\":[[\"$\",\"$L10\",null,{\"Component\":\"$11\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@12\",\"$@13\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/14peafcwwojya.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$15\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@16\"}]}]]}]\n8:[\"$\",\"$b\",\"h\",{\"children\":[null,[\"$\",\"$L17\",null,{\"children\":\"$L18\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L19\",null,{\"children\":[\"$\",\"$15\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1a\"}]}]}],null]}]\na:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0vpbbc8qqo1g9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script>
30<script>self.__next_f.push([1,"1b:I[5216,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"ToastProvider\"]\n1c:I[92348,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"PlayerProvider\"]\n1d:I[52157,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"PreloadChunks\"]\n1e:I[5097,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"AmbientBackground\"]\n1f:I[9142,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"KeyboardShortcuts\"]\n20:I[82437,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"Sidebar\"]\n21:I[47686,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"default\"]\n22:I[54219,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"CommandPalette\"]\n23:I[55672,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"Navbar\"]\n24:I[8821,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\",\"/_next/static/chunks/11xf2_zzc5iow.js\"],\"default\"]\n25:I[8321,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"BottomPlayer\"]\n26:I[2355,[\"/_next/static/chunks/0r.bxwxh9-t65.js\",\"/_next/static/chunks/161lh-iqu.2pd.js\",\"/_next/static/chunks/0eqdrjcsbtdqv.js\",\"/_next/static/chunks/15619b7r6nayd.js\",\"/_next/static/chunks/0bfcsgxof1k9d.js\"],\"Analytics\"]\nc:[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n              if (typeof window !== 'undefined' \u0026\u0026 'serviceWorker' in navigator) {\\n                window.addEventListener('load', async () =\u003e {\\n                  try {\\n                    const registration = await navigator.serviceWorker.register('/sw.js', { scope: '/' });\\n                    await registration.update();\\n\\n                    if ('caches' in window) {\\n                      const keys = await caches.keys();\\n                      await Promise.all(\\n                        keys\\n                          .filter((key) =\u003e key.startsWith('workbox-') || key.startsWith('grovy-v1') || key.startsWith('grovy-v2'))\\n                          .map((key) =\u003e caches.delete(key))\\n                      );\\n                    }\\n                  } catch (_) {}\\n                });\\n              }\\n            \"}}]\n"])</script>
30<script>self.__next_f.push([1,"d:[\"$\",\"body\",null,{\"className\":\"bg-[#f5f5f7] dark:bg-black min-h-dvh overflow-x-hidden antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"sr-only focus:not-sr-only focus:absolute focus:z-[999] focus:p-4 focus:bg-white focus:text-black\",\"children\":\"Skip to content\"}],[\"$\",\"$L1b\",null,{\"children\":[[\"$\",\"$L1c\",null,{\"children\":[[[\"$\",\"$L1d\",null,{\"moduleIds\":[\"17052012063068362585\"]}],[\"$\",\"$L1e\",null,{}]],[[\"$\",\"$L1d\",null,{\"moduleIds\":[\"10770588299096575627\"]}],[\"$\",\"$L1f\",null,{}]],[\"$\",\"div\",null,{\"className\":\"flex\",\"children\":[[\"$\",\"$L20\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex-1 lg:ml-64 relative min-h-dvh flex flex-col\",\"children\":[[\"$\",\"$L1d\",null,{\"moduleIds\":[\"6037393455049206926\"]}],[\"$\",\"$L21\",null,{\"children\":[[[\"$\",\"$L1d\",null,{\"moduleIds\":[\"12514376555879606737\"]}],[\"$\",\"$L22\",null,{}]],[\"$\",\"$L23\",null,{}],[\"$\",\"main\",null,{\"id\":\"main-content\",\"className\":\"flex-1 pt-14 sm:pt-16 md:pt-20 pb-28 sm:pb-32 safe-bottom\",\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$24\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/11xf2_zzc5iow.js\",\"async\":true}]],\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L25\",null,{}]]}]]}]]}]]}],[[\"$\",\"$L1d\",null,{\"moduleIds\":[\"16805448756550748646\"]}],[\"$\",\"$L26\",null,{}]]]}]]}]\n"])</script>
30<script>self.__next_f.push([1,"12:{}\n13:\"$7:props:children:0:props:serverProvidedParams:params\"\n"])</script>
30<script>self.__next_f.push([1,"18:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes\"}]]\n"])</script>
30<script>self.__next_f.push([1,"27:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\n16:null\n"])</script>
30<script>self.__next_f.push([1,"1a:[[\"$\",\"title\",\"0\",{\"children\":\"History | Grovy\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Your personal listening history in Grovy.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Grovy\"}],[\"$\",\"link\",\"3\",{\"rel\":\"author\",\"href\":\"https://archduke.is-a.dev\"}],[\"$\",\"meta\",\"4\",{\"name\":\"author\",\"content\":\"Archduke\"}],[\"$\",\"link\",\"5\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"6\",{\"name\":\"keywords\",\"content\":\"grovy,music player,open-source music player,web music player,privacy-first music app,open source,music streaming,PWA,music discovery,trending music,charts,lyrics,playlist manager,next.js\"}],[\"$\",\"meta\",\"7\",{\"name\":\"referrer\",\"content\":\"origin-when-cross-origin\"}],[\"$\",\"meta\",\"8\",{\"name\":\"creator\",\"content\":\"Archduke\"}],[\"$\",\"meta\",\"9\",{\"name\":\"publisher\",\"content\":\"Archduke\"}],[\"$\",\"meta\",\"10\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"meta\",\"11\",{\"name\":\"googlebot\",\"content\":\"noindex, nofollow, noimageindex\"}],[\"$\",\"meta\",\"12\",{\"name\":\"category\",\"content\":\"Entertainment\"}],[\"$\",\"link\",\"13\",{\"rel\":\"canonical\",\"href\":\"https://grovy.vercel.app/history\"}],[\"$\",\"meta\",\"14\",{\"name\":\"format-detection\",\"content\":\"telephone=no, address=no, email=no\"}],[\"$\",\"meta\",\"15\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"16\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Grovy\"}],[\"$\",\"meta\",\"17\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:title\",\"content\":\"Grovy - Open-source Music Player\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:description\",\"content\":\"Grovy is an open-source web music player with fast search, streaming, lyrics, and local-first playlists.\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:url\",\"content\":\"https://grovy.vercel.app\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:site_name\",\"content\":\"Grovy\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"23\",{\"property\":\"og:image\",\"content\":\"https://grovy.vercel.app/opengraph-image\"}],[\"$\",\"meta\",\"24\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"25\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"26\",{\"property\":\"og:image:alt\",\"content\":\"Grovy open-source web music player\"}],[\"$\",\"meta\",\"27\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:creator\",\"content\":\"@archduke1337\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:title\",\"content\":\"Grovy - Open-source Music Player\"}],[\"$\",\"meta\",\"31\",{\"name\":\"twitter:description\",\"content\":\"Grovy is an open-source web music player with fast search, streaming, lyrics, and local-first playlists.\"}],[\"$\",\"meta\",\"32\",{\"name\":\"twitter:image\",\"content\":\"https://grovy.vercel.app/twitter-image\"}],[\"$\",\"link\",\"33\",{\"rel\":\"icon\",\"href\":\"/icons/logo.png\",\"type\":\"image/png\",\"sizes\":\"any\"}],[\"$\",\"link\",\"34\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"35\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/logo.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L27\",\"36\",{}]]\n"])</script>
30</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.