Skip to content

docs(development/spotify-cli-flags): update info #163

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Feb 3, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 101 additions & 45 deletions docs/development/spotify-cli-flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,104 @@ title: Spotify CLI Flags
description: 🚩 Flags to alter the behavior of the Spotify.
---

| Flag | Description |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--uri=<uri>` | Start the client normally, but automatically navigate to the URI when initialized. |
| `--protocol-uri=<uri>` | Identical to --uri, but only used from the Windows protocol handler, so we can apply extra security restrictions. |
| `--mu=<value>` | Start with a special cache directory. Allows you to run multiple clients at the same time. Value can be anything (will be used as part of the cache name). |
| `--username=<username>` | Use to automatically sign in on startup. Use together with `--password`. |
| `--password=<password>` | Use to automatically sign in on startup. Use together with `--username`. |
| `--cache-path=<path>` | Use as root for the cache directory. |
| `--log-file=<path>` | Save log output to file (extension needs to be '.log'). |
| `--trace-file=<path>` | Save a trace file to this path. |
| `--show-console` | Show more log output. |
| `--allow-upgrades` |
| `--app-directory=<path>` | Specify Apps directory |
| `--app-icon-overlay` |
| `--apr` |
| `--autostart` |
| `--bridge-log-filename` |
| `--enable-audio-graph` |
| `--enable-developer-mode` |
| `--experimental-languages` |
| `--trigger-ta-crash` |
| `--experimental-network` |
| `--force-auto-update` |
| `--connect-debug-level` |
| `--immediate-widevine-cdm-download` |
| `--log-detailed-request-account` |
| `--append-log-file` |
| `--disable-crash-reporting` |
| `--transparent-window-controls` | Make window control box semi-transparent. Only works on Windows |
| `--maximized` |
| `--minimized` | Start the app with the window minimized. Only works on Windows. |
| `--performance-tracing` |
| `--remote-app-config` |
| `--product-version` |
| `--remote-debugging-port=<port>` | Enable remote debugging |
| `--test-auto-update-success-file-path` |
| `--update-immediately` |
| `--upgrade-failed` |
| `--weblogin-endpoint` |
| `--disallow-multiple-instances` |
| `--force-cef-http` |
| `--startup-success-file-path` |
| `--update-endpoint-override` |
| `--minimum-update-request-interval` |
| `--disable-update-restarts` |
## List of flags

**When adding flags to your spicetify config, separate each one with `|`.**

| Flag | Description |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--allow-upgrades` | |
| `--append-log-file` | |
| `--app-directory=<path>` | Specify the "Apps" directory path. Used by spicetify for modyfing Spotify from Microsoft Store. |
| `--app-icon-overlay` | |
| `--apr` | |
| `--audio-api` | |
| `--autostart` | |
| `--bridge-log-filename` | |
| `--cache-path=<path>` | Use as root for the cache directory. |
| `--campaign-id` | |
| `--connect-debug-level` | |
| `--disable-cef-views` | |
| `--disable-crash-reporting` | |
| `--disable-update-restarts` | |
| `--disallow-multiple-instances` | |
| `--enable-audio-graph` | |
| `--enable-cef-views` | |
| `--enable-chrome-runtime` | Switches runtime from Alloy to Chrome on Spotify versions below 1.2.34. See [this issue on GitHub](https://github.com/chromiumembedded/cef/issues/3685) for details about the differences. |
| `--enable-developer-mode` | Used to enable the developer mode like `spicetify enable-devtools`. Stopped working long time ago. |
| `--event-sender-send-interval` | |
| `--experimental-languages` | |
| `--experimental-network` | |
| `--force-auto-update` | |
| `--force-cef-http` | |
| `--immediate-widevine-cdm-download` | |
| `--log-detailed-request-account` | |
| `--log-file=<path>` | Save log output to file (extension needs to be '.log'). |
| `--maximized` | |
| `--minimum-update-request-interval` | |
| `--minimized` | Start the app with the window minimized. Only works on Windows. |
| `--mu=<value>` | Start with a special cache directory. Allows you to run multiple clients at the same time. Value can be anything (will be used as part of the cache name). |
| `--password=<password>` | Use to automatically sign in on startup. Use together with `--username`. No longer works. |
| `--performance-tracing` | |
| `--product-version` | |
| `--protocol-uri=<uri>` | Identical to --uri, but only used from the Windows protocol handler, so we can apply extra security restrictions. |
| `--remote-allow-origins=<url>` | Required to use remote debugging since Spotify 1.2.8 due to security changes in Chromium 111. Example configuration: `--remote-debugging-port=8088 \| --remote-allow-origins=http://localhost:8088`. |
| `--remote-app-config` | |
| `--remote-debugging-port=<port>` | Enable remote debugging. |
| `--remember-cmd-login` | |
| `--show-console` | Show more log output. |
| `--startup-success-file-path` | |
| `--test-auto-update-success-file-path` | |
| `--trace-file=<path>` | Save a trace file to this path. |
| `--trigger-ta-crash` | |
| `--update-endpoint-override=<url>` | Can be used to disable Spotify updates. Example configuration: `--update-endpoint-override=http://localhost`. |
| `--update-immediately` | |
| `--upgrade-failed` | |
| `--uri=<uri>` | Start the client normally, but automatically navigate to the URI when initialized. |
| `--use-event-sender-test-transport` | |
| `--user-agent-product` | |
| `--username=<username>` | Use to automatically sign in on startup. Use together with `--password`. No longer works. |
| `--weblogin-endpoint` | |

**When added to spicetify config, the flags will only be applied when you launch Spotify using spicetify.** But you can also add them to the Spotify shortcut (on Windows) or `.desktop` file (on Linux) and use it to launch Spotify.

Most of the flags with some descriptions are taken directly from the Spotify executable.

## See also

- [General documentation on Chromium command-line switches](https://www.chromium.org/developers/how-tos/run-chromium-with-flags)

- [List of Chromium command-line switches](https://peter.sh/experiments/chromium-command-line-switches)

- List of CEF command-line switches in the source code: [1](https://github.com/chromiumembedded/cef/blob/master/tests/shared/common/client_switches.cc), [2](https://github.com/chromiumembedded/cef/blob/master/libcef/common/cef_switches.cc)

Don't expect every switch to work.

## Experimental features

Some Chromium experimental features can be enabled with `--enable-features=<comma-separated feature list>`, some require both a switch and a feature. Smooth scrolling is an example: `--enable-smooth-scrolling | --enable-features=WindowsScrollingPersonality`.
There is no list of experimental features and they vary from version to version.

To enable experimental features in **Spotify newer than 1.2.33**:

1. Launch it in the developer mode
2. Press *Ctrl + Shift + T*
3. Press *Ctrl + N*
4. Navigate to the `chrome://flags` page using the address bar
5. Enable the ones you want
6. Press the "Relaunch" button

If you are using **Spotify older than 1.2.34**:

1. Launch it with the `--enable-chrome-runtime` switch and developer mode enabled
2. Press *Ctrl + Shift + T*
3. Press *Ctrl + N*
4. Navigate to the `chrome://flags` page using the address bar
5. Enable the ones you want
6. Press the "Relaunch" button
7. Restart Spotify with the `--enable-chrome-runtime` switch and developer mode enabled
8. Press *Ctrl + Shift + T*
9. Click the `chrome://version` link
10. Copy and paste the flags between `--flag-switches-begin` `--flag-switches-end` into your spicetify config and/or the shrotrcut/`.desktop` file you use to launch Spotify

The `--enable-chrome-runtime` switch and developer mode are not required for experimental features to work.