Finds new songs that match a YouTube Music playlist's vibe by analyzing tempo and energy, not just 'more like this'.

Role

Developer

Timeline
February 2026

Technologies

  • Next.js
  • TypeScript
  • Material UI
  • Bun
  • YouTubei.js
  • Vitest
  • React Testing Library
  • Vercel

Tools

  • GitHub Actions
  • Feature-Sliced Design
  • Server Actions
  • unstable_cache

Background

YouTube Music recommendations loop the same artists back at me. I wanted something that explains why a playlist feels cohesive (tempo, energy, mood) and finds songs matching that recipe instead of just adjacent artists.

Solution

Next.js app that reads playlists through youtubei.js and analyzes their characteristics to generate 'twin' recommendations. The frontend uses Material UI with light and dark modes, the app installs as a PWA, and search history stays on-device.

Process

Built the YouTube Music core library first, then the vibe-analysis engine on top. Feature-sliced directory structure kept experimentation from turning into spaghetti. Server Actions plus caching handle data fetching, and unit tests cover the analysis logic, since that's the part most likely to break quietly.

Final Product

Impact

It surfaces songs I wouldn't have found through the native recommendation loop, filtered by whatever mood I'm in. As a PWA it behaves consistently on desktop and phone.

Reflection

Real-time data from an unofficial platform API teaches humility. Caching strategy matters as much as the analysis itself. Adding other music platforms would multiply its usefulness.