[GH-ISSUE #815] App shows correct startpage but does not seem connected otherwise #1422

Closed
opened 2026-03-14 14:52:04 +03:00 by kerem · 12 comments
Owner

Originally created by @Sorodon on GitHub (Aug 27, 2025).
Original GitHub issue: https://github.com/aome510/spotify-player/issues/815

Describe the bug
Arch (EndeavourOS) with kitty terminal
When opening the App it shows my start page with my playlists but selecting anything sends be to an eternal loading screen.
No playback is shown and the device selection is empty.
However other devices (like my phone) show the app in spotify-connect and it is selectable. When it is selected, the music is paused instantly when hitting play though.
Even more weird:
Uninstalling and installing (via pacman) again did not help at all. I deleted (as in moved and renamed) all config files but for some reason the app seems to remember my account and is able to show my startpage.
Log shows errors about token being invalid, but I don't understand it fully

To Reproduce
For me: Simply opening the app, but I doubt this works for other PCs

Expected behaviour
I'd like to play music again

Log and backtrace

Log (The Client and Device IDs were redacted by me)
2025-08-27T11:02:09.217684Z  INFO spotify_player: Configurations: Configs { app_config: AppConfig { theme: "nord", client_id: "122ecxxxxxxxxxxxxxxxxxxxxxxxxxxx", client_id_command: None, client_port: 8080, login_redirect_uri: "http://127.0.0.1:8989/login", player_event_hook_command: None, playback_format: "[{status}] {track} • {artists}\n{album}\n{metadata}", playback_metadata_fields: ["repeat", "shuffle", "volume", "device"], notify_format: NotifyFormat { summary: "{track} • {artists}", body: "{album}" }, notify_timeout_in_secs: 0, tracks_playback_limit: 50, proxy: None, ap_port: None, app_refresh_duration_in_ms: 32, playback_refresh_duration_in_ms: 0, page_size_in_rows: 20, play_icon: "\u{f03e4}", pause_icon: "\u{f040a}", liked_icon: "\u{f02d1}", border_type: Rounded, progress_bar_type: Rectangle, layout: LayoutConfig { library: LibraryLayoutConfig { playlist_percent: 40, album_percent: 40 }, playback_window_position: Top, playback_window_height: 6 }, cover_img_length: 9, cover_img_width: 5, cover_img_scale: 1.0, enable_media_control: true, enable_streaming: Always, enable_notify: true, enable_cover_image_cache: true, default_device: "sp@SAM-EOS", device: DeviceConfig { name: "sp@SAM-EOS", device_type: "computer", volume: 70, bitrate: 320, audio_cache: false, normalization: true, autoplay: true }, notify_streaming_only: false, seek_duration_secs: 5, sort_artist_albums_by_type: false }, keymap_config: KeymapConfig { keymaps: [Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('c'))] }, command: None }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('q'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [None(Char('n'))] }, command: NextTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('p'))] }, command: PreviousTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('.'))] }, command: PlayRandom }, Keymap { key_sequence: KeySequence { keys: [None(Char(' '))] }, command: ResumePause }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('r'))] }, command: Repeat }, Keymap { key_sequence: KeySequence { keys: [Alt(Char('r'))] }, command: ToggleFakeTrackRepeatMode }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('s'))] }, command: Shuffle }, Keymap { key_sequence: KeySequence { keys: [None(Char('+'))] }, command: VolumeChange { offset: 5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('-'))] }, command: VolumeChange { offset: -5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('_'))] }, command: Mute }, Keymap { key_sequence: KeySequence { keys: [None(Char('>'))] }, command: SeekForward }, Keymap { key_sequence: KeySequence { keys: [None(Char('<'))] }, command: SeekBackward }, Keymap { key_sequence: KeySequence { keys: [None(Enter)] }, command: ChooseSelected }, Keymap { key_sequence: KeySequence { keys: [None(Char('r'))] }, command: RefreshPlayback }, Keymap { key_sequence: KeySequence { keys: [None(Char('/'))] }, command: Search }, Keymap { key_sequence: KeySequence { keys: [None(Char('z'))] }, command: Queue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [None(Char('Z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('g'))] }, command: JumpToHighlightTrackInContext }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char(' '))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('a'))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('a'))] }, command: ShowActionsOnCurrentTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('R'))] }, command: RestartIntegratedClient }, Keymap { key_sequence: KeySequence { keys: [None(Tab)] }, command: FocusNextWindow }, Keymap { key_sequence: KeySequence { keys: [None(BackTab)] }, command: FocusPreviousWindow }, Keymap { key_sequence: KeySequence { keys: [None(Char('T'))] }, command: SwitchTheme }, Keymap { key_sequence: KeySequence { keys: [None(Char('D'))] }, command: SwitchDevice }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('p'))] }, command: BrowseUserPlaylists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('a'))] }, command: BrowseUserFollowedArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('A'))] }, command: BrowseUserSavedAlbums }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char(' '))] }, command: CurrentlyPlayingContextPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('t'))] }, command: TopTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('r'))] }, command: RecentlyPlayedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('y'))] }, command: LikedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('L'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('l'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('l'))] }, command: LibraryPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('s'))] }, command: SearchPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('b'))] }, command: BrowsePage }, Keymap { key_sequence: KeySequence { keys: [None(Backspace)] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('O'))] }, command: OpenSpotifyLinkFromClipboard }, Keymap { key_sequence: KeySequence { keys: [None(Char('?'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('h'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [None(Char('q'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [None(Esc)] }, command: ClosePopup }, Keymap { key_sequence: KeySequence { keys: [None(Char('j'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('n'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Down)] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('k'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('p'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(Up)] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageUp)] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('b'))] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageDown)] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('f'))] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('g'))] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Home)] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Char('G'))] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(End)] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('t'))] }, command: SortTrackByTitle }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('a'))] }, command: SortTrackByArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('A'))] }, command: SortTrackByAlbum }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('d'))] }, command: SortTrackByDuration }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('D'))] }, command: SortTrackByAddedDate }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('r'))] }, command: ReverseTrackOrder }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('a'))] }, command: SortLibraryAlphabetically }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('r'))] }, command: SortLibraryByRecent }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('k'))] }, command: MovePlaylistItemUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('j'))] }, command: MovePlaylistItemDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('N'))] }, command: CreatePlaylist }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('c'))] }, command: JumpToCurrentTrackInContext }], actions: [] }, theme_config: ThemeConfig { themes: [Theme { name: "default", palette: Palette { background: None, foreground: None, black: Color { color: Black }, blue: Color { color: Blue }, cyan: Color { color: Cyan }, green: Color { color: Green }, magenta: Color { color: Magenta }, red: Color { color: Red }, white: Color { color: Gray }, yellow: Color { color: Yellow }, bright_black: Color { color: DarkGray }, bright_white: Color { color: White }, bright_red: Color { color: LightRed }, bright_magenta: Color { color: LightMagenta }, bright_green: Color { color: LightGreen }, bright_cyan: Color { color: LightCyan }, bright_blue: Color { color: LightBlue }, bright_yellow: Color { color: LightYellow } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "default2", palette: Palette { background: None, foreground: None, black: Color { color: Black }, blue: Color { color: Blue }, cyan: Color { color: Cyan }, green: Color { color: Green }, magenta: Color { color: Magenta }, red: Color { color: Red }, white: Color { color: White }, yellow: Color { color: Yellow }, bright_black: Color { color: DarkGray }, bright_white: Color { color: White }, bright_red: Color { color: LightRed }, bright_magenta: Color { color: LightMagenta }, bright_green: Color { color: LightGreen }, bright_cyan: Color { color: LightCyan }, bright_blue: Color { color: LightBlue }, bright_yellow: Color { color: LightYellow } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "dracula", palette: Palette { background: Some(Color { color: Rgb(30, 31, 41) }), foreground: Some(Color { color: Rgb(248, 248, 242) }), black: Color { color: Rgb(0, 0, 0) }, blue: Color { color: Rgb(189, 147, 249) }, cyan: Color { color: Rgb(139, 233, 253) }, green: Color { color: Rgb(80, 250, 123) }, magenta: Color { color: Rgb(255, 121, 198) }, red: Color { color: Rgb(255, 85, 85) }, white: Color { color: Rgb(187, 187, 187) }, yellow: Color { color: Rgb(241, 250, 140) }, bright_black: Color { color: Rgb(85, 85, 85) }, bright_white: Color { color: Rgb(255, 255, 255) }, bright_red: Color { color: Rgb(255, 85, 85) }, bright_magenta: Color { color: Rgb(255, 121, 198) }, bright_green: Color { color: Rgb(80, 250, 123) }, bright_cyan: Color { color: Rgb(139, 233, 253) }, bright_blue: Color { color: Rgb(189, 147, 249) }, bright_yellow: Color { color: Rgb(241, 250, 140) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "dracula2", palette: Palette { background: Some(Color { color: Rgb(30, 31, 41) }), foreground: Some(Color { color: Rgb(248, 248, 242) }), black: Color { color: Rgb(0, 0, 0) }, blue: Color { color: Rgb(189, 147, 249) }, cyan: Color { color: Rgb(139, 233, 253) }, green: Color { color: Rgb(80, 250, 123) }, magenta: Color { color: Rgb(255, 121, 198) }, red: Color { color: Rgb(255, 85, 85) }, white: Color { color: Rgb(187, 187, 187) }, yellow: Color { color: Rgb(241, 250, 140) }, bright_black: Color { color: Rgb(85, 85, 85) }, bright_white: Color { color: Rgb(255, 255, 255) }, bright_red: Color { color: Rgb(255, 85, 85) }, bright_magenta: Color { color: Rgb(255, 121, 198) }, bright_green: Color { color: Rgb(80, 250, 123) }, bright_cyan: Color { color: Rgb(139, 233, 253) }, bright_blue: Color { color: Rgb(189, 147, 249) }, bright_yellow: Color { color: Rgb(241, 250, 140) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: Some(Style { fg: Some(White), bg: Some(Black), modifiers: [Bold] }), secondary_row: Some(Style { fg: None, bg: Some(Rgb { r: 103, g: 112, b: 117 }), modifiers: [] }), like: Some(Style { fg: Some(Red), bg: None, modifiers: [Bold] }), lyrics_played: None, lyrics_playing: None } }, Theme { name: "gruvbox_dark", palette: Palette { background: Some(Color { color: Rgb(40, 40, 40) }), foreground: Some(Color { color: Rgb(235, 219, 178) }), black: Color { color: Rgb(40, 40, 40) }, blue: Color { color: Rgb(69, 133, 136) }, cyan: Color { color: Rgb(104, 157, 106) }, green: Color { color: Rgb(152, 151, 26) }, magenta: Color { color: Rgb(177, 98, 134) }, red: Color { color: Rgb(204, 36, 29) }, white: Color { color: Rgb(168, 153, 132) }, yellow: Color { color: Rgb(215, 153, 33) }, bright_black: Color { color: Rgb(146, 131, 116) }, bright_white: Color { color: Rgb(235, 219, 178) }, bright_red: Color { color: Rgb(251, 73, 52) }, bright_magenta: Color { color: Rgb(211, 134, 155) }, bright_green: Color { color: Rgb(184, 187, 38) }, bright_cyan: Color { color: Rgb(142, 192, 124) }, bright_blue: Color { color: Rgb(131, 165, 152) }, bright_yellow: Color { color: Rgb(250, 189, 47) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "gruvbox_light", palette: Palette { background: Some(Color { color: Rgb(251, 241, 199) }), foreground: Some(Color { color: Rgb(40, 40, 40) }), black: Color { color: Rgb(251, 241, 199) }, blue: Color { color: Rgb(7, 102, 120) }, cyan: Color { color: Rgb(66, 123, 88) }, green: Color { color: Rgb(121, 116, 14) }, magenta: Color { color: Rgb(143, 63, 113) }, red: Color { color: Rgb(157, 0, 6) }, white: Color { color: Rgb(60, 56, 54) }, yellow: Color { color: Rgb(181, 118, 20) }, bright_black: Color { color: Rgb(157, 131, 116) }, bright_white: Color { color: Rgb(124, 111, 100) }, bright_red: Color { color: Rgb(204, 36, 29) }, bright_magenta: Color { color: Rgb(177, 97, 134) }, bright_green: Color { color: Rgb(152, 151, 26) }, bright_cyan: Color { color: Rgb(104, 157, 105) }, bright_blue: Color { color: Rgb(69, 133, 136) }, bright_yellow: Color { color: Rgb(215, 153, 33) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "solarized_dark", palette: Palette { background: Some(Color { color: Rgb(0, 43, 54) }), foreground: Some(Color { color: Rgb(131, 148, 150) }), black: Color { color: Rgb(7, 54, 66) }, blue: Color { color: Rgb(38, 139, 210) }, cyan: Color { color: Rgb(42, 161, 152) }, green: Color { color: Rgb(133, 153, 0) }, magenta: Color { color: Rgb(211, 54, 130) }, red: Color { color: Rgb(220, 50, 47) }, white: Color { color: Rgb(238, 232, 213) }, yellow: Color { color: Rgb(181, 137, 0) }, bright_black: Color { color: Rgb(0, 43, 54) }, bright_white: Color { color: Rgb(253, 246, 227) }, bright_red: Color { color: Rgb(203, 75, 22) }, bright_magenta: Color { color: Rgb(108, 113, 196) }, bright_green: Color { color: Rgb(88, 110, 117) }, bright_cyan: Color { color: Rgb(147, 161, 161) }, bright_blue: Color { color: Rgb(131, 148, 150) }, bright_yellow: Color { color: Rgb(101, 123, 131) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "solarized_light", palette: Palette { background: Some(Color { color: Rgb(253, 246, 227) }), foreground: Some(Color { color: Rgb(101, 123, 131) }), black: Color { color: Rgb(7, 54, 66) }, blue: Color { color: Rgb(38, 139, 210) }, cyan: Color { color: Rgb(42, 161, 152) }, green: Color { color: Rgb(133, 153, 0) }, magenta: Color { color: Rgb(211, 54, 130) }, red: Color { color: Rgb(220, 50, 47) }, white: Color { color: Rgb(238, 232, 213) }, yellow: Color { color: Rgb(181, 137, 0) }, bright_black: Color { color: Rgb(0, 43, 54) }, bright_white: Color { color: Rgb(253, 246, 227) }, bright_red: Color { color: Rgb(203, 75, 22) }, bright_magenta: Color { color: Rgb(108, 113, 196) }, bright_green: Color { color: Rgb(88, 110, 117) }, bright_cyan: Color { color: Rgb(147, 161, 161) }, bright_blue: Color { color: Rgb(131, 148, 150) }, bright_yellow: Color { color: Rgb(101, 123, 131) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "tokyonight", palette: Palette { background: Some(Color { color: Rgb(31, 35, 53) }), foreground: Some(Color { color: Rgb(192, 202, 245) }), black: Color { color: Rgb(65, 72, 104) }, blue: Color { color: Rgb(42, 195, 222) }, cyan: Color { color: Rgb(125, 207, 255) }, green: Color { color: Rgb(158, 206, 106) }, magenta: Color { color: Rgb(187, 154, 247) }, red: Color { color: Rgb(247, 118, 142) }, white: Color { color: Rgb(238, 232, 213) }, yellow: Color { color: Rgb(224, 175, 104) }, bright_black: Color { color: Rgb(36, 40, 59) }, bright_white: Color { color: Rgb(253, 246, 227) }, bright_red: Color { color: Rgb(255, 68, 153) }, bright_magenta: Color { color: Rgb(255, 0, 124) }, bright_green: Color { color: Rgb(115, 218, 202) }, bright_cyan: Color { color: Rgb(147, 161, 161) }, bright_blue: Color { color: Rgb(131, 148, 150) }, bright_yellow: Color { color: Rgb(101, 123, 131) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "catppuccin_latte", palette: Palette { background: Some(Color { color: Rgb(239, 241, 245) }), foreground: Some(Color { color: Rgb(76, 79, 105) }), black: Color { color: Rgb(92, 95, 119) }, blue: Color { color: Rgb(30, 102, 245) }, cyan: Color { color: Rgb(23, 146, 153) }, green: Color { color: Rgb(64, 160, 43) }, magenta: Color { color: Rgb(234, 118, 203) }, red: Color { color: Rgb(210, 15, 57) }, white: Color { color: Rgb(172, 176, 190) }, yellow: Color { color: Rgb(223, 142, 29) }, bright_black: Color { color: Rgb(108, 111, 133) }, bright_white: Color { color: Rgb(188, 192, 204) }, bright_red: Color { color: Rgb(222, 41, 62) }, bright_magenta: Color { color: Rgb(254, 133, 216) }, bright_green: Color { color: Rgb(73, 175, 61) }, bright_cyan: Color { color: Rgb(45, 159, 168) }, bright_blue: Color { color: Rgb(69, 110, 255) }, bright_yellow: Color { color: Rgb(238, 160, 45) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "catppuccin_frappe", palette: Palette { background: Some(Color { color: Rgb(48, 52, 70) }), foreground: Some(Color { color: Rgb(198, 208, 245) }), black: Color { color: Rgb(81, 87, 109) }, blue: Color { color: Rgb(140, 170, 238) }, cyan: Color { color: Rgb(129, 200, 190) }, green: Color { color: Rgb(166, 209, 137) }, magenta: Color { color: Rgb(244, 184, 228) }, red: Color { color: Rgb(231, 130, 132) }, white: Color { color: Rgb(165, 173, 206) }, yellow: Color { color: Rgb(229, 200, 144) }, bright_black: Color { color: Rgb(98, 104, 128) }, bright_white: Color { color: Rgb(181, 191, 226) }, bright_red: Color { color: Rgb(230, 113, 114) }, bright_magenta: Color { color: Rgb(242, 164, 219) }, bright_green: Color { color: Rgb(142, 199, 114) }, bright_cyan: Color { color: Rgb(90, 191, 181) }, bright_blue: Color { color: Rgb(123, 158, 240) }, bright_yellow: Color { color: Rgb(217, 186, 115) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "catppuccin_macchiato", palette: Palette { background: Some(Color { color: Rgb(36, 39, 58) }), foreground: Some(Color { color: Rgb(202, 211, 245) }), black: Color { color: Rgb(73, 77, 100) }, blue: Color { color: Rgb(138, 173, 244) }, cyan: Color { color: Rgb(139, 213, 202) }, green: Color { color: Rgb(166, 218, 149) }, magenta: Color { color: Rgb(245, 189, 230) }, red: Color { color: Rgb(237, 135, 150) }, white: Color { color: Rgb(165, 173, 203) }, yellow: Color { color: Rgb(238, 212, 159) }, bright_black: Color { color: Rgb(91, 96, 120) }, bright_white: Color { color: Rgb(184, 192, 224) }, bright_red: Color { color: Rgb(236, 116, 134) }, bright_magenta: Color { color: Rgb(242, 169, 221) }, bright_green: Color { color: Rgb(140, 207, 127) }, bright_cyan: Color { color: Rgb(99, 203, 192) }, bright_blue: Color { color: Rgb(120, 161, 246) }, bright_yellow: Color { color: Rgb(225, 198, 130) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "catppuccin_mocha", palette: Palette { background: Some(Color { color: Rgb(30, 30, 46) }), foreground: Some(Color { color: Rgb(205, 214, 244) }), black: Color { color: Rgb(69, 71, 90) }, blue: Color { color: Rgb(137, 180, 250) }, cyan: Color { color: Rgb(148, 226, 213) }, green: Color { color: Rgb(166, 227, 161) }, magenta: Color { color: Rgb(245, 194, 231) }, red: Color { color: Rgb(243, 139, 168) }, white: Color { color: Rgb(166, 173, 200) }, yellow: Color { color: Rgb(249, 226, 175) }, bright_black: Color { color: Rgb(88, 91, 112) }, bright_white: Color { color: Rgb(186, 194, 222) }, bright_red: Color { color: Rgb(243, 119, 153) }, bright_magenta: Color { color: Rgb(242, 174, 222) }, bright_green: Color { color: Rgb(137, 216, 139) }, bright_cyan: Color { color: Rgb(107, 215, 202) }, bright_blue: Color { color: Rgb(116, 168, 252) }, bright_yellow: Color { color: Rgb(235, 211, 145) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "nord", palette: Palette { background: Some(Color { color: Rgb(46, 52, 64) }), foreground: Some(Color { color: Rgb(216, 222, 233) }), black: Color { color: Rgb(0, 0, 0) }, blue: Color { color: Rgb(129, 161, 193) }, cyan: Color { color: Rgb(136, 192, 208) }, green: Color { color: Rgb(163, 190, 140) }, magenta: Color { color: Rgb(180, 142, 173) }, red: Color { color: Rgb(191, 97, 106) }, white: Color { color: Rgb(229, 233, 240) }, yellow: Color { color: Rgb(235, 203, 139) }, bright_black: Color { color: Rgb(88, 91, 112) }, bright_white: Color { color: Rgb(186, 194, 222) }, bright_red: Color { color: Rgb(243, 119, 153) }, bright_magenta: Color { color: Rgb(242, 174, 222) }, bright_green: Color { color: Rgb(137, 216, 139) }, bright_cyan: Color { color: Rgb(107, 215, 202) }, bright_blue: Color { color: Rgb(116, 168, 252) }, bright_yellow: Color { color: Rgb(235, 211, 145) } }, component_style: ComponentStyle { block_title: Some(Style { fg: Some(Yellow), bg: None, modifiers: [] }), border: Some(Style { fg: Some(BrightBlack), bg: None, modifiers: [] }), playback_status: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), playback_track: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), playback_artists: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), playback_album: Some(Style { fg: Some(Magenta), bg: None, modifiers: [] }), playback_metadata: Some(Style { fg: Some(Blue), bg: None, modifiers: [] }), playback_progress_bar: Some(Style { fg: Some(Green), bg: Some(Black), modifiers: [] }), playback_progress_bar_unfilled: None, current_playing: Some(Style { fg: Some(Green), bg: None, modifiers: [Bold] }), page_desc: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), playlist_desc: Some(Style { fg: Some(BrightBlack), bg: None, modifiers: [Dim] }), table_header: Some(Style { fg: Some(Blue), bg: None, modifiers: [] }), selection: Some(Style { fg: Some(White), bg: Some(Blue), modifiers: [] }), secondary_row: Some(Style { fg: None, bg: None, modifiers: [] }), like: Some(Style { fg: None, bg: None, modifiers: [] }), lyrics_played: Some(Style { fg: None, bg: None, modifiers: [Dim] }), lyrics_playing: None } }] }, cache_folder: "/home/sam/.cache/spotify-player" }
2025-08-27T11:02:09.218277Z  INFO spotify_player::state::data: Loading Playlists data from /home/sam/.cache/spotify-player/Playlists_cache.json...
2025-08-27T11:02:09.218683Z  INFO spotify_player::state::data: Successfully loaded Playlists data!
2025-08-27T11:02:09.218710Z  INFO spotify_player::state::data: Loading FollowedArtists data from /home/sam/.cache/spotify-player/FollowedArtists_cache.json...
2025-08-27T11:02:09.218842Z  INFO spotify_player::state::data: Successfully loaded FollowedArtists data!
2025-08-27T11:02:09.218857Z  INFO spotify_player::state::data: Loading SavedShows data from /home/sam/.cache/spotify-player/SavedShows_cache.json...
2025-08-27T11:02:09.218967Z  INFO spotify_player::state::data: Successfully loaded SavedShows data!
2025-08-27T11:02:09.219006Z  INFO spotify_player::state::data: Loading SavedAlbums data from /home/sam/.cache/spotify-player/SavedAlbums_cache.json...
2025-08-27T11:02:09.219531Z  INFO spotify_player::state::data: Successfully loaded SavedAlbums data!
2025-08-27T11:02:09.219556Z  INFO spotify_player::state::data: Loading SavedTracks data from /home/sam/.cache/spotify-player/SavedTracks_cache.json...
2025-08-27T11:02:09.226839Z  INFO spotify_player::state::data: Successfully loaded SavedTracks data!
2025-08-27T11:02:09.326846Z  INFO spotify_player::auth: Using cached credentials
2025-08-27T11:02:09.326879Z  INFO spotify_player::streaming: Application's connect configurations: ConnectConfig { name: "sp@SAM-EOS", device_type: Computer, is_group: false, initial_volume: Some(45875), has_volume_ctrl: true }
2025-08-27T11:02:09.326904Z  INFO librespot_playback::mixer::softmixer: Mixing with softvol and volume control: Log(60.0)    
2025-08-27T11:02:09.326939Z  INFO spotify_player::streaming: Initializing a new integrated player with device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2025-08-27T11:02:09.327106Z  INFO spotify_player::streaming: Starting an integrated Spotify player using librespot's spirc protocol
2025-08-27T11:02:09.327347Z  INFO librespot_playback::convert: Converting with ditherer: tpdf    
2025-08-27T11:02:09.327376Z  INFO librespot_playback::audio_backend::pulseaudio: Using PulseAudioSink with format: S16    
2025-08-27T11:02:09.577420Z  INFO librespot_core::session: Connecting to AP "ap-gew4.spotify.com:4070"    
2025-08-27T11:02:09.727944Z  INFO librespot_core::session: Authenticated as 'sorodon' !    
2025-08-27T11:02:09.728174Z  INFO spotify_player::streaming: New streaming connection has been established!
2025-08-27T11:02:09.728190Z  INFO spotify_player::client: Used a new session for Spotify client.
2025-08-27T11:02:09.728207Z  INFO spotify_player::token: Getting a new authentication token...
2025-08-27T11:02:09.728407Z  INFO librespot_core::session: Country: "DE"    
2025-08-27T11:02:09.800900Z ERROR librespot_core::mercury: error 403 for uri hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    
2025-08-27T11:02:09.801005Z ERROR spotify_player::client::spotify: Failed to get a new token: failed to get the token: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", status_code: 403, payload: [[123, 34, 99, 111, 100, 101, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 34, 73, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 34, 125]] } }
2025-08-27T11:02:09.801127Z  INFO spotify_player: Starting a client socket at 127.0.0.1:8080
2025-08-27T11:02:09.801347Z ERROR client_request{request=GetUserSavedShows}: spotify_player::client::handlers: Failed to handle client request: Token is not valid
2025-08-27T11:02:09.801388Z ERROR client_request{request=GetCurrentUser}: spotify_player::client::handlers: Failed to handle client request: Token is not valid
2025-08-27T11:02:09.801401Z  INFO client_request{request=GetUserPlaylists}: spotify_player::token: Getting a new authentication token...
2025-08-27T11:02:09.801512Z ERROR client_request{request=GetUserFollowedArtists}: spotify_player::client::handlers: Failed to handle client request: Token is not valid
2025-08-27T11:02:09.801529Z ERROR client_request{request=GetUserSavedAlbums}: spotify_player::client::handlers: Failed to handle client request: Token is not valid
2025-08-27T11:02:09.801540Z ERROR client_request{request=GetUserSavedTracks}: spotify_player::client::handlers: Failed to handle client request: Token is not valid
2025-08-27T11:02:09.801903Z  INFO spotify_player::media_control: Initializing application's media control event watcher...
2025-08-27T11:02:09.886215Z ERROR librespot_core::mercury: error 403 for uri hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    
2025-08-27T11:02:09.886454Z ERROR client_request{request=GetUserPlaylists}: spotify_player::client::spotify: Failed to get a new token: failed to get the token: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", status_code: 403, payload: [[123, 34, 99, 111, 100, 101, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 34, 73, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 34, 125]] } }
2025-08-27T11:02:09.886524Z ERROR client_request{request=GetUserPlaylists}: spotify_player::client::handlers: Failed to handle client request: get access token: failed to get the authentication token stored inside the client.
2025-08-27T11:02:10.802178Z  INFO spotify_player::client::handlers: Current context ID (None) is different from the expected ID (Some(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))), update the context state
2025-08-27T11:02:10.802270Z  INFO client_request{request=GetContext(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))}: spotify_player::client: Get playlist context: spotify:playlist:4Jx2y6VZDUCQGgczm3fn8R
2025-08-27T11:02:10.802288Z  INFO client_request{request=GetContext(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))}: spotify_player::token: Getting a new authentication token...
2025-08-27T11:02:10.807257Z ERROR spotify_player::client: Failed to retrieve current playback: Token is not valid
2025-08-27T11:02:10.807339Z ERROR spotify_player::client: Failed to retrieve current playback: Token is not valid
2025-08-27T11:02:10.826893Z ERROR librespot_core::mercury: error 403 for uri hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    
2025-08-27T11:02:10.826950Z ERROR client_request{request=GetContext(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))}: spotify_player::client::spotify: Failed to get a new token: failed to get the token: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b708073fc0480ea92a077233ca87bd&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", status_code: 403, payload: [[123, 34, 99, 111, 100, 101, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 34, 73, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 34, 125]] } }
2025-08-27T11:02:10.827016Z ERROR client_request{request=GetContext(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))}: spotify_player::client::handlers: Failed to handle client request: get access token: failed to get the authentication token stored inside the client.
2025-08-27T11:02:13.801621Z ERROR librespot_core::mercury: error 403 for uri hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=122ecxxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    
2025-08-27T11:02:13.801663Z ERROR client_request{request=GetDevices}: spotify_player::client::handlers: Failed to handle client request: get access token: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=122ecxxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", status_code: 403, payload: [[123, 34, 99, 111, 100, 101, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 34, 73, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 34, 125]] } }

Screenshots

Image

Environment

  • OS: Arch Linux (Endeavour OS)
  • Application version: 0.20.7
  • Application features: pacman -S spotify-player
Originally created by @Sorodon on GitHub (Aug 27, 2025). Original GitHub issue: https://github.com/aome510/spotify-player/issues/815 **Describe the bug** Arch (EndeavourOS) with kitty terminal When opening the App it shows my start page with my playlists but selecting anything sends be to an eternal loading screen. No playback is shown and the device selection is empty. However other devices (like my phone) show the app in spotify-connect and it is selectable. When it is selected, the music is paused instantly when hitting play though. Even more weird: Uninstalling and installing (via pacman) again did not help at all. I deleted (as in moved and renamed) all config files but for some reason the app seems to remember my account and is able to show my startpage. Log shows errors about token being invalid, but I don't understand it fully **To Reproduce** For me: Simply opening the app, but I doubt this works for other PCs **Expected behaviour** I'd like to play music again **Log and backtrace** <details> <summary> Log </summary> (The Client and Device IDs were redacted by me) ``` 2025-08-27T11:02:09.217684Z INFO spotify_player: Configurations: Configs { app_config: AppConfig { theme: "nord", client_id: "122ecxxxxxxxxxxxxxxxxxxxxxxxxxxx", client_id_command: None, client_port: 8080, login_redirect_uri: "http://127.0.0.1:8989/login", player_event_hook_command: None, playback_format: "[{status}] {track} • {artists}\n{album}\n{metadata}", playback_metadata_fields: ["repeat", "shuffle", "volume", "device"], notify_format: NotifyFormat { summary: "{track} • {artists}", body: "{album}" }, notify_timeout_in_secs: 0, tracks_playback_limit: 50, proxy: None, ap_port: None, app_refresh_duration_in_ms: 32, playback_refresh_duration_in_ms: 0, page_size_in_rows: 20, play_icon: "\u{f03e4}", pause_icon: "\u{f040a}", liked_icon: "\u{f02d1}", border_type: Rounded, progress_bar_type: Rectangle, layout: LayoutConfig { library: LibraryLayoutConfig { playlist_percent: 40, album_percent: 40 }, playback_window_position: Top, playback_window_height: 6 }, cover_img_length: 9, cover_img_width: 5, cover_img_scale: 1.0, enable_media_control: true, enable_streaming: Always, enable_notify: true, enable_cover_image_cache: true, default_device: "sp@SAM-EOS", device: DeviceConfig { name: "sp@SAM-EOS", device_type: "computer", volume: 70, bitrate: 320, audio_cache: false, normalization: true, autoplay: true }, notify_streaming_only: false, seek_duration_secs: 5, sort_artist_albums_by_type: false }, keymap_config: KeymapConfig { keymaps: [Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('c'))] }, command: None }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('q'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [None(Char('n'))] }, command: NextTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('p'))] }, command: PreviousTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('.'))] }, command: PlayRandom }, Keymap { key_sequence: KeySequence { keys: [None(Char(' '))] }, command: ResumePause }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('r'))] }, command: Repeat }, Keymap { key_sequence: KeySequence { keys: [Alt(Char('r'))] }, command: ToggleFakeTrackRepeatMode }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('s'))] }, command: Shuffle }, Keymap { key_sequence: KeySequence { keys: [None(Char('+'))] }, command: VolumeChange { offset: 5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('-'))] }, command: VolumeChange { offset: -5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('_'))] }, command: Mute }, Keymap { key_sequence: KeySequence { keys: [None(Char('>'))] }, command: SeekForward }, Keymap { key_sequence: KeySequence { keys: [None(Char('<'))] }, command: SeekBackward }, Keymap { key_sequence: KeySequence { keys: [None(Enter)] }, command: ChooseSelected }, Keymap { key_sequence: KeySequence { keys: [None(Char('r'))] }, command: RefreshPlayback }, Keymap { key_sequence: KeySequence { keys: [None(Char('/'))] }, command: Search }, Keymap { key_sequence: KeySequence { keys: [None(Char('z'))] }, command: Queue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [None(Char('Z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('g'))] }, command: JumpToHighlightTrackInContext }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char(' '))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('a'))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('a'))] }, command: ShowActionsOnCurrentTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('R'))] }, command: RestartIntegratedClient }, Keymap { key_sequence: KeySequence { keys: [None(Tab)] }, command: FocusNextWindow }, Keymap { key_sequence: KeySequence { keys: [None(BackTab)] }, command: FocusPreviousWindow }, Keymap { key_sequence: KeySequence { keys: [None(Char('T'))] }, command: SwitchTheme }, Keymap { key_sequence: KeySequence { keys: [None(Char('D'))] }, command: SwitchDevice }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('p'))] }, command: BrowseUserPlaylists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('a'))] }, command: BrowseUserFollowedArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('A'))] }, command: BrowseUserSavedAlbums }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char(' '))] }, command: CurrentlyPlayingContextPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('t'))] }, command: TopTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('r'))] }, command: RecentlyPlayedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('y'))] }, command: LikedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('L'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('l'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('l'))] }, command: LibraryPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('s'))] }, command: SearchPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('b'))] }, command: BrowsePage }, Keymap { key_sequence: KeySequence { keys: [None(Backspace)] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('O'))] }, command: OpenSpotifyLinkFromClipboard }, Keymap { key_sequence: KeySequence { keys: [None(Char('?'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('h'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [None(Char('q'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [None(Esc)] }, command: ClosePopup }, Keymap { key_sequence: KeySequence { keys: [None(Char('j'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('n'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Down)] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('k'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('p'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(Up)] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageUp)] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('b'))] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageDown)] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('f'))] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('g'))] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Home)] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Char('G'))] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(End)] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('t'))] }, command: SortTrackByTitle }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('a'))] }, command: SortTrackByArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('A'))] }, command: SortTrackByAlbum }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('d'))] }, command: SortTrackByDuration }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('D'))] }, command: SortTrackByAddedDate }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('r'))] }, command: ReverseTrackOrder }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('a'))] }, command: SortLibraryAlphabetically }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('r'))] }, command: SortLibraryByRecent }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('k'))] }, command: MovePlaylistItemUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('j'))] }, command: MovePlaylistItemDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('N'))] }, command: CreatePlaylist }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('c'))] }, command: JumpToCurrentTrackInContext }], actions: [] }, theme_config: ThemeConfig { themes: [Theme { name: "default", palette: Palette { background: None, foreground: None, black: Color { color: Black }, blue: Color { color: Blue }, cyan: Color { color: Cyan }, green: Color { color: Green }, magenta: Color { color: Magenta }, red: Color { color: Red }, white: Color { color: Gray }, yellow: Color { color: Yellow }, bright_black: Color { color: DarkGray }, bright_white: Color { color: White }, bright_red: Color { color: LightRed }, bright_magenta: Color { color: LightMagenta }, bright_green: Color { color: LightGreen }, bright_cyan: Color { color: LightCyan }, bright_blue: Color { color: LightBlue }, bright_yellow: Color { color: LightYellow } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "default2", palette: Palette { background: None, foreground: None, black: Color { color: Black }, blue: Color { color: Blue }, cyan: Color { color: Cyan }, green: Color { color: Green }, magenta: Color { color: Magenta }, red: Color { color: Red }, white: Color { color: White }, yellow: Color { color: Yellow }, bright_black: Color { color: DarkGray }, bright_white: Color { color: White }, bright_red: Color { color: LightRed }, bright_magenta: Color { color: LightMagenta }, bright_green: Color { color: LightGreen }, bright_cyan: Color { color: LightCyan }, bright_blue: Color { color: LightBlue }, bright_yellow: Color { color: LightYellow } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "dracula", palette: Palette { background: Some(Color { color: Rgb(30, 31, 41) }), foreground: Some(Color { color: Rgb(248, 248, 242) }), black: Color { color: Rgb(0, 0, 0) }, blue: Color { color: Rgb(189, 147, 249) }, cyan: Color { color: Rgb(139, 233, 253) }, green: Color { color: Rgb(80, 250, 123) }, magenta: Color { color: Rgb(255, 121, 198) }, red: Color { color: Rgb(255, 85, 85) }, white: Color { color: Rgb(187, 187, 187) }, yellow: Color { color: Rgb(241, 250, 140) }, bright_black: Color { color: Rgb(85, 85, 85) }, bright_white: Color { color: Rgb(255, 255, 255) }, bright_red: Color { color: Rgb(255, 85, 85) }, bright_magenta: Color { color: Rgb(255, 121, 198) }, bright_green: Color { color: Rgb(80, 250, 123) }, bright_cyan: Color { color: Rgb(139, 233, 253) }, bright_blue: Color { color: Rgb(189, 147, 249) }, bright_yellow: Color { color: Rgb(241, 250, 140) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "dracula2", palette: Palette { background: Some(Color { color: Rgb(30, 31, 41) }), foreground: Some(Color { color: Rgb(248, 248, 242) }), black: Color { color: Rgb(0, 0, 0) }, blue: Color { color: Rgb(189, 147, 249) }, cyan: Color { color: Rgb(139, 233, 253) }, green: Color { color: Rgb(80, 250, 123) }, magenta: Color { color: Rgb(255, 121, 198) }, red: Color { color: Rgb(255, 85, 85) }, white: Color { color: Rgb(187, 187, 187) }, yellow: Color { color: Rgb(241, 250, 140) }, bright_black: Color { color: Rgb(85, 85, 85) }, bright_white: Color { color: Rgb(255, 255, 255) }, bright_red: Color { color: Rgb(255, 85, 85) }, bright_magenta: Color { color: Rgb(255, 121, 198) }, bright_green: Color { color: Rgb(80, 250, 123) }, bright_cyan: Color { color: Rgb(139, 233, 253) }, bright_blue: Color { color: Rgb(189, 147, 249) }, bright_yellow: Color { color: Rgb(241, 250, 140) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: Some(Style { fg: Some(White), bg: Some(Black), modifiers: [Bold] }), secondary_row: Some(Style { fg: None, bg: Some(Rgb { r: 103, g: 112, b: 117 }), modifiers: [] }), like: Some(Style { fg: Some(Red), bg: None, modifiers: [Bold] }), lyrics_played: None, lyrics_playing: None } }, Theme { name: "gruvbox_dark", palette: Palette { background: Some(Color { color: Rgb(40, 40, 40) }), foreground: Some(Color { color: Rgb(235, 219, 178) }), black: Color { color: Rgb(40, 40, 40) }, blue: Color { color: Rgb(69, 133, 136) }, cyan: Color { color: Rgb(104, 157, 106) }, green: Color { color: Rgb(152, 151, 26) }, magenta: Color { color: Rgb(177, 98, 134) }, red: Color { color: Rgb(204, 36, 29) }, white: Color { color: Rgb(168, 153, 132) }, yellow: Color { color: Rgb(215, 153, 33) }, bright_black: Color { color: Rgb(146, 131, 116) }, bright_white: Color { color: Rgb(235, 219, 178) }, bright_red: Color { color: Rgb(251, 73, 52) }, bright_magenta: Color { color: Rgb(211, 134, 155) }, bright_green: Color { color: Rgb(184, 187, 38) }, bright_cyan: Color { color: Rgb(142, 192, 124) }, bright_blue: Color { color: Rgb(131, 165, 152) }, bright_yellow: Color { color: Rgb(250, 189, 47) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "gruvbox_light", palette: Palette { background: Some(Color { color: Rgb(251, 241, 199) }), foreground: Some(Color { color: Rgb(40, 40, 40) }), black: Color { color: Rgb(251, 241, 199) }, blue: Color { color: Rgb(7, 102, 120) }, cyan: Color { color: Rgb(66, 123, 88) }, green: Color { color: Rgb(121, 116, 14) }, magenta: Color { color: Rgb(143, 63, 113) }, red: Color { color: Rgb(157, 0, 6) }, white: Color { color: Rgb(60, 56, 54) }, yellow: Color { color: Rgb(181, 118, 20) }, bright_black: Color { color: Rgb(157, 131, 116) }, bright_white: Color { color: Rgb(124, 111, 100) }, bright_red: Color { color: Rgb(204, 36, 29) }, bright_magenta: Color { color: Rgb(177, 97, 134) }, bright_green: Color { color: Rgb(152, 151, 26) }, bright_cyan: Color { color: Rgb(104, 157, 105) }, bright_blue: Color { color: Rgb(69, 133, 136) }, bright_yellow: Color { color: Rgb(215, 153, 33) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "solarized_dark", palette: Palette { background: Some(Color { color: Rgb(0, 43, 54) }), foreground: Some(Color { color: Rgb(131, 148, 150) }), black: Color { color: Rgb(7, 54, 66) }, blue: Color { color: Rgb(38, 139, 210) }, cyan: Color { color: Rgb(42, 161, 152) }, green: Color { color: Rgb(133, 153, 0) }, magenta: Color { color: Rgb(211, 54, 130) }, red: Color { color: Rgb(220, 50, 47) }, white: Color { color: Rgb(238, 232, 213) }, yellow: Color { color: Rgb(181, 137, 0) }, bright_black: Color { color: Rgb(0, 43, 54) }, bright_white: Color { color: Rgb(253, 246, 227) }, bright_red: Color { color: Rgb(203, 75, 22) }, bright_magenta: Color { color: Rgb(108, 113, 196) }, bright_green: Color { color: Rgb(88, 110, 117) }, bright_cyan: Color { color: Rgb(147, 161, 161) }, bright_blue: Color { color: Rgb(131, 148, 150) }, bright_yellow: Color { color: Rgb(101, 123, 131) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "solarized_light", palette: Palette { background: Some(Color { color: Rgb(253, 246, 227) }), foreground: Some(Color { color: Rgb(101, 123, 131) }), black: Color { color: Rgb(7, 54, 66) }, blue: Color { color: Rgb(38, 139, 210) }, cyan: Color { color: Rgb(42, 161, 152) }, green: Color { color: Rgb(133, 153, 0) }, magenta: Color { color: Rgb(211, 54, 130) }, red: Color { color: Rgb(220, 50, 47) }, white: Color { color: Rgb(238, 232, 213) }, yellow: Color { color: Rgb(181, 137, 0) }, bright_black: Color { color: Rgb(0, 43, 54) }, bright_white: Color { color: Rgb(253, 246, 227) }, bright_red: Color { color: Rgb(203, 75, 22) }, bright_magenta: Color { color: Rgb(108, 113, 196) }, bright_green: Color { color: Rgb(88, 110, 117) }, bright_cyan: Color { color: Rgb(147, 161, 161) }, bright_blue: Color { color: Rgb(131, 148, 150) }, bright_yellow: Color { color: Rgb(101, 123, 131) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "tokyonight", palette: Palette { background: Some(Color { color: Rgb(31, 35, 53) }), foreground: Some(Color { color: Rgb(192, 202, 245) }), black: Color { color: Rgb(65, 72, 104) }, blue: Color { color: Rgb(42, 195, 222) }, cyan: Color { color: Rgb(125, 207, 255) }, green: Color { color: Rgb(158, 206, 106) }, magenta: Color { color: Rgb(187, 154, 247) }, red: Color { color: Rgb(247, 118, 142) }, white: Color { color: Rgb(238, 232, 213) }, yellow: Color { color: Rgb(224, 175, 104) }, bright_black: Color { color: Rgb(36, 40, 59) }, bright_white: Color { color: Rgb(253, 246, 227) }, bright_red: Color { color: Rgb(255, 68, 153) }, bright_magenta: Color { color: Rgb(255, 0, 124) }, bright_green: Color { color: Rgb(115, 218, 202) }, bright_cyan: Color { color: Rgb(147, 161, 161) }, bright_blue: Color { color: Rgb(131, 148, 150) }, bright_yellow: Color { color: Rgb(101, 123, 131) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "catppuccin_latte", palette: Palette { background: Some(Color { color: Rgb(239, 241, 245) }), foreground: Some(Color { color: Rgb(76, 79, 105) }), black: Color { color: Rgb(92, 95, 119) }, blue: Color { color: Rgb(30, 102, 245) }, cyan: Color { color: Rgb(23, 146, 153) }, green: Color { color: Rgb(64, 160, 43) }, magenta: Color { color: Rgb(234, 118, 203) }, red: Color { color: Rgb(210, 15, 57) }, white: Color { color: Rgb(172, 176, 190) }, yellow: Color { color: Rgb(223, 142, 29) }, bright_black: Color { color: Rgb(108, 111, 133) }, bright_white: Color { color: Rgb(188, 192, 204) }, bright_red: Color { color: Rgb(222, 41, 62) }, bright_magenta: Color { color: Rgb(254, 133, 216) }, bright_green: Color { color: Rgb(73, 175, 61) }, bright_cyan: Color { color: Rgb(45, 159, 168) }, bright_blue: Color { color: Rgb(69, 110, 255) }, bright_yellow: Color { color: Rgb(238, 160, 45) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "catppuccin_frappe", palette: Palette { background: Some(Color { color: Rgb(48, 52, 70) }), foreground: Some(Color { color: Rgb(198, 208, 245) }), black: Color { color: Rgb(81, 87, 109) }, blue: Color { color: Rgb(140, 170, 238) }, cyan: Color { color: Rgb(129, 200, 190) }, green: Color { color: Rgb(166, 209, 137) }, magenta: Color { color: Rgb(244, 184, 228) }, red: Color { color: Rgb(231, 130, 132) }, white: Color { color: Rgb(165, 173, 206) }, yellow: Color { color: Rgb(229, 200, 144) }, bright_black: Color { color: Rgb(98, 104, 128) }, bright_white: Color { color: Rgb(181, 191, 226) }, bright_red: Color { color: Rgb(230, 113, 114) }, bright_magenta: Color { color: Rgb(242, 164, 219) }, bright_green: Color { color: Rgb(142, 199, 114) }, bright_cyan: Color { color: Rgb(90, 191, 181) }, bright_blue: Color { color: Rgb(123, 158, 240) }, bright_yellow: Color { color: Rgb(217, 186, 115) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "catppuccin_macchiato", palette: Palette { background: Some(Color { color: Rgb(36, 39, 58) }), foreground: Some(Color { color: Rgb(202, 211, 245) }), black: Color { color: Rgb(73, 77, 100) }, blue: Color { color: Rgb(138, 173, 244) }, cyan: Color { color: Rgb(139, 213, 202) }, green: Color { color: Rgb(166, 218, 149) }, magenta: Color { color: Rgb(245, 189, 230) }, red: Color { color: Rgb(237, 135, 150) }, white: Color { color: Rgb(165, 173, 203) }, yellow: Color { color: Rgb(238, 212, 159) }, bright_black: Color { color: Rgb(91, 96, 120) }, bright_white: Color { color: Rgb(184, 192, 224) }, bright_red: Color { color: Rgb(236, 116, 134) }, bright_magenta: Color { color: Rgb(242, 169, 221) }, bright_green: Color { color: Rgb(140, 207, 127) }, bright_cyan: Color { color: Rgb(99, 203, 192) }, bright_blue: Color { color: Rgb(120, 161, 246) }, bright_yellow: Color { color: Rgb(225, 198, 130) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "catppuccin_mocha", palette: Palette { background: Some(Color { color: Rgb(30, 30, 46) }), foreground: Some(Color { color: Rgb(205, 214, 244) }), black: Color { color: Rgb(69, 71, 90) }, blue: Color { color: Rgb(137, 180, 250) }, cyan: Color { color: Rgb(148, 226, 213) }, green: Color { color: Rgb(166, 227, 161) }, magenta: Color { color: Rgb(245, 194, 231) }, red: Color { color: Rgb(243, 139, 168) }, white: Color { color: Rgb(166, 173, 200) }, yellow: Color { color: Rgb(249, 226, 175) }, bright_black: Color { color: Rgb(88, 91, 112) }, bright_white: Color { color: Rgb(186, 194, 222) }, bright_red: Color { color: Rgb(243, 119, 153) }, bright_magenta: Color { color: Rgb(242, 174, 222) }, bright_green: Color { color: Rgb(137, 216, 139) }, bright_cyan: Color { color: Rgb(107, 215, 202) }, bright_blue: Color { color: Rgb(116, 168, 252) }, bright_yellow: Color { color: Rgb(235, 211, 145) } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }, Theme { name: "nord", palette: Palette { background: Some(Color { color: Rgb(46, 52, 64) }), foreground: Some(Color { color: Rgb(216, 222, 233) }), black: Color { color: Rgb(0, 0, 0) }, blue: Color { color: Rgb(129, 161, 193) }, cyan: Color { color: Rgb(136, 192, 208) }, green: Color { color: Rgb(163, 190, 140) }, magenta: Color { color: Rgb(180, 142, 173) }, red: Color { color: Rgb(191, 97, 106) }, white: Color { color: Rgb(229, 233, 240) }, yellow: Color { color: Rgb(235, 203, 139) }, bright_black: Color { color: Rgb(88, 91, 112) }, bright_white: Color { color: Rgb(186, 194, 222) }, bright_red: Color { color: Rgb(243, 119, 153) }, bright_magenta: Color { color: Rgb(242, 174, 222) }, bright_green: Color { color: Rgb(137, 216, 139) }, bright_cyan: Color { color: Rgb(107, 215, 202) }, bright_blue: Color { color: Rgb(116, 168, 252) }, bright_yellow: Color { color: Rgb(235, 211, 145) } }, component_style: ComponentStyle { block_title: Some(Style { fg: Some(Yellow), bg: None, modifiers: [] }), border: Some(Style { fg: Some(BrightBlack), bg: None, modifiers: [] }), playback_status: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), playback_track: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), playback_artists: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), playback_album: Some(Style { fg: Some(Magenta), bg: None, modifiers: [] }), playback_metadata: Some(Style { fg: Some(Blue), bg: None, modifiers: [] }), playback_progress_bar: Some(Style { fg: Some(Green), bg: Some(Black), modifiers: [] }), playback_progress_bar_unfilled: None, current_playing: Some(Style { fg: Some(Green), bg: None, modifiers: [Bold] }), page_desc: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), playlist_desc: Some(Style { fg: Some(BrightBlack), bg: None, modifiers: [Dim] }), table_header: Some(Style { fg: Some(Blue), bg: None, modifiers: [] }), selection: Some(Style { fg: Some(White), bg: Some(Blue), modifiers: [] }), secondary_row: Some(Style { fg: None, bg: None, modifiers: [] }), like: Some(Style { fg: None, bg: None, modifiers: [] }), lyrics_played: Some(Style { fg: None, bg: None, modifiers: [Dim] }), lyrics_playing: None } }] }, cache_folder: "/home/sam/.cache/spotify-player" } 2025-08-27T11:02:09.218277Z INFO spotify_player::state::data: Loading Playlists data from /home/sam/.cache/spotify-player/Playlists_cache.json... 2025-08-27T11:02:09.218683Z INFO spotify_player::state::data: Successfully loaded Playlists data! 2025-08-27T11:02:09.218710Z INFO spotify_player::state::data: Loading FollowedArtists data from /home/sam/.cache/spotify-player/FollowedArtists_cache.json... 2025-08-27T11:02:09.218842Z INFO spotify_player::state::data: Successfully loaded FollowedArtists data! 2025-08-27T11:02:09.218857Z INFO spotify_player::state::data: Loading SavedShows data from /home/sam/.cache/spotify-player/SavedShows_cache.json... 2025-08-27T11:02:09.218967Z INFO spotify_player::state::data: Successfully loaded SavedShows data! 2025-08-27T11:02:09.219006Z INFO spotify_player::state::data: Loading SavedAlbums data from /home/sam/.cache/spotify-player/SavedAlbums_cache.json... 2025-08-27T11:02:09.219531Z INFO spotify_player::state::data: Successfully loaded SavedAlbums data! 2025-08-27T11:02:09.219556Z INFO spotify_player::state::data: Loading SavedTracks data from /home/sam/.cache/spotify-player/SavedTracks_cache.json... 2025-08-27T11:02:09.226839Z INFO spotify_player::state::data: Successfully loaded SavedTracks data! 2025-08-27T11:02:09.326846Z INFO spotify_player::auth: Using cached credentials 2025-08-27T11:02:09.326879Z INFO spotify_player::streaming: Application's connect configurations: ConnectConfig { name: "sp@SAM-EOS", device_type: Computer, is_group: false, initial_volume: Some(45875), has_volume_ctrl: true } 2025-08-27T11:02:09.326904Z INFO librespot_playback::mixer::softmixer: Mixing with softvol and volume control: Log(60.0) 2025-08-27T11:02:09.326939Z INFO spotify_player::streaming: Initializing a new integrated player with device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2025-08-27T11:02:09.327106Z INFO spotify_player::streaming: Starting an integrated Spotify player using librespot's spirc protocol 2025-08-27T11:02:09.327347Z INFO librespot_playback::convert: Converting with ditherer: tpdf 2025-08-27T11:02:09.327376Z INFO librespot_playback::audio_backend::pulseaudio: Using PulseAudioSink with format: S16 2025-08-27T11:02:09.577420Z INFO librespot_core::session: Connecting to AP "ap-gew4.spotify.com:4070" 2025-08-27T11:02:09.727944Z INFO librespot_core::session: Authenticated as 'sorodon' ! 2025-08-27T11:02:09.728174Z INFO spotify_player::streaming: New streaming connection has been established! 2025-08-27T11:02:09.728190Z INFO spotify_player::client: Used a new session for Spotify client. 2025-08-27T11:02:09.728207Z INFO spotify_player::token: Getting a new authentication token... 2025-08-27T11:02:09.728407Z INFO librespot_core::session: Country: "DE" 2025-08-27T11:02:09.800900Z ERROR librespot_core::mercury: error 403 for uri hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2025-08-27T11:02:09.801005Z ERROR spotify_player::client::spotify: Failed to get a new token: failed to get the token: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", status_code: 403, payload: [[123, 34, 99, 111, 100, 101, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 34, 73, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 34, 125]] } } 2025-08-27T11:02:09.801127Z INFO spotify_player: Starting a client socket at 127.0.0.1:8080 2025-08-27T11:02:09.801347Z ERROR client_request{request=GetUserSavedShows}: spotify_player::client::handlers: Failed to handle client request: Token is not valid 2025-08-27T11:02:09.801388Z ERROR client_request{request=GetCurrentUser}: spotify_player::client::handlers: Failed to handle client request: Token is not valid 2025-08-27T11:02:09.801401Z INFO client_request{request=GetUserPlaylists}: spotify_player::token: Getting a new authentication token... 2025-08-27T11:02:09.801512Z ERROR client_request{request=GetUserFollowedArtists}: spotify_player::client::handlers: Failed to handle client request: Token is not valid 2025-08-27T11:02:09.801529Z ERROR client_request{request=GetUserSavedAlbums}: spotify_player::client::handlers: Failed to handle client request: Token is not valid 2025-08-27T11:02:09.801540Z ERROR client_request{request=GetUserSavedTracks}: spotify_player::client::handlers: Failed to handle client request: Token is not valid 2025-08-27T11:02:09.801903Z INFO spotify_player::media_control: Initializing application's media control event watcher... 2025-08-27T11:02:09.886215Z ERROR librespot_core::mercury: error 403 for uri hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2025-08-27T11:02:09.886454Z ERROR client_request{request=GetUserPlaylists}: spotify_player::client::spotify: Failed to get a new token: failed to get the token: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", status_code: 403, payload: [[123, 34, 99, 111, 100, 101, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 34, 73, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 34, 125]] } } 2025-08-27T11:02:09.886524Z ERROR client_request{request=GetUserPlaylists}: spotify_player::client::handlers: Failed to handle client request: get access token: failed to get the authentication token stored inside the client. 2025-08-27T11:02:10.802178Z INFO spotify_player::client::handlers: Current context ID (None) is different from the expected ID (Some(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))), update the context state 2025-08-27T11:02:10.802270Z INFO client_request{request=GetContext(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))}: spotify_player::client: Get playlist context: spotify:playlist:4Jx2y6VZDUCQGgczm3fn8R 2025-08-27T11:02:10.802288Z INFO client_request{request=GetContext(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))}: spotify_player::token: Getting a new authentication token... 2025-08-27T11:02:10.807257Z ERROR spotify_player::client: Failed to retrieve current playback: Token is not valid 2025-08-27T11:02:10.807339Z ERROR spotify_player::client: Failed to retrieve current playback: Token is not valid 2025-08-27T11:02:10.826893Z ERROR librespot_core::mercury: error 403 for uri hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b70xxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2025-08-27T11:02:10.826950Z ERROR client_request{request=GetContext(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))}: spotify_player::client::spotify: Failed to get a new token: failed to get the token: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=65b708073fc0480ea92a077233ca87bd&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", status_code: 403, payload: [[123, 34, 99, 111, 100, 101, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 34, 73, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 34, 125]] } } 2025-08-27T11:02:10.827016Z ERROR client_request{request=GetContext(Playlist(PlaylistId("4Jx2y6VZDUCQGgczm3fn8R")))}: spotify_player::client::handlers: Failed to handle client request: get access token: failed to get the authentication token stored inside the client. 2025-08-27T11:02:13.801621Z ERROR librespot_core::mercury: error 403 for uri hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=122ecxxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2025-08-27T11:02:13.801663Z ERROR client_request{request=GetDevices}: spotify_player::client::handlers: Failed to handle client request: get access token: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://keymaster/token/authenticated?scope=user-read-recently-played,user-top-read,user-read-playback-position,user-read-playback-state,user-modify-playback-state,user-read-currently-playing,streaming,playlist-read-private,playlist-modify-private,playlist-modify-public,playlist-read-collaborative,user-follow-read,user-follow-modify,user-library-read,user-library-modify&client_id=122ecxxxxxxxxxxxxxxxxxxxxxxxxxxx&device_id=45165xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", status_code: 403, payload: [[123, 34, 99, 111, 100, 101, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 34, 73, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 34, 125]] } } ``` </details> **Screenshots** <img width="729" height="451" alt="Image" src="https://github.com/user-attachments/assets/fc65eee7-6648-48b8-be76-cb268de0e0b2" /> **Environment** - OS: Arch Linux (Endeavour OS) - Application version: 0.20.7 - Application features: `pacman -S spotify-player`
kerem 2026-03-14 14:52:04 +03:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@feakuru commented on GitHub (Aug 27, 2025):

same here on Arch. might this be connected to the latest librespot bump?

<!-- gh-comment-id:3228137410 --> @feakuru commented on GitHub (Aug 27, 2025): same here on Arch. might this be connected to the latest `librespot` bump?
Author
Owner

@megakitsu commented on GitHub (Aug 27, 2025):

same here on Arch. might this be connected to the latest librespot bump?

Same on fedora, agreed think it's librespot

<!-- gh-comment-id:3228218434 --> @megakitsu commented on GitHub (Aug 27, 2025): > same here on Arch. might this be connected to the latest `librespot` bump? Same on fedora, agreed think it's librespot
Author
Owner

@arc-d3v commented on GitHub (Aug 27, 2025):

Edit : Seems related to https://github.com/hrkfdn/ncspot/issues/1681

<!-- gh-comment-id:3228238089 --> @arc-d3v commented on GitHub (Aug 27, 2025): Edit : Seems related to https://github.com/hrkfdn/ncspot/issues/1681
Author
Owner

@TimVosch commented on GitHub (Aug 27, 2025):

I fixed it by changing the librespot-playback in spotify_player/cargo.toml to

librespot-playback = {version = "0.7.0", default-features = false, features = ["native-tls"]}

For completion sake:

diff --git a/spotify_player/Cargo.toml b/spotify_player/Cargo.toml
index ca6b554..82a4bbd 100644
--- a/spotify_player/Cargo.toml
+++ b/spotify_player/Cargo.toml
@@ -18,7 +18,7 @@ dirs-next = "2.0.0"
 librespot-connect = { version = "0.7.0", optional = true }
 librespot-core = "0.7.0"
 librespot-oauth = "0.7.0"
-librespot-playback = { version = "0.7.0", optional = true }
+librespot-playback = { version = "0.7.0", optional = true,  default-features = false, features = ["native-tls"] }
 librespot-metadata = "0.7.0"
 log = "0.4.27"
 chrono = "0.4.41
<!-- gh-comment-id:3228377393 --> @TimVosch commented on GitHub (Aug 27, 2025): I fixed it by changing the librespot-playback in `spotify_player/cargo.toml` to ``` librespot-playback = {version = "0.7.0", default-features = false, features = ["native-tls"]} ``` For completion sake: ```diff diff --git a/spotify_player/Cargo.toml b/spotify_player/Cargo.toml index ca6b554..82a4bbd 100644 --- a/spotify_player/Cargo.toml +++ b/spotify_player/Cargo.toml @@ -18,7 +18,7 @@ dirs-next = "2.0.0" librespot-connect = { version = "0.7.0", optional = true } librespot-core = "0.7.0" librespot-oauth = "0.7.0" -librespot-playback = { version = "0.7.0", optional = true } +librespot-playback = { version = "0.7.0", optional = true, default-features = false, features = ["native-tls"] } librespot-metadata = "0.7.0" log = "0.4.27" chrono = "0.4.41 ```
Author
Owner

@aome510 commented on GitHub (Aug 27, 2025):

hi folks, please refer to my comment in https://github.com/aome510/spotify-player/issues/802#issuecomment-3218342832. 0.7.0 is broken so please use the latest master if possible.

librespot-playback = {version = "0.7.0", default-features = false, features = ["native-tls"]}

Not sure why this is needed. What is the error if you just run latest master as-is?

<!-- gh-comment-id:3228418413 --> @aome510 commented on GitHub (Aug 27, 2025): hi folks, please refer to my comment in https://github.com/aome510/spotify-player/issues/802#issuecomment-3218342832. `0.7.0` is broken so please use the latest `master` if possible. > librespot-playback = {version = "0.7.0", default-features = false, features = ["native-tls"]} Not sure why this is needed. What is the error if you just run latest `master` as-is?
Author
Owner

@TimVosch commented on GitHub (Aug 27, 2025):

hi folks, please refer to my comment in #802 (comment). 0.7.0 is broken so please use the latest master if possible.

librespot-playback = {version = "0.7.0", default-features = false, features = ["native-tls"]}

Not sure why this is needed. What is the error if you just run latest master as-is?

There was no playback device and these errors popped up in the log. I am using master as-is here.

2025-08-27T14:02:40.783329Z ERROR librespot_playback::player: Player Commands Error: channel closed    
2025-08-27T14:02:40.793664Z ERROR librespot_playback::player: Player thread Error: Any { .. }    

By changing the librespot-playback dependency it is solved and playback device is available again, and the errors are gone.

I don't know why, but this is taken from the previously mentioned ncspot commit (https://github.com/hrkfdn/ncspot/issues/1681) as mentioned by @arc-d3v .

https://github.com/aome510/spotify-player/issues/802#issuecomment-3218342832 unfortunately does not solve this issue. It appears to be separate.

<!-- gh-comment-id:3228429403 --> @TimVosch commented on GitHub (Aug 27, 2025): > hi folks, please refer to my comment in [#802 (comment)](https://github.com/aome510/spotify-player/issues/802#issuecomment-3218342832). `0.7.0` is broken so please use the latest `master` if possible. > > > librespot-playback = {version = "0.7.0", default-features = false, features = ["native-tls"]} > > Not sure why this is needed. What is the error if you just run latest `master` as-is? There was no playback device and these errors popped up in the log. I am using master as-is here. ``` 2025-08-27T14:02:40.783329Z ERROR librespot_playback::player: Player Commands Error: channel closed 2025-08-27T14:02:40.793664Z ERROR librespot_playback::player: Player thread Error: Any { .. } ``` By changing the librespot-playback dependency it is solved and playback device is available again, and the errors are gone. I don't know why, but this is taken from the previously mentioned ncspot commit (https://github.com/hrkfdn/ncspot/issues/1681) as mentioned by @arc-d3v . https://github.com/aome510/spotify-player/issues/802#issuecomment-3218342832 unfortunately does not solve this issue. It appears to be separate.
Author
Owner

@aome510 commented on GitHub (Aug 27, 2025):

By changing the librespot-playback dependency it is solved and playback device is available again, and the errors are gone.

Good to know, thanks. I will keep that in mind before releasing a new version

<!-- gh-comment-id:3228450235 --> @aome510 commented on GitHub (Aug 27, 2025): > By changing the librespot-playback dependency it is solved and playback device is available again, and the errors are gone. Good to know, thanks. I will keep that in mind before releasing a new version
Author
Owner

@TimVosch commented on GitHub (Aug 27, 2025):

By changing the librespot-playback dependency it is solved and playback device is available again, and the errors are gone.

Good to know, thanks. I will keep that in mind before releasing a new version

If it would help you I can send you DEBUG logs, but privately due to all the tokens and sensitive information in there. Let me know how to get those to you.

<!-- gh-comment-id:3228458862 --> @TimVosch commented on GitHub (Aug 27, 2025): > > By changing the librespot-playback dependency it is solved and playback device is available again, and the errors are gone. > > Good to know, thanks. I will keep that in mind before releasing a new version If it would help you I can send you DEBUG logs, but privately due to all the tokens and sensitive information in there. Let me know how to get those to you.
Author
Owner

@aome510 commented on GitHub (Aug 27, 2025):

By changing the librespot-playback dependency it is solved and playback device is available again, and the errors are gone.

Good to know, thanks. I will keep that in mind before releasing a new version

If it would help you I can send you DEBUG logs, but privately due to all the tokens and sensitive information in there. Let me know how to get those to you.

No it's fine. if using native-tls solves the issue then I will include that in the next release

<!-- gh-comment-id:3228472129 --> @aome510 commented on GitHub (Aug 27, 2025): > > > By changing the librespot-playback dependency it is solved and playback device is available again, and the errors are gone. > > > > > > Good to know, thanks. I will keep that in mind before releasing a new version > > If it would help you I can send you DEBUG logs, but privately due to all the tokens and sensitive information in there. Let me know how to get those to you. No it's fine. if using `native-tls` solves the issue then I will include that in the next release
Author
Owner

@Sorodon commented on GitHub (Aug 31, 2025):

hi folks, please refer to my comment in #802 (comment). 0.7.0 is broken so please use the latest master if possible.

librespot-playback = {version = "0.7.0", default-features = false, features = ["native-tls"]}

Not sure why this is needed. What is the error if you just run latest master as-is?

This worked for me (even though the Device selection is (understandably) not working anymore).
Thanks a lot!
Should I keep the issue open since this seems just like a workaround or close it?

<!-- gh-comment-id:3239923678 --> @Sorodon commented on GitHub (Aug 31, 2025): > hi folks, please refer to my comment in [#802 (comment)](https://github.com/aome510/spotify-player/issues/802#issuecomment-3218342832). `0.7.0` is broken so please use the latest `master` if possible. > > > librespot-playback = {version = "0.7.0", default-features = false, features = ["native-tls"]} > > Not sure why this is needed. What is the error if you just run latest `master` as-is? This worked for me (even though the Device selection is (understandably) not working anymore). Thanks a lot! Should I keep the issue open since this seems just like a workaround or close it?
Author
Owner

@arc-d3v commented on GitHub (Aug 31, 2025):

Should I keep the issue open since this seems just like a workaround or close it?

You should keep the issue open, spotify-player is still unusable as is until fix.
@TimVosch confirm that it is not working on master as well.

<!-- gh-comment-id:3239932785 --> @arc-d3v commented on GitHub (Aug 31, 2025): > Should I keep the issue open since this seems just like a workaround or close it? You should keep the issue open, spotify-player is still unusable as is until fix. @TimVosch confirm that it is not working on ```master``` as well.
Author
Owner

@Sorodon commented on GitHub (Aug 31, 2025):

Should I keep the issue open since this seems just like a workaround or close it?

You should keep the issue open, spotify-player is still unusable as is until fix. @TimVosch confirm that it is not working on master as well.

I suspect some other underlying cause there as it is working again for me. I did nothing other than uninstall from Pacman and install the master branch via cargo.

<!-- gh-comment-id:3239947358 --> @Sorodon commented on GitHub (Aug 31, 2025): > > Should I keep the issue open since this seems just like a workaround or close it? > > You should keep the issue open, spotify-player is still unusable as is until fix. [@TimVosch](https://github.com/TimVosch) confirm that it is not working on `master` as well. I suspect some other underlying cause there as it is working again for me. I did nothing other than uninstall from Pacman and install the `master` branch via cargo.
Sign in to join this conversation.
No milestone
No project
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.

Dependencies

No dependencies set.

Reference
starred/spotify-player#1422
No description provided.