Skip to content

Releases: spicetify/cli

v2.5.0

27 Jun 16:04
Compare
Choose a tag to compare

Change

  • Custom assets location: in previous version, Spotify allowed us to put assets some extra files supporting theme in "glue-resources" folder and access them via url "https://local_resources_host/". From v1.1.62, the feature was taken away so this location change is to reflect that. Custom assets are now placed in "xpui" and can be accessed directly.

For example, my theme requires "placeholder.svg" file. To make it available to use, put it in assets folder and make sure overwrite_assets field in config file is on.

MINE
├───assets
│   └───placeholder.svg
├───colors.ini
└───user.css

In CSS, you can query them as if it's a local file:

.playlist {
    background-image: url("./placeholder.svg");
}

Or Javacsript:

const svgContent = await fetch("placeholder.svg")

You can take advantage of this to replace stock assets, change some images files that you don't like how they look. If you just want add extra files, it's best practice to put your files in a deeper folder so you don't accidentally replace anything.

Fix

  • Missing login page
  • home_config and sidebar_config should definitely work stably now. Try them out if you haven't.

Make sure you run this after upgrading:

spicetify restore backup apply

Notes to Dribbblish theme users: Update the theme, there are some major changes.

v2.4.0

25 Jun 18:11
Compare
Choose a tag to compare

Fix

  • new-releases: Relative date doesn't save
  • fullAppDisplay: append to body directly instead of video container
  • popupLyrics: script path for worker
  • "appchange" event for Home page
  • sidebar_config: Items overlap with scrollbar

Change

  • Some colors and CSS tunes for SpicetifyDefault theme.
  • Refactor Spicetify.Menu and Spicetify.ContextMenu:
    • Spicetify.ContextMenu.SubMenu no longer has icon parameter.
    • Note for extension makers: All of public interfaces are still the same, some extra method are added. But if you are using internal members, there are some changes internally so you might want to double check.

If you had problem with home_config in v2.3.0, they should be fixed now. After upgrade spicetify, please run:

spicetify restore backup apply

v2.3.0

22 Jun 18:21
Compare
Choose a tag to compare

Add

  • Additional option "sidebar_config": Enable ability to arrange and hide items on sidebar.
    • Turn on "Sidebar config" mode in Profile menu (top right button with your username), then hover on sidebar items (not playlists) to show customization buttons.
    • There are 3 regions: Stick, Normal and Hidden. Items in Stick region would stay up top and on top all the time. Items in Normal region would scroll when you scroll on the sidebar.
    • Remember to turn off "Sidebar config" mode after you finish customizing.

image

  • Additional option "home_config": Enable ability to arrange sections in Home page.
    • Navigate to Home page, turn on "Home config" mode in Profile menu, then hover on sections to show customization buttons.
    • There are 3 regions: Stick, Normal and Lowered. Items in Stick region would stay up top and can be re-arrange. It's useful for some sections you particular like but Spotify somehow put them way too far down. Item in Normal region would stay as they are originally and can't be re-arranged. Items in Lowered region would be pushed to bottom. Put sections you don't like in there.
    • Some sections are always available in Home page. Some sections are more situational and dynamic (e.g: Christmas, genres, ...), their availabilities depend on when Spotify wants them to promote to you. And I have no control over that, so don't report bug when one of your sticky sections disappears.

image

  • Spicetify.Locale API: Get UI text using stock i18n.
    • Custom apps names and a few UI text in custom apps are also applied Spicetify.Locale. They should show up in your language now.

Fix

  • Patch fix for v1.1.62
  • Lyrics Plus app: add Genius new page layout parser.

v2.2.7

20 Jun 12:19
Compare
Choose a tag to compare

Change

  • Reddit app: display posts as soon as possible, instead of waiting until all post are fetched. Useful for users who live in country with garbage internet like Australia.
  • Lyrics Plus app: scroll to top when track changes (in unsynced and genius mode).
  • Reddit, Lyrics Plus, New Releases app: Move config menu button into Profile menu (top right button with your username).
  • Reddit, Lyrics Plus app: top bar items and sort popup menu should look like native popup menu now.
  • Spicetify.Player.addEventListener: re-add "appchange" event. Please revise global.d.ts for updated documentation.

Fix

  • Lyrics Plus app: colorful background bug
  • Lyrics Plus app: Genius alternative format causes repeated annotation bug
  • Bookmark ext: add bookmark playlist from context menu and bookmark bug from context menu in friends sidebar
  • Shuffle+ ext: multiple track selections shuffle

Please make sure you run:

spicetify restore backup apply

after upgrading spicetify to receive these new changes and fixes.

v2.2.6

06 Jun 07:35
Compare
Choose a tag to compare

Add

  • Bookmark extension: bookmark from context menu #731

  • New Releases app: new configurations

    • Date locale: Override date language and format. You should input a locale code if you want it to be in your language or a specific flavor of your language. #712
    • Relative date: Switch to relative date format, e.g.: "Today", "Yesterday", "2 Days ago", ...
  • Spicetify.Topbar API: Easier way for your extension to add a button in top bar. Check example usage in default extensions.

Change

  • Thinner icons for lyrics-plus and new-releases #706 (Thanks @JulienMaille)
  • Pop modal Close button color #707 (Thanks @JulienMaille)
  • Lyrics Plus app: Fallback queries for Genius when title has extra information like "feat." or "Remaster". #703
  • Lyrics Plus app: Genius annotations show underline when hover on #736

Fix

  • Submenu causes crash when user hits a keyboard modifier
  • New Release ext: Podcast fetch cause crash #737
  • Lyrics Plus app: Genius annotation blocked mouse click #714
  • Full App Display ext: Edge case when there is no local file album title, uri #704
  • Tab bar in reddit and lyrics-plus should be more adaptive now. #677

v2.2.5

30 May 10:01
Compare
Choose a tag to compare

Add

  • Re-add Bookmark extension: Store and access pages, play tracks or tracks in specific time. Useful for who wants to check out an artist, album later without following them or writing their names down. Tracks are context-awared, accessing or playing them will put it to context that it was bookmarked from.
    image

  • Noisy background option for Lyrics Plus

Fix

  • Fatal bug when generating spicetify-config.json #699
  • Login page no longer be modded #697

Previous release note (in case you missed it): https://github.com/khanhas/spicetify-cli/releases/tag/v2.2.4

v2.2.4

29 May 16:12
Compare
Choose a tag to compare

Add

  • New custom app New Releases: Aggregate all fresh releases from your followed artists and podcasts. Release types filter, time range are customizable via Settings menu. Remember to hit Refresh after configuring.
    image
  • Lyrics Plus:
    • Settings menu: You can customize colors, swap providers priority and input Musximatch token now.
    • Version selector for Genius mode: If there are multiple versions or translations found, just select from drop down menu and it will switch to chosen version.
      image
  • Reddit, New Releases apps' cards can be right clicked to open their context menus now
  • Generate spicetify-config.json file in app folder. It contains current theme name, current color scheme name and all color schemes. #624
const spiceConfig = await fetch("spicetify-config.json").then(a => a.json);
console.log(spiceConfig.theme_name, spiceConfig.scheme_name, spiceConfig.schemes);

Fix

  • A few bug with Musixmatch and Genius verified annotation in Lyrics Plus
  • Full App Display progress bar length inconsistency #651 Thanks @BluTree
  • Typos in Lyrics Plus #654 Thanks @Kamefrede
  • Webnowplaying info delayed bug when playing on another device

Improvement

  • Shuffle+ fetch playlist, library way faster by using protobuf request.
  • Spicetify.PopupModal can mount a React element as now (check New Release and Lyrics Plus "Settings.js" for example usage)

Patch fix for v1.1.59.714; New Custom app

22 May 06:07
Compare
Choose a tag to compare

Fix

  • Patch fix for v1.1.59.714: CSS names should be normal now and other parts rely on translated CSS should work

  • Patch fix for v1.1.56: Mainly for Linux user which Spotify version is still stuck at v1.1.56. All spicetify functionalities should work now.

Upgrade spicetify, reinstall Spotify then run spicetify backup apply.
Please close your Issue if this version fix your problem.

Add

v2.2.2

19 May 01:55
Compare
Choose a tag to compare

v2.1.0 release note: https://github.com/khanhas/spicetify-cli/releases/tag/v2.1.0
v2.2.1 release note: https://github.com/khanhas/spicetify-cli/releases/tag/v2.2.1
Please stop making new Issue about your theme for legacy Spotify doesn't work on new Spotify. I already mentioned it multiple times why it happened and there is nothing I can do about it.

Fix

  • CSS variables for some extensions and reddit app

Add

"Patch" function: find and replace app assets for more flexible modification. Define regexp find string and replace string in [Patch] section in config file. They should follow this form:

  • Regexp find key: <file>_find_<index>
  • Replace key: <file>_repl_<index> or replace all key: <file>_repl_all_<index>

"file" can be any assets files in $spotify_location/Apps/xpui folder
"index" should be unique for each pair of find and replace.
If both "repl" and "repl_all" are defined, "repl_all" is prioritized.
Capturing regexp group is also supported, you can specify group in replace string as ${0}, ${1}, ${2}, ....
For example, "Your Library" button on sidebar leads to Playlists collection by default and I don't like like that. I want it to lead to my saved Albums page instead:

[Patch]
xpui.js_find_1  = to:"/collection"
xpui.js_repl_all_1  = to:"/collection/albums"

After I run spicetify apply, all occurrences of to:"/collection" would be changed to to:"/collection/albums". Which means "Your Library" page is no longer follow its default behaviours, that opens its first tab "Playlists". Instead, it starts at Albums tab. You can tweak it to lead to "/collection/artists" or "/collection/podcasts" if you prefer.

v2.2.1

18 May 17:07
Compare
Choose a tag to compare

Previous release note: https://github.com/khanhas/spicetify-cli/releases/tag/v2.1.0

Change

  • Colors names from spicetify v1 are no longer relevant and somewhat misleading to new theme makers. Since themes designed for legacy Spotify are not possible to port over, backward compatibility is out of the table. I decided to completely change them to more accurate and shorter names.

For example, this is one of color schemes of SpicetifyDefault with new colors names:

[pink-white]
; Pink on White background
text               = 000000
subtext            = 3D3D3D
main               = FAFAFA
sidebar            = FAFAFA
player             = FAFAFA
card               = ffd5d1
shadow             = F0F0F0
selected-row       = 404040
button             = FE6F61
button-active      = FE6F61
button-disabled    = 535353
tab-active         = e9e9e9
notification       = FE6F61
notification-error = e22134
misc               = BFBFBF

Moreover, CSS variables also have new form: --spice-<color key> for hex color code and --spice-rgb-<color key> for rrr,ggg,bbb format.
Example CSS using new color CSS variables:

.main-contextMenu-menu {
    background-color: var(--spice-button);
    color: var(--spice-subtext);
    border-bottom: 1px rgba(var(--spice-rgb-selected-row), 0.5);
}

Note that these color keys above are base keys, it's essential for UI to display correctly. But you can always extends to as many colors key as you want in your color scheme sections. And CSS variables forms above are still applicable.

Add

  • Custom app Reddit: Fetch and display shared playlists/albums/tracks from subreddits. Posts can be accessed and play immediately via play button. Unfortunately, context menu is not yet implemented.
    You can add, remove and arrange subreddits in config menu (pen icon button). Sorting options are also available on the right of app header.

image

After you upgrade to this spicetify version, run spicetify restore backup once.
Then run spicetify config custom_apps reddit to add custom app "reddit" to config file
Finally, run spicetify apply and enjoy.

  • Exposed Spicetify.React and Spicetify.ReactDOM are ready to use to create, render and mount react components.

  • Automatically remove Star Wars easter egg, it tracks key stroke and scan URIs too frequently.

Fix

  • Search input visibility
  • fullAppDisplay.js high GPU usage. Using canvas to draw background, blur transition is butter cutting smooth.
  • Some RTL rule removals