I'd been meaning to index my liked songs in spotify based on different filters and generate playlists from them so here's a thing that does that. Log in with Spotify, filter by mood, genre, season, date range, and more, then preview and add generated playlists directly to your Spotify account.
- Spotify Authentication - OAuth login with Spotify
- Smart Filtering - Filter by:
- Mood/Vibe (e.g., chill, energetic, sad)
- Genre/Artist (e.g., rock, pop, indie)
- Month (January - December)
- Season (Spring, Summer, Fall, Winter)
- Date Range (custom from/to dates)
- Song Limit (control playlist size)
- Live Preview - See your filtered playlist before creating
- Spotify Integration - Add generated playlists directly to your Spotify account
- Frontend: React + Vite + Tailwind CSS
- Backend: Node.js + Express
- API: Spotify Web API
- Authentication: Spotify OAuth 2.0
- Node.js (v16 or higher)
- Spotify Developer Account with app credentials
- npm or yarn
-
Clone and navigate to the project:
cd playify -
Install dependencies:
# Install backend dependencies cd server && npm install # Install frontend dependencies cd ../client && npm install
-
Environment Setup:
- Your Spotify credentials are already configured in
.env - Make sure your Spotify app redirect URI is set to:
http://127.0.0.1:5001/callback
- Your Spotify credentials are already configured in
-
Start the servers:
# Start backend (from project root) cd server && npm start # Start frontend (from project root, in new terminal) cd client && npm run dev
-
Open the app:
- Frontend: http://localhost:5173
- Backend: http://localhost:5001
- Login - Click "Login with Spotify" and authorize the app
- Wait for Loading - The app will fetch all your liked songs
- Set Filters - Choose your desired filters:
- Enter mood keywords
- Select genre or artist names
- Pick specific months or seasons
- Set date ranges for when songs were added
- Limit the number of songs
- Generate Preview - Click "Generate Preview" to see filtered results
- Create Playlist - Enter a playlist name and click "Add to Spotify"
Backend (server/):
npm start- Start production servernpm run dev- Start development server with nodemon
Frontend (client/):
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production build
playify/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ └── ...
├── server/ # Express backend
└── .env # Environment variables
- Audio Analysis - Filter by tempo, energy, danceability
- Collaborative Playlists - Share and collaborate on playlists
- Export Options - Export to other music platforms
- Smart Recommendations - AI-powered playlist suggestions
- Advanced Filters - Decade, popularity, explicit content filters
- Preview songs and lyrics