Truly shuffle your Spotify playlists without algorithm bias. Access the live web application here: https://spotifyreshuffle.web.app
Spotify's native "Shuffle" mode does not perform a mathematically random shuffle. Instead, Spotify utilizes predictive clustering, frequency weighting, and listener history algorithms to group songs together. As a result, users frequently experience:
- The same popular tracks playing repeatedly.
- Songs from the same artist or album playing back-to-back.
- Large portions of long playlists remaining unheard.
Spotify Reshuffle solves this problem by connecting directly to your Spotify account via the official Spotify Web API and executing a mathematically sound, unbiased Fisher-Yates Shuffle Algorithm (
Once shuffled, the app updates the exact track order directly inside your official Spotify playlist. That means when you hit "Play" (in order, without Spotify's internal shuffle turned on), you get 100% pure, un-biased randomness across all your connected devices (iOS, Android, Desktop, Sonos, Smart TVs, CarPlay).
- 🎲 True Fisher-Yates Randomization: Every song in your playlist has an equal probability of appearing in any position (
$O(N)$ uniform distribution). - 🔗 Direct Spotify Web API Integration: Authenticate securely using Spotify OAuth 2.0 with Implicit Grant / PKCE flow.
- 🔄 In-Place Reshuffle or New Playlist Creation:
- Overwrite your existing playlist track order instantly.
- Or export the newly randomized tracklist into a brand-new playlist (e.g. "My Playlist (Reshuffled)").
- 🗑️ Playlist Management: Remove/unfollow playlists directly from the app interface.
- ⚡ Interactive Demo Mode: Test the reshuffle studio without signing into a Spotify account.
- 🎨 Modern Dark Aesthetics: Premium Spotify-inspired UI built with Tailwind CSS, glassmorphism, dynamic audio canvas visualizer, and custom confetti animations.
The app is deployed and live on Firebase Hosting:
👉 Launch Spotify Reshuffle (https://spotifyreshuffle.web.app)
- Frontend: React 19, Vite 6, Tailwind CSS v4, Lucide React Icons
-
API Integration: Spotify Web API (
https://api.spotify.com/v1) - State & Storage: React Hooks, LocalStorage Token Persistence
-
Hosting & Infrastructure: Firebase Hosting (
spotifyreshuffle.web.app) -
Algorithms: Fisher-Yates Modern Shuffle Algorithm (
$O(N)$ time complexity)
- Node.js (v18 or higher)
- npm or yarn
- A Spotify Developer Account with a registered app Client ID.
-
Clone the Repository
git clone https://github.com/Mrswami/spotifyReshuffle.git cd spotifyReshuffle -
Install Dependencies
npm install
-
Configure Environment Variables Create a
.envfile in the root directory:VITE_SPOTIFY_CLIENT_ID=your_spotify_client_id VITE_SPOTIFY_CLIENT_SECRET=your_spotify_client_secret VITE_FIREBASE_AUTH_DOMAIN=spotifyreshuffle.firebaseapp.com VITE_FIREBASE_PROJECT_ID=spotifyreshuffle
-
Start the Development Server
npm run dev
Open
http://localhost:5173in your browser. -
Build for Production
npm run build
We welcome community feedback, feature requests, and bug reports!
- Live Application Link: https://spotifyreshuffle.web.app
- Reporting Bugs: Check existing GitHub Issues before opening a new issue.
- Feature Requests: Have an idea for a new shuffling mode (e.g. genre balance, artist separation)? Open an issue tagged
enhancement.
This repository operates under executive leadership:
- Head Chief CEO:
@CEO(User) - Architectural changes, major algorithm modifications, or schema updates must be reviewed prior to deployment.
This project is open source and available under the MIT License.