Enhance your Spotify experience with custom plugins.
The best Spicetify alternative in a familiar way.
Join the official Extendify Discord server!
For this project to continue, the native part of Extendify needs to be completed. This is being developed by 1 person and will therefore take a while. The native part of Extendify will allow us to hook into Spotify's executable which will open up many possibilities for plugins regarding playback and other things that are not controlled by the frontend. An example of this is changing the playback speed. We are currently not able to do this because audio is played from the application process.
Right now on the frontend side of things we need to implement trivial things like being able to add options to context menus among other things, which will open a lot more doors for new plugins.
The TL;DR is that we're working on it. You can join the Discord server to keep up with progress if you want to.
This project was largely inspired by Vencord. A large part of this codebase is just a modified version of Vencord. I've added a banner crediting the original source for every file where this is the case.
I also took inspiration from Spicetify. I just thought that there was a better way to do things.
If you're on Windows, Extendify requires installing Spotify from the installer. (NOT THE MICROSOFT STORE!)
If you already have Spotify installed through this method, your install is probably not up to date, even if you're technically on the latest version. Read the Manual Updating section to learn how to update properly.
Currently the applyPatch.mjs script supports Windows, Linux and MacOS (tested on Win11, Arch and an arm Mac Mini).
One thing is that for loading the entrypoint we reference hardcoded variables. Linux versions will always be behind MacOS and Windows, so if these change between versions it won't work on Linux until it's caught up. You can change these to test or make a fix for this but I don't have access to testing that stuff right now so I will leave it to someone else.
The idea of manual updating is that you delete the .spa files in the Apps folder of the Spotify install, and the Spotify executable, and then re-run the installer.
This solves our problem of out of date archives 99.9% of the time.
We have a script for this which you can run:
npm run updateThis script currently only supports Windows (tested on Win11). For more info on how to run scripts, read the Scripts section.
If you're not using Windows, or you want to do it manually, do the following
- Delete the
xpui.spaand_xpui.spafiles from theSpotify/Appsdirectory, - Delete the Spotify executable (
Spotify.exeon Windows) file from theSpotifyfolder, - Get the latest installer for your OS and architecture from here,
- Run the installer.
npm run dev: Build, enable devtools, patch and run Spotify.npm run build: Build Extendify.npm run devtools: Enable devtools for Spotify.npm run patch: Patch Spotify.
--flatpak: Use this flag when running on Linux with flatpak.--spotifyPath: Use this flag to specify the path to Spotify's installation directory. (It should contain anAppsfolder)--cachePath: Use this flag to specify the path to the cache directory. (It should contain anoffline.bnkfile)
Apply flags like this:
$ npm [flags] run <script>To build, enable devtools and patch Spotify, run:
$ npm run devTo undo the patch, run:
$ npm run unpatch$ npm --flatpak run devTo undo the patch, run:
$ npm --flatpak run unpatch
