Skip to content

Add pause_on_startup option to stop auto-resuming the previous session on startup #1004

Description

@ecschoye

Is your feature already implemented in the latest master?

No. I went through the Features README page and there is no option controlling startup playback state. The existing autoplay device option is unrelated (it only fetches radio tracks when a queue is exhausted).

Is your feature request related to a problem? Please describe.

When spotify_player is quit while a track is playing (e.g. Ctrl+C / q) and then reopened, it automatically resumes playing the last track. This is undesirable for users who want a quiet startup and just want to open the player without it immediately blasting audio.

The auto-resume is not initiated by spotify_player itself: on startup initialize_playback transfers playback with play=false. The resume comes from Spotify's server-side Connect state, which is restored by the integrated librespot client when it re-registers as a device. Because the trigger is server-side, there is currently no way to opt out from the client.

The only workaround today is the manual habit of pausing before quitting, which is easy to forget and not a real fix.

Describe the solution you'd like

A config option, e.g. pause_on_startup (default false, opt-in, non-breaking), that pauses the playback Spotify auto-resumes on startup. When enabled, the integrated client pauses the first auto-started playback once, so the app opens quietly. Default false preserves the current resume-on-open behaviour for everyone who relies on it.

Describe alternatives you've considered

  • Pausing before every quit (manual, error-prone, not automatic).
  • enable_streaming = "Never" to stop the integrated client resuming, but that disables local streaming entirely, which defeats the purpose.

Additional context

I have a working implementation and will open a PR shortly. Behaviour summary:

  • Opt-in via pause_on_startup (requires the streaming feature), default false.
  • Scoped to the first streaming connection of the process, so RestartIntegratedClient mid-session is unaffected.
  • No-op when nothing auto-resumes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions