ANNOUNCEMENT — I NEED HELP FIGURING OUT A WAY TO AVOID SPOTIFY'S POPULAR RESULT BIAS. IF YOU CAN HELP PLEASE CONTRIBUTE
Randomify is a Chrome extension for Spotify Web Player that starts true random playback.
It generates a random search query, navigates Spotify to that search URL, then uses a content script to auto-click a random result's Play button (DOM automation). No API keys, tokens, OAuth, PKCE, or backend server are required.
| Item | Notes |
|---|---|
| Chrome (MV3) | Load unpacked in Developer Mode |
| Spotify account | Log in at open.spotify.com |
| Node.js | Version 18+ (only if building from source) |
- Download
randomify-chrome.zipfrom the latest GitHub Release. - Unzip it.
- Go to
chrome://extensions - Enable Developer mode
- Click Load unpacked → select the unzipped
extension/folder.
npm install- Go to
chrome://extensions - Enable Developer mode
- Click Load unpacked → select the
extension/folder
- Open
open.spotify.comand log in. - Click the dice (🎲) button added inside Spotify’s player controls.
You can also use the extension popup as a fallback:
- Click the Randomify extension icon.
- Click Play Random Track.
Randomify will open (or reuse) a Spotify tab, run a random search query, then automatically click Play on a random track result. A small toast in the page shows status.
| Path | Purpose |
|---|---|
extension/ |
Chrome extension (load unpacked from here) |
extension/src/ |
Service worker, content script, popup |
lib/ |
Shared logic (random query generation, deduplication, etc.) |
tests/ |
Jest tests |
dist/ |
Zip packages, gitignored |
Scripts: npm run build, npm test, npm run lint
Important: The files Chrome actually runs live under extension/src/ (bundled output). After you pull or edit extension/src-src/, run npm run build so extension/src/ and extension/manifest.json stay in sync, then click Reload on chrome://extensions.
- Run
npm run buildin the repo root (updatesextension/src/*.jsandextension/manifest.json). - On
chrome://extensions, click Reload on Randomify (or Remove and Load unpacked again). - Hard-refresh Spotify (
Ctrl+Shift+R) so the content script re-injects.
See CONTRIBUTING.md.