AI-powered Spotify playlist filter. Log in with Spotify, select a playlist, describe a vibe, and get a new playlist with only the tracks that match.
- Vibe filtering — describe a mood (e.g. "late night drive", "workout energy") and AI scores every track 0-100
- Genre boost — optionally focus results toward a specific genre
- Target size — slider to control how many tracks end up in the new playlist
- Similar track discovery — optionally find tracks beyond your playlist that match the vibe
- Drag-select — click and drag across checkboxes to quickly select/deselect tracks
- Streaming results — tracks appear progressively as AI processes them
- Privacy matching — new playlists inherit the source playlist's public/private setting
- React 19
- Next.js 16 (App Router)
- Tailwind CSS v3
- Claude AI, OpenAI, or Google Gemini (configurable via
AI_PROVIDERenv var) - Spotify Web API
- Bun runtime
- Node.js 22+ or Bun
- A Spotify Developer app
- An Anthropic, OpenAI, or Google AI API key
-
Clone the repo:
git clone https://github.com/iCrazeiOS/Vibelist.git cd Vibelist -
Install dependencies:
bun install
-
Copy the example env file and fill in your credentials:
cp .env.example .env.local
Variable Description SPOTIFY_CLIENT_IDFrom your Spotify Developer dashboard SPOTIFY_CLIENT_SECRETFrom your Spotify Developer dashboard SPOTIFY_REDIRECT_URIMust match a redirect URI registered in your Spotify app (e.g., http://127.0.0.1:3000/api/auth/callbackfor local dev, or your deployment URL)AI_PROVIDERanthropic(default),openai, orgeminiANTHROPIC_API_KEYRequired if AI_PROVIDER=anthropicOPENAI_API_KEYRequired if AI_PROVIDER=openaiGEMINI_API_KEYRequired if AI_PROVIDER=geminiCOOKIE_SECRETAny random 32+ character string -
In your Spotify app settings, add your redirect URI (e.g.,
http://127.0.0.1:3000/api/auth/callbackfor local dev). This must exactly matchSPOTIFY_REDIRECT_URIin your.env.local. -
Start the dev server:
bun dev
-
Open http://127.0.0.1:3000 in your browser.
Spotify's developer platform restricts apps in development mode:
- Only your own account can log in (unless you add users in the Spotify dashboard)
- Only playlists you own or collaborate on are accessible
- Some API endpoints have lower rate limits
| Command | Description |
|---|---|
bun dev |
Start development server |
bun run build |
Production build |
bun start |
Start production server |
bun run lint |
Run ESLint |
bun run format |
Format all files with Prettier |
bun run format:check |
Check formatting without writing |
bun run typecheck |
Run TypeScript type checking |
bun test |
Run all tests |
bun run check |
Run all checks (types, lint, format, tests) |