You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+72-99Lines changed: 72 additions & 99 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,43 +19,79 @@ Powerful real-time tracker for Spotify friend music activity: monitor listening
19
19
<aid="-quick-install-run"></a>
20
20
### 🚀 Quick Install & Run
21
21
22
-
Python from PyPI
22
+
#### Python from PyPI
23
23
24
24
```sh
25
25
pip install spotify_monitor
26
+
```
27
+
28
+
Run setup by itself:
29
+
30
+
```sh
26
31
spotify_monitor --setup
27
32
```
28
33
29
-
Docker Compose
34
+
#### Docker image - fastest container setup
35
+
36
+
##### macOS or Windows
37
+
38
+
Use a macOS shell or Windows PowerShell with a Docker-compatible runtime that provides the `docker` CLI.
39
+
40
+
```sh
41
+
docker run --rm --pull=always -it --init -v "${PWD}:/data:z" misiektoja/spotify-monitor:latest --setup
42
+
```
43
+
44
+
After setup finishes, start monitoring with the files created by the wizard:
45
+
46
+
```sh
47
+
docker run --rm -it --init -v "${PWD}:/data:z" misiektoja/spotify-monitor:latest --config-file /data/spotify_monitor.conf
48
+
```
49
+
50
+
The setup command pulls the current image. Both commands keep configuration, private values and output in the current directory.
51
+
52
+
In Windows Command Prompt replace `${PWD}` with `%cd%`. Windows hosts must use Linux containers.
53
+
54
+
##### Linux
55
+
56
+
`--user "$(id -u):$(id -g)"` runs the container with your numeric user and group IDs. This lets the container write files that your host account can edit.
On Linux, set the container user to your host user before the first setup command. This lets Spotify Monitor create its configuration and private `.env` file in the current directory. Docker Desktop users on macOS or Windows can skip the two `export` commands.
For the manual single-file method, optional extras and upgrade commands for every method, see [Installation](https://misiektoja.github.io/spotify_monitor/installation/).
@@ -101,113 +137,50 @@ For Spotify profile and playlist change tracking, see [spotify_profile_monitor](
101
137
102
138
For Spotify Web Player token and TOTP utilities, see [Debugging Tools](https://misiektoja.github.io/spotify_monitor/debugging/#debugging-tools).
103
139
104
-
<aid="documentation"></a>
105
-
## Documentation
106
-
107
-
Full documentation is available at **[misiektoja.github.io/spotify_monitor](https://misiektoja.github.io/spotify_monitor/)**:
108
-
109
-
-[Installation](https://misiektoja.github.io/spotify_monitor/installation/) - PyPI, manual script, Docker installation and upgrades
110
-
-[Quick Start](https://misiektoja.github.io/spotify_monitor/quick-start/) - setup wizard, authentication and first run
111
-
-[Configuration](https://misiektoja.github.io/spotify_monitor/configuration/) - Spotify login, targets, SMTP, webhooks and secrets
-[Troubleshooting](https://misiektoja.github.io/spotify_monitor/troubleshooting/) - the `--doctor` self-check and logging levels
114
-
-[Debugging Tools](https://misiektoja.github.io/spotify_monitor/debugging/) - TOTP token testing and secret extraction
115
-
116
-
<aid="quick-start"></a>
117
-
## Quick Start
118
-
119
-
<aid="new-here-run-the-setup-wizard"></a>
120
-
### New here? Run the setup wizard
121
-
122
-
The fastest way to get started is `--setup`. It asks who to monitor, how to connect to Spotify and which alerts you want then saves a ready-to-run configuration. Private values stay in `.env`.
123
-
124
-
On Linux, set `SPOTIFY_MONITOR_UID="$(id -u)"` and `SPOTIFY_MONITOR_GID="$(id -g)"` before using Docker Compose.
125
-
126
-
Use the command that matches how you run the tool:
127
-
128
-
```sh
129
-
# PyPI install
130
-
spotify_monitor --setup
131
-
132
-
# Manual Python script on macOS or Linux
133
-
python3 spotify_monitor.py --setup
134
-
135
-
# Manual Python script on Windows
136
-
python spotify_monitor.py --setup
137
-
138
-
# Docker Compose (skip curl if you cloned the repository)
Running the tool with no arguments also offers the wizard when no target has been saved. It detects whether you use PyPI, the downloaded script, Docker or Docker Compose then shows matching commands.
150
-
151
140
<aid="before-monitoring"></a>
152
-
###Before monitoring
141
+
## Before Monitoring
153
142
154
143
Spotify only shows a person's listening activity when both of these conditions are met:
155
144
156
145
1. The Spotify account used by Spotify Monitor follows the person you want to monitor.
157
146
2. That person has enabled listening activity sharing in Spotify.
158
147
159
-
The setup wizard (`spotify_monitor --setup`) checks whether the configured Spotify account follows the target. It offers to follow only when needed and changes the account only after explicit confirmation. If you want to do it manually, open the person's profile in the Spotify desktop or mobile app then use **Share** > **Copy link to profile**. You can paste the complete profile link into the setup wizard. You do not need to extract the user ID yourself. See [Following the Monitored User](https://misiektoja.github.io/spotify_monitor/configuration/#following-the-monitored-user).
148
+
The setup wizard checks whether the monitoring account follows the target. It can send the follow request after you confirm. To follow manually, open the target's profile in the Spotify desktop or mobile app. You can use **Share** > **Copy link to profile** and paste the complete link into the wizard. You do not need to extract the user ID. See [Following the Monitored User](https://misiektoja.github.io/spotify_monitor/configuration/#following-the-monitored-user).
149
+
150
+
Firefox import is the recommended login path for local and container installs. See [Container Operation](https://misiektoja.github.io/spotify_monitor/usage/#import-firefox-into-container-authentication) for the host-specific import commands.
160
151
161
-
For local installs, Firefox import is the recommended login path. Docker users should use the wizard's hidden manual `sp_dc` entry. See the [full Quick Start guide](https://misiektoja.github.io/spotify_monitor/quick-start/) for details.
152
+
<aid="common-commands"></a>
153
+
## Common Commands
162
154
163
-
<aid="not-sure-which-command-you-need"></a>
164
-
### Not sure which command you need?
155
+
Use [Quick Install & Run](#-quick-install-run) above for first-time setup. The table uses PyPI commands. For manual script, direct Docker and Docker Compose equivalents, see [Run Individual Commands](https://misiektoja.github.io/spotify_monitor/quick-start/#run-individual-commands).
165
156
166
157
| I want to... | Run this |
167
158
| --- | --- |
168
-
| Set up Spotify Monitor for the first time | Use the setup command for your installation above |
169
159
| Start monitoring with existing authentication |`spotify_monitor TARGET`, where `TARGET` is a raw ID, `spotify:user:` URI or profile URL |
170
-
| Start a target saved as `TARGET_USER_URI_ID`|`spotify_monitor --config-file spotify_monitor.conf`or `docker compose up`|
160
+
| Start a target saved as `TARGET_USER_URI_ID`|`spotify_monitor --config-file spotify_monitor.conf`|
171
161
| Check authentication, connectivity and one target |`spotify_monitor --doctor TARGET`|
172
162
| List Spotify friends visible to the configured account |`spotify_monitor --list-friends`|
173
163
| Import a Spotify login from Firefox | Open [Spotify Web Player](https://open.spotify.com/) in Firefox, sign in then run `spotify_monitor --import-browser-cookie --browser firefox`|
174
164
| Safely set or replace `SP_DC_COOKIE`| Run `spotify_monitor --set-sp-dc` and enter `sp_dc` at the hidden prompt |
175
165
| Configure and test webhook alerts | Use the setup wizard or follow [Webhook Settings](https://misiektoja.github.io/spotify_monitor/configuration/#webhook-settings)|
176
166
177
-
<aid="manual-commands"></a>
178
-
### Manual commands
179
-
180
-
The examples below use a PyPI install. For a manual script install, replace `spotify_monitor` with `python3 spotify_monitor.py` on macOS or Linux and `python spotify_monitor.py` on Windows. Docker users can copy the complete command prefixes from the [Usage guide](https://misiektoja.github.io/spotify_monitor/usage/#command-format).
167
+
Running the tool with no arguments offers the wizard if you have not saved a target. If a target is already saved, it starts monitoring that target.
181
168
182
-
Sign in to [Spotify Web Player](https://open.spotify.com/) with Firefox then import that login:
169
+
For authentication, saved targets, configuration backups and setup recovery, see the [full Quick Start guide](https://misiektoja.github.io/spotify_monitor/quick-start/).
For browser profiles, manual cookie extraction, Docker authentication, email and webhook setup, see [Configuration](https://misiektoja.github.io/spotify_monitor/configuration/). For notification choices, playback controls and output files, see [Usage](https://misiektoja.github.io/spotify_monitor/usage/).
201
172
202
-
Run the self-check or view every command:
173
+
<aid="documentation"></a>
174
+
## Documentation
203
175
204
-
```sh
205
-
spotify_monitor --doctor <spotify_user_uri_id>
206
-
spotify_monitor --list-friends
207
-
spotify_monitor --help
208
-
```
176
+
Full documentation is available at **[misiektoja.github.io/spotify_monitor](https://misiektoja.github.io/spotify_monitor/)**:
209
177
210
-
For browser profiles, manual cookie extraction, Docker authentication, email and webhook setup, see [Configuration](https://misiektoja.github.io/spotify_monitor/configuration/). For notification choices, playback controls and output files, see [Usage](https://misiektoja.github.io/spotify_monitor/usage/).
178
+
-[Installation](https://misiektoja.github.io/spotify_monitor/installation/) - PyPI, manual script, Docker installation and upgrades
179
+
-[Quick Start](https://misiektoja.github.io/spotify_monitor/quick-start/) - setup wizard, authentication and first run
180
+
-[Configuration](https://misiektoja.github.io/spotify_monitor/configuration/) - Spotify login, targets, SMTP, webhooks and secrets
Copy file name to clipboardExpand all lines: RELEASE_NOTES.md
+37-2Lines changed: 37 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,41 @@
2
2
3
3
This is a high-level summary of the most important changes.
4
4
5
+
# Changes in 3.1 (23 Jul 2026)
6
+
7
+
Version **3.1** makes **Docker onboarding portable across macOS, Linux and Windows**. Setup now centers on **host-aware Firefox authentication**, keeps configuration and secrets on the persistent **`/data` bind mount** and carries exact **Doctor and monitoring commands** through recovery.
8
+
9
+
**Features and improvements**:
10
+
11
+
-**IMPROVE:** Kept Firefox import as the **recommended Docker authentication path** while making its deferred workflow explicit. Setup now asks whether Docker runs on macOS, standard Linux, Linux with Snap, Linux with Flatpak, Windows PowerShell or Windows Command Prompt then prints the matching read-only profile mount
12
+
-**NEW:** Added **Windows-host Firefox import** for direct Docker and Docker Compose through the normal `%APPDATA%\Mozilla\Firefox` profile root with shell-specific PowerShell and Command Prompt commands
13
+
-**IMPROVE:** Deferred **Doctor until Firefox authentication has been imported**. Container setup now finishes with ordered commands to import the login, verify authentication and the target then start monitoring
14
+
-**IMPROVE:** Preserved **setup guidance across one-time authentication commands** by keeping terminal history visible and repeating the exact Doctor and monitoring commands after a successful Firefox import
15
+
-**IMPROVE:** Printed the **install-aware monitoring command** after a successful Doctor run while preserving explicit or saved targets and selected configuration files
16
+
17
+
**Bug fixes**:
18
+
19
+
-**BUGFIX:** Fixed generated Docker commands that used the container UID `10001:10001` and always assumed the Linux `~/.mozilla/firefox` profile path. **macOS commands omit Linux user mapping** while Linux commands resolve the host user and group IDs in the host shell
20
+
-**BUGFIX:** Stopped standalone container recovery guidance from presenting one Linux-only Firefox command when the Docker host is unknown
21
+
-**BUGFIX:** Anchored **default container setup files** to the bind-mounted **`/data` directory** so the generated configuration and dotenv files survive the temporary setup container
22
+
-**BUGFIX:** Rejected **Docker setup destinations outside `/data`** instead of saving ephemeral files then printing commands for different paths
23
+
-**BUGFIX:** Generated direct Docker commands with **`${PWD}` for macOS, Linux and Windows PowerShell** then switched to `%cd%` for Windows Command Prompt while retaining Linux user mapping
24
+
-**BUGFIX:** Saved the **selected dotenv destination** in generated configuration so later config-only starts and secret reloads keep using it
25
+
-**BUGFIX:** Printed an **explicit Compose monitoring command** when setup uses nondefault config or dotenv paths instead of falling back to hardcoded defaults
26
+
-**BUGFIX:** Preserved the selected configuration path through the hidden **`--set-sp-dc` fallback** and its Doctor and monitoring guidance
27
+
-**BUGFIX:** Prevented a **Windows traceback after Ctrl+C** when monitoring was started directly from setup. The setup parent now treats its duplicate console interrupt as the same clean termination already handled by the monitoring child
28
+
29
+
# Changes in 3.0.1 (22 Jul 2026)
30
+
31
+
**Features and improvements**:
32
+
33
+
-**IMPROVE:** Made Firefox login import the recommended Docker and Docker Compose authentication path. A one-time read-only host profile mount imports `sp_dc` into the persistent `.env` file, later runs no longer need the browser mount and hidden manual cookie entry remains available as a fallback
34
+
-**IMPROVE:** Updated `spotify_monitor_totp_test --fetch-secrets` to scan current web-player bundles for inline TOTP secret objects while retaining the original runtime hook for older bundle formats
35
+
36
+
**Bug fixes**:
37
+
38
+
-**BUGFIX:** Fixed Docker Compose startup after guided setup. The default service command now loads `/data/.env` explicitly, preventing `docker compose up` from reporting a missing `SP_DC_COOKIE` when setup and doctor already saved and validated it
39
+
5
40
# Changes in 3.0 (22 Jul 2026)
6
41
7
42
Version **3.0** focuses on making Spotify Monitor easier to set up, safer to configure and easier to recover when something goes wrong. It adds guided onboarding, simpler Spotify login, Docker Compose, clearer terminal output and Discord + ntfy webhook alerts while keeping advanced client mode available for experienced users.
@@ -117,8 +152,8 @@ Special thanks to [@tomballgithub](https://github.com/tomballgithub) for testing
117
152
118
153
-**IMPROVE:** Added support for loading TOTP secrets from local files via file:// URLs
119
154
-**IMPROVE:** Updated remote URL in SECRET_CIPHER_DICT_URL
120
-
-**IMPROVE:** Updated [spotify_monitor_secret_grabber](https://github.com/misiektoja/spotify_monitor/blob/dev/debug/spotify_monitor_secret_grabber.py) to dump secrets in different formats. Choose what you need with the `--secret`,` --secretbytes` and `--secretdict` CLI flags, or go all out with the `--all` mode to write all secret formats to files like `secrets.json`, `secretBytes.json` and `secretDict.json` (thanks [@tomballgithub](https://github.com/tomballgithub))
121
-
-**IMPROVE:** Added multi-arch Docker image build and compose support for [spotify_monitor_secret_grabber](https://github.com/misiektoja/spotify_monitor/blob/dev/debug/spotify_monitor_secret_grabber.py) - more info at [Secret Key Extraction via Docker](https://misiektoja.github.io/spotify_monitor/debugging/#-secret-key-extraction-via-docker-recommended-easiest-way)
155
+
-**IMPROVE:** Updated [spotify_monitor_secret_grabber](https://github.com/misiektoja/spotify_monitor/blob/main/debug/spotify_monitor_secret_grabber.py) to dump secrets in different formats. Choose what you need with the `--secret`,` --secretbytes` and `--secretdict` CLI flags, or go all out with the `--all` mode to write all secret formats to files like `secrets.json`, `secretBytes.json` and `secretDict.json` (thanks [@tomballgithub](https://github.com/tomballgithub))
156
+
-**IMPROVE:** Added multi-arch Docker image build and compose support for [spotify_monitor_secret_grabber](https://github.com/misiektoja/spotify_monitor/blob/main/debug/spotify_monitor_secret_grabber.py) - more info at [Secret Key Extraction via Docker](https://misiektoja.github.io/spotify_monitor/debugging/#secret-key-extraction-via-docker)
122
157
-**IMPROVE:** Added deletion of flag_file at launch if specified via .conf file. Previously only done when flag_file was specified on command line
123
158
-**IMPROVE:** Added info to console output when TOTP secrets are fetched from a remote URL or local file
0 commit comments