cli

Command-line tool to customize Spotify client. Supports Windows, MacOS, and Linux.

LGPL-2.1 License

Downloads
640
Stars
17.5K
Committers
102

Bot releases are visible (Hide)

cli -

Published by khanhas almost 6 years ago

Adds

  • Extension WebNowPlaying Companion (webnowplaying.js): Fetch track information, player state and control player via WebSocket protocol (localhost:8974).

This extension is made specially for Windows Rainmeter users to use along with WebNowPlaying plugin.
But MacOS and Linux users/developers can make a simple daemon program to receive information/send command on your will without touching Spotify Web API.

Update

  • SpicetifyDefault CSS: Remove obsoleted rules
cli -

Published by khanhas almost 6 years ago

Adds

  • Dark variant for SpicetifyDefault theme. In color.ini, Comment out Pink/White block and uncomment Green/Dark blue block, then run spicetify update to use dark theme.
  • More user friendly info and warning for commands.
  • Fatal on every IO operations error.

Note for Linux:

Arch and its variant (Spotify installed from AUR)

To have permission write on Spotify app files, remember to run:

sudo chmod 777 /usr/share/spotify -R

before applying Spicetify.

Ubuntu (Spotify installed from Snap)

Currently I do not know how to gain write permission on Spotify files since I'm not familiar with mount system and can't find any workaround. If you somehow manage to add or delete files in /snap/spotify/current/usr/share/spotify directory, please do post an Issue with step by step how you do it, any help would be appreciated.

cli -

Published by khanhas almost 6 years ago

Add

  • Config prefs_path: Unlike Windows and MacOS, prefs file location in Linux isn't in fixed place. It largely depends on how Spotify was installed, from debian package, AUR or Snap or other package manager I would never have chance to test. So it's best to have a field in config to set its path manually. Although so, Spicetify does automatically check in few places, if it doesn't find, you can try to find it by running this command in home directory:
find | grep "spotify/prefs$"

Note for Linux user: Spotify from debian package hasn't been updated for a while (1.0.80 compares to 1.0.96 with massive UI elements and Apps structure changes) and it's hard for me to maintenance both new and old version. So try to install the newest one from Snap or AUR before using Spicetify.

  • API Spicetify.Menu: Easier for extension author to create and register custom menu item in Profile menu. Supports single toggle item and sub menu item to contain 2 or more toggles. Check out its documentation in global.d.ts

Change

  • API Spicetify.LibURI to Spicetify.URI
cli - Inject Extensions

Published by khanhas almost 6 years ago

Adds

  • Supports inject extension (Javascript script) to extend client functionalities, manipulate UI.
    To use extensions, add your desired extension names in config, separated them by | character.
    Example:
[AdditionalOptions]
...
extensions                   = autoSkipExplicit.js|queueAll.js|djMode.js|shuffle+.js|trashbin.js

Extension files can be store in:

  • Extensions folder in Home directory:
    Windows: %userprofile%\.spicetify\Extensions\
    Linux: ~/.spicetify/Extensions/
    MacOS: ~/spicetify_data/Extensions
  • Extensions folder in Spicetify executable directory.
    If there are 2 extensions having same name, extension in Home directory is prioritized.

Some Spotify API are leaked and put in global object Spicetify. Check out global.d.ts for API documentation.

cli -

Published by khanhas almost 6 years ago

Add:

  • Additional options:
experimental_features
    Allow access to Experimental Features of Spotify. Open it in profile menu (top right corner).

fastUser_switching
    Allow change account immediately. Open it in profile menu.

home
    Enable Home page. Access it in left sidebar.

lyric_always_show
    Force Lyrics button to show all the time in player bar.
    Useful for who want to watch visualization page.

lyric_force_no_sync
    Force displaying all of lyrics.

made_for_you_hub
    Enable Made For You page. Access it in left sidebar.

radio
    Enable Radio page. Access it in left sidebar.

song_page
    Clicks at song name in player bar will access that song page
    (instead of its album page) to discover playlists it appearing on.

visualization_high_framerate
    Force Visualization in Lyrics app to render in 60fps.

Enable them in config file and run spicetify apply again.

  • Watch mode: detect change in user.css and color.ini of your theme and automatically update. Run spicetify watch.
    You can also update manually by running spicetify update.
    Remember to reload your Spotify client to receive visual update.

Change:

  • MacOS: Spicetify storage folder path: ~/.spicetify -> ~/spicetify_data
    And user do not need to run commands with sudo anymore
    Because of this change, MacOS user please run spicetify restore before update to this version, manually delete ~/.spicetify folder. Then update spicetify and run backup, apply again.
cli - First release

Published by khanhas almost 6 years ago

Features:

  • Preprocesses app files:
    • Disable Sentry
    • Disable UI Logging
    • Remove Right-To-Left CSS rules
    • Expose APIs
  • Customize: Change colors, inject CSS