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
|`SPOTIFY_REDIRECT_URI`| Yes | - | Redirect URI registered in Spotify app. |
72
-
|`SPOTIFY_SCOPE`| No |`user-read-currently-playing`| Spotify scopes. Only `user-read-currently-playing` is required by default. |
73
-
|`SPOTIFY_REFRESH_TOKEN`| No | - | Optional. If you already have a refresh token you can provide it to avoid manual browser login on remote machines. |
74
-
|`TELEGRAM_API_ID`| Yes | - | Telegram API ID (create at [https://my.telegram.org/apps](https://my.telegram.org/apps)). |
75
-
|`TELEGRAM_API_HASH`| Yes | - | Telegram API hash (from same place). |
76
-
|`TRACKS_CACHE_SIZE`| No |`20`| Number of most-recent tracks to keep pinned in Telegram. Older tracks are automatically removed. |
77
-
|`TRACKS_DOWNLOAD_WORKERS`| No |`2`| Number of parallel background workers used for delayed audio downloads in mixed mode. |
78
-
|`TRACKS_BACKEND`| No |`spotdl_track_backend.SpotdlTrackBackend`| Backend used to fetch/download tracks. |
79
-
|`CLEAN_TRACKS`| No |`true`| If `true`, tracks are removed from Telegram when the Spotify session ends. |
|`SPOTIFY_REDIRECT_URI`| Yes |-| Redirect URI registered in Spotify app. |
72
+
|`SPOTIFY_SCOPE`| No |`user-read-currently-playing`| Spotify scopes. Only `user-read-currently-playing` is required by default. |
73
+
|`SPOTIFY_REFRESH_TOKEN`| No |-| Optional. If you already have a refresh token you can provide it to avoid manual browser login on remote machines. |
74
+
|`TELEGRAM_API_ID`| Yes |-| Telegram API ID (create at [https://my.telegram.org/apps](https://my.telegram.org/apps)). |
75
+
|`TELEGRAM_API_HASH`| Yes |-| Telegram API hash (from same place). |
76
+
|`TRACKS_CACHE_SIZE`| No |`20`| Number of most-recent tracks to keep pinned in Telegram. Older tracks are automatically removed. |
77
+
|`TRACKS_DOWNLOAD_WORKERS`| No |`2`| Number of parallel background workers used for delayed audio downloads in mixed mode. |
78
+
|`TRACKS_BACKEND`| No |`mixed_track_backend.MixedTrackBackend`| Backend used to fetch/download tracks. |
79
+
|`CLEAN_TRACKS`| No |`true`| If `true`, tracks are removed from Telegram when the Spotify session ends. |
80
80
81
81
### Track backends
82
82
83
83
`TRACKS_BACKEND` controls where track audio and metadata are obtained from. Three backends are supported:
84
84
85
-
-`spotdl_track_backend.SpotdlTrackBackend` - **default**. Uses `spotdl` logic to locate and download audio for the requested Spotify track.
85
+
-`mixed_track_backend.MixedTrackBackend` - **default**. Uploads a zero-duration placeholder immediately and then tries to replace that exact slot later with the original audio from `spotdl`.
86
+
-`spotdl_track_backend.SpotdlTrackBackend` - **original-only mode**. Uses `spotdl` logic to locate and download audio for the requested Spotify track.
86
87
-`zero_track_backend.ZeroTrackBackend` - **fallback**. If no backend can find/download the actual audio, this backend uploads a message to Telegram containing the track metadata and cover art but **no audio** (the uploaded track will have 0 seconds duration).
87
-
-`mixed_track_backend.MixedTrackBackend` - **hybrid mode**. Uploads a zero-duration placeholder immediately and then tries to replace that exact slot later with the original audio from `spotdl`.
88
88
89
89
### Session volume (Telegram auth)
90
90
@@ -121,7 +121,7 @@ If neither is present, the container will walk you through the auth flow on firs
121
121
## How it works (high level)
122
122
123
123
1. The service reads your Spotify playback / currently playing via the Web API (`spotipy`).
124
-
2. For tracks that should be shown, the configured backend (default: `spotdl`) prepares a track file or uploadable content.
124
+
2. For tracks that should be shown, the configured backend (default: `mixed`) prepares a track file or uploadable content.
125
125
3. In mixed mode, the service first uploads a zero-duration placeholder and upgrades it later if the original audio download succeeds.
126
126
4. The track is uploaded to your Telegram `Saved Messages` and pinned. When a track falls out of the cache window or is unpinned/removed, the service deletes it from `Saved Messages`.
127
127
@@ -134,7 +134,7 @@ This gives the visual effect of "Music on Profiles" - tracks remain visible whil
134
134
-**No Telegram session / auth fails**: ensure `session.session` or `tdata` is correctly mounted and readable by the container. Check container logs for Telethon errors.
135
135
-**Spotify auth redirect fails**: confirm `SPOTIFY_REDIRECT_URI` exactly matches the redirect in your Spotify app settings.
136
136
-**No refresh token in logs**: re-run the `/auth` flow and watch the container logs carefully after completing the browser authorization; the refresh token is printed once.
137
-
-**Tracks not uploaded**: check the `TRACKS_BACKEND` configuration and ensure `spotdl` dependencies are present in the image (they are in the default image). Also verify network access.
137
+
-**Tracks not uploaded**: check the `TRACKS_BACKEND` configuration and ensure `spotdl` dependencies are present in the image (they are required for the default mixed mode and for `spotdl`-only mode). Also verify network access.
0 commit comments