Host: Soloist backend for spotify_engine on Linux #91

Closed
opened 2026-10-16 17:17:54 +02:00 by SBDeveloper · 2 comments
Owner

Part of #85

Second backend for spotify_engine (#86): run Spotify's Soloist in single-track mode, one run per Track, and capture its output (Music Assistant records it from a PulseAudio capture sink and treats it as PCM; hand it over as Wav). Linux only.

See ADR 0020. Acceptance:

  • the host spawns only the Soloist binary at the path the user configured, never an arbitrary one; no general process capability
  • nothing from Spotify is bundled: the app links to Spotify's download page and explains how to create an API key (builds expire after 90 days; show a clear message when expired)
  • API key and playback credential stay in the plugin's /data, passed per call
  • check what gapless, seek and Offline look like with a capture
  • first confirm Spotify's terms allow capturing Soloist output into another player (the docs do not say); if not, drop this ticket and document it
Part of #85 Second backend for `spotify_engine` (#86): run Spotify's Soloist in single-track mode, one run per Track, and capture its output (Music Assistant records it from a PulseAudio capture sink and treats it as PCM; hand it over as `Wav`). Linux only. See ADR 0020. Acceptance: - the host spawns only the Soloist binary at the path the user configured, never an arbitrary one; no general process capability - nothing from Spotify is bundled: the app links to Spotify's download page and explains how to create an API key (builds expire after 90 days; show a clear message when expired) - API key and playback credential stay in the plugin's `/data`, passed per call - check what gapless, seek and Offline look like with a capture - **first confirm Spotify's terms allow capturing Soloist output into another player** (the docs do not say); if not, drop this ticket and document it
Author
Owner

Decision (owner, 2026-10-16): capturing Soloist output is allowed; the terms question is settled for this ticket, do not drop it. README (#90) must say Soloist is Spotify's official client but the integration is not approved by Spotify and its terms status is undecided (do not claim it is forbidden), and that the user takes the risk, in the same style as the Deezer notes.

Decision (owner, 2026-10-16): capturing Soloist output is allowed; the terms question is settled for this ticket, do not drop it. README (#90) must say Soloist is Spotify's official client but the integration is not approved by Spotify and its terms status is undecided (do not claim it is forbidden), and that the user takes the risk, in the same style as the Deezer notes.
Author
Owner

Implemented and merged on integration branch spec/85-spotify-source (not pushed yet). See merge commit 'Merge #91' in its history.

Implemented and merged on integration branch `spec/85-spotify-source` (not pushed yet). See merge commit 'Merge #91' in its history.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
SBDeveloper/medley#91
No description provided.