Releases: spicetify/cli
spicetify v2 official release
Release note
Spotify version 1.1.59 recently is rolled out for all users and it not longer contains legacy apps assets. If your Spotify is automatically upgraded and you wish to continue using legacy interface, downgrade using installer from third party source, then turn off auto-update. And you can continue to use spicetify v1.2.1 with community theme, extensions and custom apps support.
-
From v2.0, spicetify only supports new Spotify (v1.1.56 or later). Because of new design infrastructure, all themes made for legacy Spotify are incompatible and nothing I can do about it.
-
Elements and CSS class names are translated to readable and consistent form. You can start making new theme if you want to. Default theme "SpicetifyDefault" included in package consists of various color schemes, try them out and make your own.
-
Spicetify APIs are mostly compatible with previous version. Please revise existing extensions and
global.d.ts
for updated documentation. -
Default extensions include in package:
-
autoSkipExplicit.js
: Auto skip explicit tracks. Turn on in profile menu. -
autoSkipVideo.js
: Auto skip videos -
fullAppDisplay.js
: Full app artwork display. Access display mode via icon on top bar.
Right click while in display mode to open config menu. Double anywhere to close. -
keyboardShortcut.js
: Add a few convenient keyboard shortcut and Vim navigation mode (hit F) -
loopyLoop.js
: Loop over a portion of track. Right click at progress bar to open up menu.
-
NEW
popupLyrics.js
: Picture-in-picture window displays lyrics.
Click at microphone icon on top bar to open the window. Right click at same icon to open config menu.
Turn off service that you're not comfortable to use or not available in your region. Swap their positions to priotise which service to try first.
-
shuffle+.js
: True shuffle with no bias.
Right click at playlist/album/artist/podcast and choose "Play with Shuffle+".
NEW You can turn on "Auto shuffle" to automatically play with shuffle+, no need to right click anymore. Just hit play button while browsing for playlists, albums, shows.
NEW By default, Shuffle+ plays artist's top 10 tracks. Turn on "Shuffle artist discography" to play their entire album discography.
-
trashbin.js
: Throw artists and tracks to trash bin and never hear them ever again (automatically skip).
Right click at artist or track and choose "Throw to Trashbin" in context menu. You can take them out of trash bin also via right click menu. -
webnowplaying.js
: Specifically made for Rainmeter community. Send track metadata and control player.
-
-
Custom app: it's still possible to make and inject custom app with spicetify. But app has to built from ground up and app developer has to be familiar with React JS.
Previous version default app "reddit" and "genius-spicetify" are not possible to port over at the moment. -
New config file name is "config-xpui.ini". Please run
spicetify -c
to know where it is.
To install, please follow instructions in wiki
If you already had spicetify before, please run spicetify upgrade
.
Note: Windows user, please just use Powershell method. I don't have management over Choco and Scoop packages to update them right now.
v2.0.1
Fix
- webnowplaying.js: Fix misspelt API name
- popupLyrics.js credit
Previous release note: v2.0.0
To install, please use the same install script but annotate version parameter:
Windows:
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/khanhas/spicetify-cli/master/install.ps1" -OutFile $env:TEMP\install.ps1
Invoke-Expression "$env:TEMP\install.ps1 2.0.1"
Linux/MacOS:
curl -fsSL https://raw.githubusercontent.com/khanhas/spicetify-cli/master/install.sh -o /tmp/install.sh
sh /tmp/install.sh 2.0.1
Initial support for XPUI
From v2.0.0, Spicetify solely works on XPUI interface only and is incompatible with legacy one. If you prefer legacy Spotify with fully themes, extensions, custom app support, please use Spicetify v1.2.1. This version is still experimental and there are a lot of work in progress:
-
Spicetify APIs are mostly implemented and are somewhat compatible with previous version. There are a few important changes you should know:
Spicetify.CosmosAPI
is replaced withSpicetify.CosmosAsync
. Please take a look at existing extensions and documentation in global.d.ts file to know how to use and modify your extensions accordingly.Spicetify.ContextMenu
is partly implemented, onlyItem
is usable.Spicetify.Menu
is not implemented.Spicetify.BridgeAPI
,Spicetify.LiveAPI
are deprecated.Spicetify.getAblumArtColors
is deprecated, please useSpicetify.colorExtractor
instead.Spicetify.PlaybackControl
has completely new functions set. They are straight forward, easier to use and requires less parameters. Please revise global.d.ts for its new documentation.
-
New APIs:
Spicetify.Mousetrap
: Keyboard shortcut library. Documentation: https://craig.is/killing/miceSpicetify.Platform
: Contains vast array of Spotify internal API, I don't have time to document them, please explore in devtool Console.
-
Elements class names are translated to more readable forms, hopefully they are consistent across versions. You can start working on your theme. But I have to remind you that your theme from legacy Spotify will not be compatible, hence you have to build new one from ground up.
-
Default extensions are partly working. Not working ones are temporarily removed, they are probably added later if I have time to update them.
-
Reddit app is removed. I haven't found a replacement for custom apps since new Spotify does not rely on iframe anymore.
-
New config file should locate at same place as your previous config file but its name now is
config-xpui.ini
To install, please use the same install script but annotate version parameter:
Windows:
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/khanhas/spicetify-cli/master/install.ps1" -OutFile $env:TEMP\install.ps1
Invoke-Expression "$env:TEMP\install.ps1 2.0.0"
Linux/MacOS:
curl -fsSL https://raw.githubusercontent.com/khanhas/spicetify-cli/master/install.sh -o /tmp/install.sh
sh /tmp/install.sh 2.0.0
v1.2.1
v1.2.0
Add:
-
FullAppDisplay extension: Options to display album title, icons (thanks @JulienMaille), show all artists (@OlegWock) and switch to full screen mode (thanks @diegodalbosco).
Full screen mode can be activate with hotkey F11 (thanks @mendelsimon). -
NewReleases extension: Options to show podcast only and ignore all new release (thanks @yougotwill).
-
Shuffle+ extension: Support for nested folders (thanks @iurimateus).
-
Huge improvement on Vim mode of KeyboardShortcut extensions: Keystroke popups is positioned correctly, play buttons in album pages are now recognised (they used to be hidden and therefore unrecognized by the extension).
-
New extension LoopyLoop: File name:
loopyLoop.js
Provide ability to mark start and end points on progress bar and automatically loop over that track's portion.
spicetify config extensions loopyLoop.js
spicetify apply
Fix:
-
FullAppDisplay: Undefined artist bug (thanks @kion).
-
FullAppDisplay: Wrong song duration after skipping (thanks @LambArchie).
-
NewRelease: Fix issue when podacast wasn't marked as listened (thanks @OlegWock).
-
Clean up redundant code (thanks @bakesnake).
-
Automatically recognize new Windows Store Spotify location.
-
Stop
color
command proceeding when there is no theme configured. -
Ignore fatal error from fetching new spicetify-cli release and proceed.
v1.1.0
Add:
- Command
upgrade
: automatically fetch and upgrade spicetify to latest release. - Config setting
check_spicetify_upgrade
: notify user whenever there is new spicetify release.
It's off by default so please runspicetify config check_spicetify_upgrade 1
to turn on. XDG_CONFIG_HOME
support for MacOS- Extension
bookmark.js
: Now store track context. When user open track link, they will be navigated to playlist/album context that track was played from. #233 - Extension
newRelease.js
: Now show release type (Album/EP/Single/Episode) #247
Command backup
and apply
now work slightly faster thanks to goroutine implementation.
v1.0.2
v1.0.1
Nothing changed from last release, I just forgot to push 2 last commits before making new release.
Changelog v1.0.0
v1.0.0
Add
-
Windows Store Spotify support: For users who have trouble installing normal Spotify version. If you are already using normal Spotify, there is no reason to install Windows Store Spotify because of this.
-
Disable Web UI permanently by default. Since Web UI is impossible to theme or expose API, I prevent it to load completely. If you are fell into A/B Testing group by Spotify, this
spicetify
update would revert you back to normal UI. Please runspicetify restore backup apply
to apply the change. -
Preprocess disable_upgrade_check: Prevent Spotify checking new version status and notifying visually. It is useful for users who deleted
SpotifyMigrator.exe
andSpotifyUpdate.exe
to stop Spotify automatic update. -
Live update: Automatically reload Spotify on change. Please add flag
-l
when running "watch":
spicetify watch -l
spicetify watch -e -l
- Extension New Release: Aggregate all new releases from favorite artists, podcasts. Setting menu could be opened by right clicking at Bell icon. To install, please run:
spicetify config extensions newRelease.js
spicetify apply
- Extension Bookmark: New version, no longer need companion custom app. To install, please run:
spicetify config extensions bookmark.js
spicetify apply
- Extension Full App Display: Minimal album cover art display with beautiful blur effect background. To install, please run:
spicetify config extensions fullAppDisplay.js
spicetify apply
Activating button locates in top bar. While in display mode, double click anywhere to exit. Right click anywhere to open setting menu.
- Config
spotify_launch_flags
: Specify commandline flags to launch/restart Spotify. Separate flags by|
character.
[Setting]
...
spotify_launch_flags = --transparent-window-controls | --remote-debugging-port=9222
- Javascript module path mapping: While developing extension as JS module, we had to specify path to compiled, transpiled JS file that is compatible with browser. Although it works completely fine in Spotify browser, it's hard for IDE like VSCode to know what does module contain and suggest developers usable functions or classes. So I added this niche little feature to automatically map package name to its correct path in final script. In your script, instead of using path to file like before, just use package name and add a comment before
import
line with this syntax for Spicetify to map it correctly. For example
import "./node_modules/match-sorter/dist/match-sorter.umd.js";
to
//spicetify_map{matchSorter from "match-sorter"}{"./node_modules/match-sorter/dist/match-sorter.umd.min.js"}
import matchSorter from "match-sorter";
Fix
Remove
- Custom app
Bookmark
: No long needed.
v0.9.9
Add
- Support custom colour key in
color.ini
:
Example:
In mycolor.ini
, I make a new keyheader_bg
with valueFF0000
underBase
color scheme:
[Base]
main_fg = FE6F61
secondary_fg = 3D3D3D
main_bg = FAFAFA
...
header_bg = FF0000
Then in user.css
, CSS variable --modspotify_header_bg
will be available to use:
.glue-page-header__full-description-overlay {
background-color: var(--modspotify_header_bg) !important;
}
-
API
Spicetify.Abba
: Fetch and overrides your A/B test flags. Documentation. -
Command-line flag
-n
or--no-restart
: Tell spicetify to not restart your Spotify client after finishingapply
orrestore
command.
Update
- Exposed
Spicetify
towindow.Spicetify
: When making custom apps, you can access Spicetify API viawindow.top.Spicetify
.
Fix
Spicetify.Menu
had cleaner injection. Items won't show up on other popup menus beside profile menu.PLAYLIST_V2 not supported
error inshuffle+.js
I just added integration with Musixmatch for my genius-spicetify
app. Try it out if you want to have synced lyric to sing along: https://github.com/khanhas/genius-spicetify