aome510 / spotify-player

A Spotify player in the terminal with full feature parity
MIT License
3.14k stars 137 forks source link

Devices doesn't show Google Cast devices #405

Closed tripplehelix closed 3 months ago

tripplehelix commented 3 months ago

Describe the bug When using Spotify, Spotify Cast lists Google Cast devices. When using Spotify_Player (With a custom working client id) Google Cast devices don't show under the Devices menu.

To Reproduce Open Devices

Expected behaviour List all Google Cast Devices

Log and backtrace Log

2024-03-28T14:05:55.021139Z  INFO spotify_player: Configurations: Configs { app_config: AppConfig { theme: "default", client_id: "5af78db3cb6641f0b1bb9fbf704e1c36", client_port: 8080, copy_command: Command { command: "xclip", args: ["-sel", "c"] }, player_event_hook_command: None, playback_format: "{track} • {artists}\n{album}\n{metadata}", tracks_playback_limit: 100, 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{f144}", pause_icon: "\u{f03e5}", liked_icon: "\u{f4c8}", border_type: Hidden, progress_bar_type: Line, playback_window_position: Bottom, cover_img_length: 9, cover_img_width: 5, cover_img_scale: 1.0, playback_window_width: 6, enable_media_control: true, enable_streaming: Always, enable_cover_image_cache: true, default_device: "Spotify_Player", device: DeviceConfig { name: "Spotify_Player", device_type: "computer", volume: 70, bitrate: 320, audio_cache: false, normalization: false } }, keymap_config: KeymapConfig { keymaps: [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: [Ctrl(Char('s'))] }, command: Shuffle }, Keymap { key_sequence: KeySequence { keys: [None(Char('+'))] }, command: VolumeUp }, Keymap { key_sequence: KeySequence { keys: [None(Char('-'))] }, command: VolumeDown }, 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(' '))] }, 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: LyricPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('l'))] }, command: LyricPage }, 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: [Ctrl(Char('q'))] }, 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: [Ctrl(Char('c'))] }, 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: [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 }] }, 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_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: 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: Some(Style { fg: Some(Magenta), bg: None, modifiers: [] }), border: Some(Style { fg: None, bg: None, modifiers: [] }), 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(Yellow), bg: None, modifiers: [] }), playback_metadata: Some(Style { fg: Some(BrightBlack), bg: None, modifiers: [] }), playback_progress_bar: Some(Style { fg: Some(Green), bg: Some(BrightBlack), modifiers: [] }), current_playing: Some(Style { fg: Some(Green), bg: None, modifiers: [Bold] }), page_desc: Some(Style { fg: Some(Cyan), bg: None, modifiers: [Bold] }), table_header: Some(Style { fg: Some(Blue), bg: None, modifiers: [] }), selection: Some(Style { fg: None, bg: None, modifiers: [Bold, Reversed] }) } }, 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_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: 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_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: 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_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: 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_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: 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_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: 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_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: 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(30, 30, 46) }, blue: Color { color: Rgb(137, 180, 250) }, cyan: Color { color: Rgb(137, 220, 235) }, green: Color { color: Rgb(166, 227, 161) }, magenta: Color { color: Rgb(203, 166, 247) }, red: Color { color: Rgb(243, 139, 168) }, white: Color { color: Rgb(205, 214, 244) }, yellow: Color { color: Rgb(249, 226, 175) }, bright_black: Color { color: Rgb(30, 30, 46) }, bright_white: Color { color: Rgb(205, 214, 244) }, bright_red: Color { color: Rgb(243, 139, 168) }, bright_magenta: Color { color: Rgb(203, 166, 247) }, bright_green: Color { color: Rgb(166, 227, 161) }, bright_cyan: Color { color: Rgb(137, 220, 235) }, bright_blue: Color { color: Rgb(137, 180, 250) }, bright_yellow: Color { color: Rgb(249, 226, 175) } }, component_style: ComponentStyle { block_title: None, border: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: Some(Style { fg: None, bg: Some(Rgb { r: 49, g: 50, b: 68 }), modifiers: [Bold] }) } }, 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(239, 241, 245) }, blue: Color { color: Rgb(30, 102, 245) }, cyan: Color { color: Rgb(4, 165, 229) }, green: Color { color: Rgb(64, 160, 43) }, magenta: Color { color: Rgb(136, 57, 239) }, red: Color { color: Rgb(210, 15, 57) }, white: Color { color: Rgb(76, 79, 105) }, yellow: Color { color: Rgb(223, 142, 29) }, bright_black: Color { color: Rgb(239, 241, 245) }, bright_white: Color { color: Rgb(76, 79, 105) }, bright_red: Color { color: Rgb(210, 15, 57) }, bright_magenta: Color { color: Rgb(136, 57, 239) }, bright_green: Color { color: Rgb(64, 160, 43) }, bright_cyan: Color { color: Rgb(4, 165, 229) }, bright_blue: Color { color: Rgb(30, 102, 245) }, bright_yellow: Color { color: Rgb(223, 142, 29) } }, component_style: ComponentStyle { block_title: None, border: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: Some(Style { fg: None, bg: Some(Rgb { r: 204, g: 208, b: 218 }), modifiers: [Bold] }) } }, 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(48, 52, 70) }, blue: Color { color: Rgb(140, 170, 238) }, cyan: Color { color: Rgb(137, 220, 235) }, green: Color { color: Rgb(166, 209, 137) }, magenta: Color { color: Rgb(202, 158, 230) }, red: Color { color: Rgb(231, 130, 132) }, white: Color { color: Rgb(198, 208, 245) }, yellow: Color { color: Rgb(229, 200, 144) }, bright_black: Color { color: Rgb(48, 52, 70) }, bright_white: Color { color: Rgb(198, 208, 245) }, bright_red: Color { color: Rgb(231, 130, 132) }, bright_magenta: Color { color: Rgb(202, 158, 230) }, bright_green: Color { color: Rgb(166, 209, 137) }, bright_cyan: Color { color: Rgb(137, 220, 235) }, bright_blue: Color { color: Rgb(140, 170, 238) }, bright_yellow: Color { color: Rgb(229, 200, 144) } }, component_style: ComponentStyle { block_title: None, border: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: Some(Style { fg: None, bg: Some(Rgb { r: 65, g: 69, b: 89 }), modifiers: [Bold] }) } }, 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(36, 39, 58) }, blue: Color { color: Rgb(138, 173, 244) }, cyan: Color { color: Rgb(145, 215, 227) }, green: Color { color: Rgb(166, 218, 149) }, magenta: Color { color: Rgb(198, 160, 246) }, red: Color { color: Rgb(237, 135, 150) }, white: Color { color: Rgb(202, 211, 245) }, yellow: Color { color: Rgb(238, 212, 159) }, bright_black: Color { color: Rgb(36, 39, 58) }, bright_white: Color { color: Rgb(202, 211, 245) }, bright_red: Color { color: Rgb(237, 135, 150) }, bright_magenta: Color { color: Rgb(198, 160, 246) }, bright_green: Color { color: Rgb(166, 218, 149) }, bright_cyan: Color { color: Rgb(145, 215, 227) }, bright_blue: Color { color: Rgb(138, 173, 244) }, bright_yellow: Color { color: Rgb(238, 212, 159) } }, component_style: ComponentStyle { block_title: None, border: None, playback_track: None, playback_artists: None, playback_album: None, playback_metadata: None, playback_progress_bar: None, current_playing: None, page_desc: None, table_header: None, selection: Some(Style { fg: None, bg: Some(Rgb { r: 54, g: 58, b: 79 }), modifiers: [Bold] }) } }] }, cache_folder: "/home/tom/.cache/spotify-player", config_folder: "/home/tom/.config/spotify-player" }
2024-03-28T14:05:55.021348Z  INFO spotify_player::state::data: Loading Playlists data from /home/tom/.cache/spotify-player/Playlists_cache.json...
2024-03-28T14:05:55.021547Z  INFO spotify_player::state::data: Successfully loaded Playlists data!
2024-03-28T14:05:55.021553Z  INFO spotify_player::state::data: Loading FollowedArtists data from /home/tom/.cache/spotify-player/FollowedArtists_cache.json...
2024-03-28T14:05:55.022032Z  INFO spotify_player::state::data: Successfully loaded FollowedArtists data!
2024-03-28T14:05:55.022036Z  INFO spotify_player::state::data: Loading SavedAlbums data from /home/tom/.cache/spotify-player/SavedAlbums_cache.json...
2024-03-28T14:05:55.022102Z  INFO spotify_player::state::data: Successfully loaded SavedAlbums data!
2024-03-28T14:05:55.022106Z  INFO spotify_player::state::data: Loading SavedTracks data from /home/tom/.cache/spotify-player/SavedTracks_cache.json...
2024-03-28T14:05:55.042566Z  INFO spotify_player::state::data: Successfully loaded SavedTracks data!
2024-03-28T14:05:55.237557Z  INFO spotify_player::auth: Successfully used the cached credentials to create a new session!
2024-03-28T14:05:55.252669Z  INFO spotify_player::token: Getting new authentication token...
2024-03-28T14:05:55.278724Z  INFO spotify_player::token: Got new token: Token { access_token: "BQB4KNvAPvKgNbBtSIRBTv0DFGnC1SVRAFvdpgHK-BBI7d2HwgOM_LiAB-MMik2cDkrZA965mHoFCMcut0v-yEkQI81eCYAP3bTnSEPPjfVBpSvKY7P-SEjfFuxFE1SwY9cOtRhz4Tqf3xZJ1jbjSZtYw5UMdwFKYge15Bri7zLJ-YNnta3_nztvGYzH1LyAmEIfAo3LoGkFnHc6NKHw4RoiUPUv2NFCUHQLi_oou0jXPGI-l6qThfBo_6SkNR2Asp2GtdsqLYxKNDdo8sYtqbNprEQ9SfSt-WgTP0YQvGycww", expires_in: TimeDelta { secs: 3600, nanos: 0 }, expires_at: Some(2024-03-28T15:05:55.278722855Z), refresh_token: None, scopes: {} }
2024-03-28T14:05:55.278745Z  INFO spotify_player::streaming: Application's connect configurations: ConnectConfig { name: "Spotify_Player", device_type: Computer, initial_volume: Some(45875), has_volume_ctrl: true, autoplay: false }
2024-03-28T14:05:55.278766Z  INFO spotify_player::streaming: Initializing a new integrated player with device_id=5a48fe56-b562-46b4-9671-d60250a347bf
2024-03-28T14:05:55.278816Z  INFO spotify_player::streaming: Starting an integrated Spotify player using librespot's spirc protocol
2024-03-28T14:05:55.389245Z  INFO spotify_player: No playback found on startup, trying to connect to an available device...
2024-03-28T14:05:55.389315Z  INFO spotify_player: Starting a client socket at 127.0.0.1:8080
2024-03-28T14:05:55.389509Z  INFO spotify_player::media_control: Initializing application's media control event watcher...
2024-03-28T14:05:55.428134Z  INFO client_request{request=GetCurrentUser}: spotify_player::client: successfully handled the client request, took: 38ms
2024-03-28T14:05:55.574935Z  INFO client_request{request=GetUserSavedAlbums}: spotify_player::client: successfully handled the client request, took: 185ms
2024-03-28T14:05:55.579296Z  INFO client_request{request=GetUserFollowedArtists}: spotify_player::client: successfully handled the client request, took: 189ms
2024-03-28T14:05:55.625718Z  INFO client_request{request=GetUserPlaylists}: spotify_player::client: successfully handled the client request, took: 236ms
2024-03-28T14:05:55.978454Z  INFO client_request{request=GetDevices}: spotify_player::client: successfully handled the client request, took: 41ms
2024-03-28T14:05:56.429981Z  INFO client_request{request=ConnectDevice(None)}: spotify_player::client: Available devices: [Device { id: Some("5a48fe56-b562-46b4-9671-d60250a347bf"), is_active: false, is_private_session: false, is_restricted: false, name: "Spotify_Player", _type: Computer, volume_percent: Some(70) }]
2024-03-28T14:05:56.430009Z  INFO client_request{request=ConnectDevice(None)}: spotify_player::client: Trying to connect to device (id=5a48fe56-b562-46b4-9671-d60250a347bf)
2024-03-28T14:05:56.760395Z  INFO client_request{request=GetUserSavedTracks}: spotify_player::client: successfully handled the client request, took: 1371ms
2024-03-28T14:05:56.877048Z  INFO client_request{request=ConnectDevice(None)}: spotify_player::client: Connection succeeded (device_id=5a48fe56-b562-46b4-9671-d60250a347bf)!
2024-03-28T14:05:56.877070Z  INFO client_request{request=ConnectDevice(None)}: spotify_player::client: successfully handled the client request, took: 1487ms
2024-03-28T14:05:57.312579Z  INFO spotify_player::streaming: Got a new player event: Paused { track_id: TrackId("2mO0AFhyUJmNh7RlTDuxL9"), position_ms: 125300, duration_ms: 201173 }
2024-03-28T14:05:57.984743Z  INFO spotify_player::client: Retrieving an image from the file: /home/tom/.cache/spotify-player/image/Nights Of Ballads & Blues-McCoy Tyner-cover.jpg
2024-03-28T14:05:57.984902Z  INFO spotify_player::client: Retrieving an image from the file: /home/tom/.cache/spotify-player/image/Nights Of Ballads & Blues-McCoy Tyner-cover.jpg
2024-03-28T14:06:01.241610Z  INFO client_request{request=Player(TransferPlayback("5a48fe56-b562-46b4-9671-d60250a347bf", false))}: spotify_player::client: Transferred the playback to device with 5a48fe56-b562-46b4-9671-d60250a347bf id
2024-03-28T14:06:01.241655Z  INFO client_request{request=Player(TransferPlayback("5a48fe56-b562-46b4-9671-d60250a347bf", false))}: spotify_player::client: successfully handled the client request, took: 125ms
2024-03-28T14:06:01.243824Z  INFO spotify_player::streaming: Got a new player event: Changed { old_track_id: TrackId("2mO0AFhyUJmNh7RlTDuxL9"), new_track_id: TrackId("2mO0AFhyUJmNh7RlTDuxL9") }
2024-03-28T14:06:01.243833Z  INFO spotify_player::streaming: Got a new player event: Paused { track_id: TrackId("2mO0AFhyUJmNh7RlTDuxL9"), position_ms: 125300, duration_ms: 201173 }
2024-03-28T14:06:02.444865Z  INFO client_request{request=GetDevices}: spotify_player::client: successfully handled the client request, took: 41ms
2024-03-28T14:06:04.056072Z  INFO spotify_player::streaming: Got a new player event: Changed { old_track_id: TrackId("2mO0AFhyUJmNh7RlTDuxL9"), new_track_id: TrackId("2mO0AFhyUJmNh7RlTDuxL9") }
2024-03-28T14:06:04.056094Z  INFO spotify_player::streaming: Got a new player event: Paused { track_id: TrackId("2mO0AFhyUJmNh7RlTDuxL9"), position_ms: 125300, duration_ms: 201173 }
2024-03-28T14:06:04.058283Z  INFO client_request{request=Player(TransferPlayback("5a48fe56-b562-46b4-9671-d60250a347bf", false))}: spotify_player::client: Transferred the playback to device with 5a48fe56-b562-46b4-9671-d60250a347bf id
2024-03-28T14:06:04.058308Z  INFO client_request{request=Player(TransferPlayback("5a48fe56-b562-46b4-9671-d60250a347bf", false))}: spotify_player::client: successfully handled the client request, took: 142ms

Backtrace

Screenshots Screenshot_2024-03-28_14-12-51

During casting from Spotify or via the Google speakers, the speaker or group that's playing shows up under devices. But then dissapears if I disconnect from it.

Environment

aome510 commented 3 months ago

https://github.com/spotify/web-api/issues/787

Note that due to their API restriction, not all devices are listed under get-devices API. The official client uses a different logic to get the list of available devices. Therefore, this is not a bug from spotify_player perspective.

Related: https://github.com/aome510/spotify-player/issues/288.