spotify-player: back to bundled client_id, restores Made-For-You

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-08-16 12:34:58 +01:00
parent 25c8671873
commit 2652d14a8f

View file

@ -110,21 +110,22 @@ in
}); });
settings = { settings = {
enable_audio_visualization = true; enable_audio_visualization = true;
# Our own Spotify app rather than the bundled default (ncspot's client ID, # No client_id: use the bundled default (ncspot's), as upstream
# shared by every spotify-player/ncspot install). Upstream recommends the # recommends. It predates Spotify's 2024-11-27 Web API change and is in
# default because it has extended quota mode, but its rate-limit bucket is # extended quota mode, so it still gets the editorial/algorithmic
# shared across every user of it, and we hit 429s on it just adjusting the # playlists — Discover Weekly, Made-For-You, browse categories. Any app
# volume. Our own app gets a private bucket. # registered today is stuck in restricted quota and Spotify returns those
# as null, which is what left Made-For-You empty while we ran our own.
#
# We did briefly run our own app (private rate-limit bucket) because the
# bundled one's bucket is shared with every other spotify-player/ncspot
# user and we hit 429s. But that burst came from scroll-to-set-volume and
# the post-action confirmation reads, both cut below — so the private
# bucket is no longer worth losing half the library over.
#
# Changing client ID invalidates the cached Web API token: run
# `spotify_player authenticate` once after deploying this.
# #
# The cost of a post-2024-11-27 app is restricted quota: Spotify returns
# its own editorial/algorithmic playlists as null, so Discover Weekly,
# Made-For-You and browse categories are missing. That used to break
# *search* outright (upstream #617/#621) because one null sank the whole
# deserialization, but rspotify 0.15.3 — pinned by 0.24.1 — drops null
# page items instead (`vec_without_nulls`), so search works again.
# Public PKCE client, no secret involved, so it's fine in the repo.
# Redirect URI registered: http://127.0.0.1:8989/login
client_id = "265506bc7bbd4032bf0fee708b321d3e";
# Scroll-to-set-volume is a rate-limit trap: playback runs through a local # Scroll-to-set-volume is a rate-limit trap: playback runs through a local
# librespot softmixer, but the mixer is only set once at session start, so # librespot softmixer, but the mixer is only set once at session start, so
# every later change is a Web API PUT /me/player/volume round-trip (plus # every later change is a Web API PUT /me/player/volume round-trip (plus