-
Notifications
You must be signed in to change notification settings - Fork 88
SpotX‐Bash FAQ
-
General Questions
- How to use this?
- Which platforms and versions does SpotX-Bash support?
- Will SpotX-Bash ever support other platforms?
- Why does SpotX-Bash say "Failed to connect", "Could not be resolved" or other cURL errors?
- Why doesn't SpotX-Bash work with my shell?
- Does SpotX-Bash provide free Spotify Premium?
- Does SpotX-Bash provide access to lyrics?
- Does SpotX-Bash work on all Spotify updates?
- Can SpotX-Bash be used with a paid Premium account?
- Can SpotX-Bash be used in any region?
- Why are there still ads when using Spotify Connect, AirPlay, Casting, etc?
- Are there security concerns with SpotX-Bash?
- Is SpotX-Bash safe for my account?
- Can SpotX-Bash and Spicetify be used together?
- Why does SpotX-Bash say "Spotify not found" when Spotify is installed?
- Why doesn't SpotX-Bash have "x" feature?
- What is Developer Mode?
- What is the "old" and "new" UI?
- How can I troubleshoot issues?
- Linux Questions
- macOS Questions
In short -- install Spotify desktop client then run the SpotX-Bash command mentioned in the README.
Expanding on the directions in the README.md
...
after installing Spotify on Linux or macOS, SpotX-Bash
needs to be manually run to add its features to the installed Spotify client. Running the bash <(curl...
command in the README.md is recommended as this will always run the latest version of the script which may be required to support more recent Spotify client versions.
By default, SpotX-Bash
is for free-tier Spotify users and enables experimental features supported by the installed client version. Paid premium subscribers or those who wish to customize features can use the additional options listed in the README.md. Example commands can be found in the expanded Options
section of the README.md
.
SpotX-Bash
will need to run each time Spotify is installed, re-installed or updated. Alternatively, you can not update Spotify and continue using the SpotX-Bash
patched build for as long as you want. The Linux client does not have an auto-updater but may or may not automatically be updated by the package manager, review update settings for your package manager. The macOS client does have an auto-updater built in but using the SpotX-Bash
option, -B
, will block the updater from running.
SpotX-Bash
supports Spotify desktop clients on Linux and macOS. As of May 2023, Spotify has disabled v1.1.58.820
and below. Technically, SpotX-Bash
should work on all currently working versions of Spotify... v1.1.59.710
and up.
For Linux, Spotify does not post official system requirements. Generally, as long as your distro of choice can install Spotify v1.1.59.710
or higher (+ any required dependencies) then SpotX-Bash
will work. Spotify for Linux is built for x86_64 (64-bit) systems only (no x86 (32-bit) or ARM/ARM64 builds as of this writing).
For macOS, due to versions v1.1.58.820
and below being disabled by Spotify, OS X 10.10 and below no longer support an official working Spotify desktop client. OS X 10.11+ is required.
While SpotX-Bash
may work with v1.1.59.710
, the focus of SpotX-Bash is to support the current latest official client and Spotify v1.2.13.661+ is recommended for both Linux and macOS when possible. For a lighter weight client build or older OS, try 1.1.84.716 or 1.1.89.862.
No, SpotX-Bash
will only support Linux and macOS. SpotX is available for Windows, xManager is available for Android and SpotC lists various options for iOS.
This error is not directly caused or related to SpotX-Bash
but an issue somewhere between Github servers and your computer/network.
- Some ISPs and networks block
raw.githubusercontent.com
orgithub.io
- cURL is unable to verify the SSL certificate
- Github may be having server issues
- URL used may have a typo
Due to raw.githubusercontent.com
blocking being more common, github.io
is now the default URL mentioned in the README.md but either URL is an option if one isn't working or is preferred over another...
- github.io:
bash <(curl -sSL https://spotx-official.github.io/run.sh)
- raw.githubusercontent.com:
bash <(curl -sSL https://raw.githubusercontent.com/SpotX-Official/SpotX-Bash/main/spotx.sh)
For certificate-related errors, adding -k
to the curl arguments (curl -k -sSL https...
) may bypass the error, however, resolving the SSL/certificate issue is recommended.
The spotx.sh
file could also be downloaded from the repo to run locally -- it will do the same thing as running the bash/curl commands above however this is not ideal since SpotX-Bash
is constantly being updated to support the latest Spotify versions. A local copy of the script is quickly outdated and may not work correctly with future Spotify versions, requiring downloading the latest version each time Spotify is updated.
The default recommended SpotX-Bash
command in the README.md assumes the use of a Bash-compliant shell.
Shells which are not Bash-compliant may have issues with the recommended SpotX-Bash
bash <(curl...
command format. Refer to your shell documentation for the suggested handling of process substitution.
Below are two examples of a "more universal" format which may work with your shell. When using additional options, -s --
will need to precede all SpotX-Bash
options.
Example w/o options:
curl -sSL https://spotx-official.github.io/run.sh | bash
Example w/options:
curl -sSL https://spotx-official.github.io/run.sh | bash -s -- -cfh
No, SpotX-Bash
blocks ads and may enable some normally restricted client settings. Premium features such as Very High audio, group session listening, AI DJ, AI playlists, music downloading and offline playback require a paid Premium subscription.
As of July 30, 2024 Spotify has started to return access to full synced lyrics. At current time, lyrics availability is limited to client versions 1.2.36.x and above. This is controlled server-side by Spotify, they may increase access to older versions over time.
Some backstory to this... In May of 2024, Spotify has restricted lyrics to paid-premium subscribers only. Spotify first started testing this behavior in August 2023 and removed lyrics for some songs, accounts, regions.
SpotX-Bash
needs to run each time Spotify is installed, re-installed or updated. Just as new Spotify updates are released, updates to the SpotX-Bash
script are needed to continue working as expected. A brand new Spotify update may not yet work with the current SpotX-Bash version -- check the latest supported Spotify client version mentioned at the top of the repo README.md to confirm SpotX-Bash
will support your client version.
For Linux users, the Spotify client does not update itself via in-app update services and depends on the specific package manager or installation method used.
For macOS users, the Spotify client has an in-app updater and will update itself automatically when a new version is available. SpotX-Bash
has the option to block updates and/or install the latest supported (or a previous) Spotify version then patch it after installation -- it is recommended to install Spotify and block updates using SpotX-Bash
so the Spotify client never auto-updates itself to a version not yet supported by SpotX-Bash
.
Yes, SpotX-Bash
supports Premium-tier users and should be run with the -p
flag to skip the usual modifications done for free-tier users.
SpotX-Bash
itself is not limited by any region but Spotify may not be supported in your region and workarounds such as using a VPN or proxy may be required. Additionally, South Korea is currently the only officially supported Spotify region that does NOT have a free-tier (outside of a trial subscription) and therefore users in South Korea who wish to use the Spotify free-tier must also use a VPN or proxy.
Using a Spotify account outside of officially supported regions is outside the scope of this project and further discussion of bypassing those limitations will not be supported in this repo.
When using any of these methods to play audio/video, the media is no longer coming from the desktop client and, instead, is being controlled by the Spotify API outside of the modified client. Since SpotX-Bash
only modifies the desktop client and not your actual Spotify account, ads cannot be blocked when audio/video is not coming directly from the modified desktop client. Yes, you may be using the desktop client to control the play/pause/stop/skip functions while the audio/video is on another device, but the audio/video itself is no longer sourced from the desktop client where SpotX-Bash
has made the modifications.
No, I don't believe there is anything unsafe with this script. The sole purpose of this project is ad blocking and enabling additional experimental features (most of which are official from Spotify).
No logging or anything outside of the exact purpose of SpotX-Bash
is done by this script. Of course, everything this script does can be reviewed by anyone. If an unintended security issue is discovered due to improper use of Bash or one of the components used in the script, it can be reported using the Github security advisory template.
While there are no known instances of any SpotX-Bash
users losing their Spotify accounts specifically from SpotX-Bash
(or other ad blocking methods)... Spotify itself may have issues with blocking ads. SpotX-Bash
does nothing related to copying/downloading/ripping music which are all things known to cause account issues. The only goal here is to remove ads and enable new (official) features which may not always be available to all by default due to Spotify a/b testing -- but use at your own risk and review the official terms and conditions for your region.
Technically, yes. If using both SpotX-Bash
and Spicetify, it is required to run SpotX-Bash
before setting up Spicetify. Any issues appearing after setting up Spicetify is outside the scope of this project/repo and issues should not be reported here.
Using both together is not "officially supported" by either SpotX or Spicetify and it is on the user if running into issue.
In some cases, SpotX-Bash
may be unable to find Spotify in its installed path. For these situations, the -P [path]
flag must be used along with the usual SpotX-Bash
command.
For Linux -- SpotX-Bash
should auto-detect installations via APT, dpkg, Flatpak (user/system), pacman, RPM Fusion and spotify-launcher. If installation is not auto-detected use the -P [path]
option, pointing to the full path of the the spotify directory where the main executable binary for Spotify is found.
For example, if using the standard Flatpak installation of Spotify and the spotify executable is located at /var/lib/flatpak/app/com.spotify.Client/x86_64/stable/active/files/extra/share/spotify/spotify
then you would add -P /var/lib/flatpak/app/com.spotify.Client/x86_64/stable/active/files/extra/share/spotify/
to the SpotX-Bash
command and the installation should be found.
Flatpak user installations default to: $HOME/.local/share/flatpak/app/com.spotify.Client/x86_64/stable/active/files/extra/share/spotify/
deb installations via APT or dpkg default to: /usr/share/spotify/
AUR installations default to: /opt/spotify/
spotify-launcher installations default to: $HOME/.local/share/spotify-launcher/install/usr/share/spotify
RPM installations default to: /usr/share/spotify-client/
For macOS -- use the full path where Spotify.app
is located. Default path for all macOS apps is in the /Applications/ directory.
For example, if Spotify.app is located at /Applications/MyStuff/Spotify.app
then you would add -P /Applications/MyStuff/
to the SpotX-Bash
command and the installation should be found.
The goal of SpotX-Bash
is blocking ads and enabling official experimental features.
Customization beyond this is outside the scope of this project. Additionally, the goal is to always support the latest available Spotify client versions whenever possible therefore older Spotify versions may not always work with or be fully supported by the current script version.
Availability of features also depends on the client version installed, Spotify changes things all the time. See the Spotify Desktop Client Version Timeline for details on some of changes between versions.
Developer Mode
enables additional features built into the Spotify desktop client which are normally hidden for regular users. For example, since Spotify is built to use the Chromium Embedded Framework, the same "Developer Tools" built into Chrome/Chromium become available. Additional features include the Debug Window
which allows granular controls of many Spotify experimental settings normally controlled by Spotify's Remote Config
(or by SpotX
/ SpotX-Bash
).
There are many more features available but many of which should probably be left alone unless you know what you're doing or don't mind risking breaking your Spotify install. If it does end up breaking after poking the wrong thing, wiping Spotify app cache (run SpotX-Bash
with -c
/--clearcache
) will hopefully wipe any customization done with devmode.
To get to various Developer Mode
menus/settings once it's been enabled:
- right-click in various areas of the app to reveal additional menus
- select the
Develop
menu added to the Spotify toolbar (macOS only) - click your Spotify user icon > select Debug Window from the drop down menu
The SpotX-Bash
developer mode is "permanent" and will be enabled until you upgrade/downgrade/reinstall the Spotify app.
SpotX-Bash
supports developer mode in versions 1.1.84.716
and up. Versions newer than what SpotX-Bash
officially supports may not work.
A script for temporary Developer Mode
can be found here. The advantage of the temp script is that it supports nearly all working Spotify builds, both old and new. The "downside" to the script is that dev mode is temporary and likely to only work until you quit Spotify. To access dev mode again, the script would need to be used each time. Changes you've made to experimental features while in dev mode will stick regardless of whether dev mode is currently enabled or not.
The "old" theme was the default UI that Spotify users should be familiar with if they used the desktop or web clients from 2021-2023 (and possibly earlier). In early 2021 the desktop and web clients merged code bases and started using the same UI. While in 2021 that UI may have been new, in 2023 it has become what we now call the "old" UI. In mid-2022, Spotify started experimenting with some search bar changes. Towards the end of 2022 they were testing a new left sidebar and in 2023, a new right sidebar. The updated left/right sidebars are what we are calling the "new" UI.
From late 2022 through mid-2023, both the old and new UIs were available in the app and could be controlled via Spotify A/B testing (or through dev mode and mods like SpotX/etc). But starting with v1.2.14.x, the "old" UI was removed from the client and no longer an option. Spotify v1.2.13.661.ga588f749 is the last version which could use the "old" UI.
If a user sets the -o
option with v1.2.14+, SpotX-Bash
will report an error about the detected client version no longer supporting the old UI ( then continue running the rest of the script). Users who prefer the "old" look should use v1.2.13.661.ga588f749 or earlier and NOT update the client. Mac users can have SpotX-Bash
block Spotify's built-in auto-updates. Linux users will need to look into their distro package manager (or other installation method) to see how to avoid updates.
Ideally, most issues should be unrelated to SpotX-Bash
directly and, instead, are issues between Spotify itself and the computer it's installed on. To rule out SpotX-Bash
issues, a full uninstall of Spotify and reinstallation of Spotify (without applying SpotX-Bash
) should be attempted to confirm where the issue starts. All tests should be conducted on the exact same desktop client version to avoid missing Spotify version-specific bugs which may get blamed on SpotX-Bash
.
See the TROUBLESHOOTING section of the wiki for more info.
Spotify officially supports installations with Snap via Snap Store and DEB via APT, however, Snap installations are NOT supported by SpotX-Bash -- see here more info.
You can visit Spotify's Linux download page for Debian / Ubuntu / APT-based instructions or use SpotX-Bash to install the APT-based client variant. While SpotX-Bash will only install the DEB Spotify client on APT-based distros, it can still patch other distro/client variants after the user first installs Spotify.
Testing branch:
bash <(curl -sSL https://spotx-official.github.io/run.sh) --installdeb
Stable branch:
bash <(curl -sSL https://spotx-official.github.io/run.sh) --installdeb --stable
Other distros or client variants will have their own specific methods of installation which all repackage the official snap or deb to work, some methods are covered below. Use your search engine of choice if more info is needed -- it's your job to install Spotify, SpotX-Bash
's to patch it once installed. SpotX-Bash
supports patching all* installation methods outside of Snap.
- Flatpak is a distro-neutral installation method, the Spotify install is based on the Spotify snap file with some additional patches applied.
- Red Hat/Fedora-based distros using RPM-based installations can use RPM Fusion repos.
- Arch-based users can install using AUR/pacman/spotify-launcher.
*nixOS has a unique way of isolating their Spotify installation. An Issue was raised on this topic and several workarounds were mentioned (though perhaps not ideal). A specific nixOS fix/workaround will likely not be added directly to SpotX-Bash itself. Using the Flatpak build on nixOS is another alternative.
Spotify does not officially list system requirements however they only build for x86_64 (64-bit) machines and require client version 1.1.59.710
and higher. As of May 2024 and the latest client version, 1.2.31.1205
, the Spotify repo lists the following:
Depends: libc6 (>= 2.30), libasound2, libatk-bridge2.0-0, libatomic1, libcurl3-gnutls, libgbm1, libglib2.0-0, libgtk-3-0, libnss3, libssl3 | libssl1.1 | libssl1.0.2 | libssl1.0.1 | libssl1.0.0, libxshmfence1, libxss1, libxtst6, xdg-utils, libayatana-appindicator3-1
Recommends: libavcodec58 | libavcodec-extra58 | libavcodec57 | libavcodec-extra57 | libavcodec-ffmpeg56 | libavcodec-ffmpeg-extra56 | libavcodec54 | libavcodec-extra-54, libavformat58 | libavformat57 | libavformat-ffmpeg56 | libavformat54
Suggests: libnotify4
No, SpotX-Bash
does not support Spotify from Snap.
Spotify from Snap is a read-only image file which requires additional steps and dependencies if trying to modify the app. SpotX-Bash
does support Spotify installs using Flatpak or distro-specific installation methods. If Snap installation is preferred, there are Spotify Snap files pre-patched with SpotX-Bash
located in the SpotX Telegram community.
Spotify's official download page can be found here.
SpotX-Bash
has the option to download and install the official Spotify desktop client, downloaded directly from Spotify's CDN. You can use the --installmac
option or enable interactive mode (-i
) to have SpotX-Bash
download and install the latest SpotX-Bash
-supported Spotify version or use -V [version]
option while specifying a version number to choose a previous Spotify version. After SpotX-Bash
downloads and installs Spotify it will continue with the usual patches it performs on the installed client.
The following command installs the latest available version for your OS:
bash <(curl -sSL https://spotx-official.github.io/run.sh) --installmac
The following command installs a specific version (1.2.20.1218 is used as an example):
bash <(curl -sSL https://spotx-official.github.io/run.sh) -V 1.2.20.1218
As of May 2023, Spotify has disabled v1.1.58.820
and below. Therefore, OS X 10.11 or higher is required to use the official desktop client.
As of May 2024, v1.2.38.720 and higher now requires macOS 11+.
The last version of Spotify to work with OS X 10.11/macOS 10.12 is 1.1.89.862
.
The last version of Spotify to work with macOS 10.13/10.14 is 1.2.20.1218
.
The last version of Spotify to work with macOS 10.15 is 1.2.37.701
.
SpotX-Bash will automatically install the latest supported version supported by your OS by using the --installmac
argument with the script.
SpotX-Bash
patches the client in various ways to enable its features. Depending on your version of macOS and your specific security settings related to macOS Gatekeeper and System Integrity Protection, modifying the client may cause various macOS protections to trigger and not launch the app. To bypass this potential issue, SpotX-Bash
, by default, uses codesign to re-sign the Spotify desktop app after SpotX-Bash
has modified it which should then make macOS "happy" and launch the modified app without issue.
You can read a more detailed breakdown of this information in the Discussions section of this repo.