Skip to content

SerSaumy/Randomify

Repository files navigation

ANNOUNCEMENT — I NEED HELP FIGURING OUT A WAY TO AVOID SPOTIFY'S POPULAR RESULT BIAS. IF YOU CAN HELP PLEASE CONTRIBUTE

Randomify

Randomify

License: MIT PRs Welcome

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.


What you need

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)

Install (recommended: GitHub Release zip)

  1. Download randomify-chrome.zip from the latest GitHub Release.
  2. Unzip it.
  3. Go to chrome://extensions
  4. Enable Developer mode
  5. Click Load unpacked → select the unzipped extension/ folder.

Install (from source)

npm install
  1. Go to chrome://extensions
  2. Enable Developer mode
  3. Click Load unpacked → select the extension/ folder

How to use

  1. Open open.spotify.com and log in.
  2. Click the dice (🎲) button added inside Spotify’s player controls.

You can also use the extension popup as a fallback:

  1. Click the Randomify extension icon.
  2. 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.


Repository layout (for developers)

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.

Extension still looks like an old version?

  1. Run npm run build in the repo root (updates extension/src/*.js and extension/manifest.json).
  2. On chrome://extensions, click Reload on Randomify (or Remove and Load unpacked again).
  3. Hard-refresh Spotify (Ctrl+Shift+R) so the content script re-injects.

Contributing

See CONTRIBUTING.md.

About

Break free from Spotify's algorithm – Play truly random tracks with Randomify. Open-source browser extension.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors