From d26adc66d50a9ec3e49b0e71458e5852de89accd Mon Sep 17 00:00:00 2001 From: Grigory Date: Wed, 29 Jan 2025 17:08:44 +0500 Subject: [PATCH 1/5] docs(development/spotify-cli-flags): update info 1. Sort flags alphabetically 2. Add info on how to use flags 3. Add new flags: `remote-allow-origins`, `enable-chrome-runtime`, `campaign-id`, `use-event-sender-test-transport`, `event-sender-send-interval`, `event-sender-suppress-backend-persistence`, `enable-cef-views`, `disable-cef-views`, `remember-cmd-login` 4. Add descriptions to: `enable-developer-mode`, `update-endpoint-override` 5. Update description for `app-directory`, `username`, `password` 6. Add links to lists of cmd switches 7. Add info about experimental features 8. Remove `transparent-window-controls` flag since it was removed from spotify --- docs/development/spotify-cli-flags.md | 144 ++++++++++++++++++-------- 1 file changed, 99 insertions(+), 45 deletions(-) diff --git a/docs/development/spotify-cli-flags.md b/docs/development/spotify-cli-flags.md index e3acff6e..a7d6f7cc 100644 --- a/docs/development/spotify-cli-flags.md +++ b/docs/development/spotify-cli-flags.md @@ -3,48 +3,102 @@ title: Spotify CLI Flags description: 🚩 Flags to alter the behavior of the Spotify. --- -| Flag | Description | -| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `--uri=` | Start the client normally, but automatically navigate to the URI when initialized. | -| `--protocol-uri=` | Identical to --uri, but only used from the Windows protocol handler, so we can apply extra security restrictions. | -| `--mu=` | 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=` | Use to automatically sign in on startup. Use together with `--password`. | -| `--password=` | Use to automatically sign in on startup. Use together with `--username`. | -| `--cache-path=` | Use as root for the cache directory. | -| `--log-file=` | Save log output to file (extension needs to be '.log'). | -| `--trace-file=` | Save a trace file to this path. | -| `--show-console` | Show more log output. | -| `--allow-upgrades` | -| `--app-directory=` | 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=` | 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` | +**When adding flags to your spicetify config, separate each one with `|`.** + +| Flag | Description | +| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--allow-upgrades` | | +| `--append-log-file` | | +| `--app-directory=` | 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=` | 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 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=` | 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=` | 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=` | Use to automatically sign in on startup. Use together with `--username`. No longer works. | +| `--performance-tracing` | | +| `--product-version` | | +| `--protocol-uri=` | Identical to --uri, but only used from the Windows protocol handler, so we can apply extra security restrictions. | +| `--remote-allow-origins=` | 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=` | Enable remote debugging. | +| `--remember-cmd-login` | | +| `--show-console` | Show more log output. | +| `--startup-success-file-path` | | +| `--test-auto-update-success-file-path` | | +| `--trace-file=` | Save a trace file to this path. | +| `--trigger-ta-crash` | | +| `--update-endpoint-override` | Can be used to disable Spotify updates. Example configuration: `--update-endpoint-override=http://localhost`. | +| `--update-immediately` | | +| `--upgrade-failed` | | +| `--uri=` | Start the client normally, but automatically navigate to the URI when initialized. | +| `--use-event-sender-test-transport` | | +| `--user-agent-product` | | +| `--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=`, 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. From 8224bbc35e136eb96d1f743035060f90caa75327 Mon Sep 17 00:00:00 2001 From: Grigory Date: Wed, 29 Jan 2025 18:51:19 +0500 Subject: [PATCH 2/5] add sub-header for the list --- docs/development/spotify-cli-flags.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/development/spotify-cli-flags.md b/docs/development/spotify-cli-flags.md index a7d6f7cc..6d6f93d6 100644 --- a/docs/development/spotify-cli-flags.md +++ b/docs/development/spotify-cli-flags.md @@ -3,6 +3,8 @@ title: Spotify CLI Flags description: 🚩 Flags to alter the behavior of the Spotify. --- +## List of flags + **When adding flags to your spicetify config, separate each one with `|`.** | Flag | Description | From 21efda8b9d2238ffffa7fd9c78e859c655e2efb4 Mon Sep 17 00:00:00 2001 From: Grigory Date: Wed, 29 Jan 2025 18:53:14 +0500 Subject: [PATCH 3/5] Update spotify-cli-flags.md --- docs/development/spotify-cli-flags.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development/spotify-cli-flags.md b/docs/development/spotify-cli-flags.md index 6d6f93d6..77b19276 100644 --- a/docs/development/spotify-cli-flags.md +++ b/docs/development/spotify-cli-flags.md @@ -101,6 +101,6 @@ If you are using **Spotify older than 1.2.34**: 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. +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. From c3c1a798c5def8b6ed04b0cd16a53de5b2431add Mon Sep 17 00:00:00 2001 From: Grigory Date: Wed, 29 Jan 2025 20:20:06 +0500 Subject: [PATCH 4/5] Update spotify-cli-flags.md --- docs/development/spotify-cli-flags.md | 108 +++++++++++++------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/docs/development/spotify-cli-flags.md b/docs/development/spotify-cli-flags.md index 77b19276..d826d2b4 100644 --- a/docs/development/spotify-cli-flags.md +++ b/docs/development/spotify-cli-flags.md @@ -7,60 +7,60 @@ description: 🚩 Flags to alter the behavior of the Spotify. **When adding flags to your spicetify config, separate each one with `|`.** -| Flag | Description | -| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `--allow-upgrades` | | -| `--append-log-file` | | -| `--app-directory=` | 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=` | 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 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=` | 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=` | 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=` | Use to automatically sign in on startup. Use together with `--username`. No longer works. | -| `--performance-tracing` | | -| `--product-version` | | -| `--protocol-uri=` | Identical to --uri, but only used from the Windows protocol handler, so we can apply extra security restrictions. | -| `--remote-allow-origins=` | 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=` | Enable remote debugging. | -| `--remember-cmd-login` | | -| `--show-console` | Show more log output. | -| `--startup-success-file-path` | | -| `--test-auto-update-success-file-path` | | -| `--trace-file=` | Save a trace file to this path. | -| `--trigger-ta-crash` | | -| `--update-endpoint-override` | Can be used to disable Spotify updates. Example configuration: `--update-endpoint-override=http://localhost`. | -| `--update-immediately` | | -| `--upgrade-failed` | | -| `--uri=` | Start the client normally, but automatically navigate to the URI when initialized. | -| `--use-event-sender-test-transport` | | -| `--user-agent-product` | | -| `--username=` | Use to automatically sign in on startup. Use together with `--password`. No longer works. | -| `--weblogin-endpoint` | | +| Flag | Description | +| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--allow-upgrades` | | +| `--append-log-file` | | +| `--app-directory=` | 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=` | 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 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=` | 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=` | 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=` | Use to automatically sign in on startup. Use together with `--username`. No longer works. | +| `--performance-tracing` | | +| `--product-version` | | +| `--protocol-uri=` | Identical to --uri, but only used from the Windows protocol handler, so we can apply extra security restrictions. | +| `--remote-allow-origins=` | 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=` | Enable remote debugging. | +| `--remember-cmd-login` | | +| `--show-console` | Show more log output. | +| `--startup-success-file-path` | | +| `--test-auto-update-success-file-path` | | +| `--trace-file=` | Save a trace file to this path. | +| `--trigger-ta-crash` | | +| `--update-endpoint-override=` | Can be used to disable Spotify updates. Example configuration: `--update-endpoint-override=http://localhost`. | +| `--update-immediately` | | +| `--upgrade-failed` | | +| `--uri=` | Start the client normally, but automatically navigate to the URI when initialized. | +| `--use-event-sender-test-transport` | | +| `--user-agent-product` | | +| `--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. From 16b0cc89836a638a03276a160a94906b984e8e21 Mon Sep 17 00:00:00 2001 From: Grigory Date: Tue, 4 Feb 2025 01:02:35 +0500 Subject: [PATCH 5/5] missing word --- docs/development/spotify-cli-flags.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development/spotify-cli-flags.md b/docs/development/spotify-cli-flags.md index d826d2b4..73301ac6 100644 --- a/docs/development/spotify-cli-flags.md +++ b/docs/development/spotify-cli-flags.md @@ -27,7 +27,7 @@ description: 🚩 Flags to alter the behavior of the Spotify. | `--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 like `spicetify enable-devtools`. Stopped working long time ago. | +| `--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` | |