spocon / spocon Goto Github PK
View Code? Open in Web Editor NEWSpoCon - A Spotify Connect Client for Debian , Ubuntu and Raspberry Pi based on librespot-java
Home Page: https://spocon.github.io/spocon
License: MIT License
SpoCon - A Spotify Connect Client for Debian , Ubuntu and Raspberry Pi based on librespot-java
Home Page: https://spocon.github.io/spocon
License: MIT License
Can you run multiple instances of spocom on the same machine with different configurations?
Describe the bug
spocon appear to be working from phone's spotify point of view but there is no sound at all.
To Reproduce
Steps to reproduce the behavior:
-> Spotify reports that the song is supposed to be playing fine and that the volume is 100% but I can't ear anything
I can play sound fine on that computer and speaker-test
, for example, seems to work as expected.
Expected behavior
Have sound on the computer's speakers.
Logs
Here is all the log I have when connecting Spotify to spocon:
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,836 TRACE DealerClient:114 - Received request. {mid: hm://connect-state/v1/player/command, key: 37797eb8-0080-408f-99f2-61d088635dec, pid: 79238043, sender: 26b7a49be355ffb62b783d9dcee819e1da499639, command: {"endpoint":"transfer","data":"CgYIABAAGAAS6AgIxPbipbAwEN/WAhkAAAAAAADwPyAAKs8ICgASHnRvcHRyYWNrNlNSMGREdVhIMnZ0Z0JmTUxyaXZLVhoQ4jYhX/zCTbWUDKWBCpk3mSJWChZhdmFpbGFibGVfZmlsZV9mb3JtYXRzEjxbIk9HR19WT1JCSVNfMzIwIiwiT0dHX1ZPUkJJU18xNjAiLCJPR0dfVk9SQklTXzk2IiwiQUFDXzI0Il0iFQoMdHJhY2tfcGxheWVyEgVhdWRpbyIqCiBhY3Rpb25zLnNraXBwaW5nX3ByZXZfcGFzdF90cmFjaxIGcmVzdW1lIjMKCmFydGlzdF91cmkSJXNwb3RpZnk6YXJ0aXN0OjJRc3luYWdTZEFxWmozVTlIZ0R6akQiFQoLYWxidW1fdGl0bGUSBkV4b2R1cyIOCglpdGVyYXRpb24SATAiNAoLY29udGV4dF91cmkSJXNwb3RpZnk6YXJ0aXN0OjJRc3luYWdTZEFxWmozVTlIZ0R6akQiMwoKZW50aXR5X3VyaRIlc3BvdGlmeTphcnRpc3Q6MlFzeW5hZ1NkQXFaajNVOUhnRHpqRCIQCgpwb3B1bGFyaXR5EgI3MSIdChRtZWRpYS5zdGFydF9wb3NpdGlvbhIFNDEyNDEiFgoRYWxidW1fZGlzY19udW1iZXISATEiMQoJYWxidW1fdXJpEiRzcG90aWZ5OmFsYnVtOjJtQmJWMEFkNkI0eWRITVpsekFZN1MiEgoIZHVyYXRpb24SBjE3MjkzMyItCgV0aXRsZRIkT25lIExvdmUgLyBQZW9wbGUgR2V0IFJlYWR5IC0gTWVkbGV5IkoKEGltYWdlX3hsYXJnZV91cmwSNnNwb3RpZnk6aW1hZ2U6YWI2NzYxNmQwMDAwYjI3MzgxMWJmZGM0ZjU1YjNhNzQ4NDUyNGFhZiJJCg9pbWFnZV9zbWFsbF91cmwSNnNwb3RpZnk6aW1hZ2U6YWI2NzYxNmQwMDAwNDg1MTgxMWJmZGM0ZjU1YjNhNzQ4NDUyNGFhZiJJCg9pbWFnZV9sYXJnZV91cmwSNnNwb3RpZnk6aW1hZ2U6YWI2NzYxNmQwMDAwYjI3MzgxMWJmZGM0ZjU1YjNhNzQ4NDUyNGFhZiISCgpoYXNfbHlyaWNzEgR0cnVlIkMKCWltYWdlX3VybBI2c3BvdGlmeTppbWFnZTphYjY3NjE2ZDAwMDAxZTAyODExYmZkYzRmNTViM2E3NDg0NTI0YWFmIi0KEWFsYnVtX2FydGlzdF9uYW1lEhhCb2IgTWFybGV5ICYgVGhlIFdhaWxlcnMiKgogYWN0aW9ucy5za2lwcGluZ19uZXh0X3Bhc3RfdHJhY2sSBnJlc3VtZSI5ChBhbGJ1bV9hcnRpc3RfdXJpEiVzcG90aWZ5OmFydGlzdDoyUXN5bmFnU2RBcVpqM1U5SGdEempEIicKC2FydGlzdF9uYW1lEhhCb2IgTWFybGV5ICYgVGhlIFdhaWxlcnMa4gIKYAoQZnJlZS10aWVyLWFydGlzdBIKOC43LjYyLjM5OBolc3BvdGlmeTphcnRpc3Q6MlFzeW5hZ1NkQXFaajNVOUhnRHpqRCIAKgx5b3VyLWxpYnJhcnkyADoHY29ubmVjdBLhAQolc3BvdGlmeTphcnRpc3Q6MlFzeW5hZ1NkQXFaajNVOUhnRHpqRBI/aG06Ly9hcnRpc3RwbGF5Y29udGV4dC92Mi9zcG90aWZ5L2FydGlzdC8yUXN5bmFnU2RBcVpqM1U5SGdEempEGi8KE2NvbnRleHRfZGVzY3JpcHRpb24SGEJvYiBNYXJsZXkgJiBUaGUgV2FpbGVycxpCCg1yZXBvcnRpbmcudXJpEjFzcG90aWZ5OmFydGlzdDoyUXN5bmFnU2RBcVpqM1U5SGdEempEOnBsYXlfYnV0dG9uIgAwARoUYjI1ZDA1OTQ3NDg3ZjQ0NTAyNDAiACoAMgAiAhAA","options":{"restore_paused":"restore","restore_position":"extrapolate","restore_track":"only_current","license":"premium"},"from_device_identifier":"26b7a49be355ffb62b783d9dcee819e1da499639"}}
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,837 DEBUG Player:106 - Received command: Transfer
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,839 DEBUG Player:533 - Loading context (transfer), uri: spotify:artist:2QsynagSdAqZj3U9HgDzjD
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,839 DEBUG DeviceStateHandler:210 - Device is now active. {ts: 1662231580839}
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,840 TRACE MercuryClient:156 - Send Mercury request, seq: 17, uri: hm://context-resolve/v1/spotify:artist:2QsynagSdAqZj3U9HgDzjD, method: GET
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,971 TRACE MercuryClient:199 - Handling packet, cmd: MercuryReq, seq: 17, flags: 1, parts: 2
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,983 TRACE StateWrapper:1139 - Initialized current track index to 5.
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,985 DEBUG Player:348 - Loading session, id: Mn8fJreqqkM0kXDLbSJo0A, play: true
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,987 TRACE MixingLine:184 - Toggle first channel: false
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,987 TRACE MercuryClient:156 - Send Mercury request, seq: 18, uri: hm://event-service/v1/events, method: POST
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,987 DEBUG PlayerQueueEntry:234 - PlayerQueueEntry{01696c353204efc86fb76410b904ffc3} has been removed from output.
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,989 TRACE PlayerQueue:157 - Queue has been cleared.
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,989 TRACE PlayerQueueEntry:350 - PlayerQueueEntry{01696c353204efc86fb76410b904ffc3} terminated.
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,990 INFO PlayerSession:69 - Created new session. {id: Mn8fJreqqkM0kXDLbSJo0A}
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,991 DEBUG Player:490 - Loading track, id: TrackId{spotify:track:6SR0dDuXH2vtgBfMLrivKV}, session: Mn8fJreqqkM0kXDLbSJo0A, playback: null, play: true
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,992 TRACE PlayerQueueEntry:92 - Created new PlayerQueueEntry{01a984575b453f645dcd87732ec797c0}.
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,992 TRACE PlayerQueue:82 - PlayerQueueEntry{01a984575b453f645dcd87732ec797c0} added to queue.
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,995 DEBUG PlayerSession:283 - PlayerQueueEntry{01a984575b453f645dcd87732ec797c0} has been added to the output. {sessionId: Mn8fJreqqkM0kXDLbSJo0A, pos: 65882, reason: CLICK_ROW}
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,995 TRACE PlayerSession:162 - PlayerQueueEntry{01a984575b453f645dcd87732ec797c0} started loading.
sept. 03 20:59:40 media java[60642]: 2022-09-03 20:59:40,997 DEBUG DealerClient:126 - Handled request. {key: 37797eb8-0080-408f-99f2-61d088635dec, result: SUCCESS}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,046 TRACE MercuryClient:199 - Handling packet, cmd: MercuryReq, seq: 18, flags: 1, parts: 1
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,047 DEBUG EventService:51 - Event sent. {body: 12|38|5|f922ad34cd64e8e862ace5bfc6ccd9459fc39199|01696c353204efc86fb76410b904ffc3|00000000000000000000000000000000|free-tier-artist|trackdone|free-tier-artist|endplay|1310720|3493084|65876|65876|172933|0|0|0|0|0|0|0|-1|context|-1|0|1|0|0|0|65876|65876|0|176400|spotify:artist:2QsynagSdAqZj3U9HgDzjD|vorbis|e236215ffcc24db5940ca5810a993799||0|1662231514649|0|context|your-library|8.7.62.398|com.spotify|crossfade|none|26b7a49be355ffb62b783d9dcee819e1da499639|na|none, result: 200}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,048 TRACE MercuryClient:156 - Send Mercury request, seq: 19, uri: hm://event-service/v1/events, method: POST
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,055 INFO LineHelper:90 - Available mixers: 'HDMI [plughw:0,3]', 'HDMI [plughw:0,7]', 'HDMI [plughw:0,8]', 'HDMI [plughw:0,9]', 'HDMI [plughw:0,10]', 'PCH [plughw:1,0]'
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,104 TRACE MercuryClient:199 - Handling packet, cmd: MercuryReq, seq: 19, flags: 1, parts: 1
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,104 DEBUG EventService:51 - Event sent. {body: 557|3|Mn8fJreqqkM0kXDLbSJo0A|spotify:artist:2QsynagSdAqZj3U9HgDzjD|spotify:artist:2QsynagSdAqZj3U9HgDzjD|1662231580990||10|hm://artistplaycontext/v2/spotify/artist/2QsynagSdAqZj3U9HgDzjD, result: 200}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,105 TRACE MercuryClient:156 - Send Mercury request, seq: 20, uri: hm://event-service/v1/events, method: POST
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,204 TRACE MercuryClient:199 - Handling packet, cmd: MercuryReq, seq: 20, flags: 1, parts: 1
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,205 DEBUG EventService:51 - Event sent. {body: 558|1|01a984575b453f645dcd87732ec797c0|Mn8fJreqqkM0kXDLbSJo0A|1662231580995, result: 200}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,275 INFO DeviceStateHandler:273 - Put state. {ts: 1662231580996, connId: ZjkyM...4QUE3, reason: PLAYER_STATE_CHANGED, request: device { device_info { can_play: true volume: 65536 name: "SpoCon-Spotify" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 64 supported_types: "audio/episode" supported_types: "audio/track" command_acks: true supports_playlist_v2: true is_controllable: true supports_transfer_command: true supports_command_request: true supports_gzip_pushes: true } device_software_version: "librespot-java 1.6.2" device_type: COMPUTER spirc_version: "3.2.6" device_id: "f922ad34cd64e8e862ace5bfc6ccd9459fc39199" client_id: "65b708073fc0480ea92a077233ca87bd" } player_state { timestamp: 1662231558980 context_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" context_url: "hm://artistplaycontext/v2/spotify/artist/2QsynagSdAqZj3U9HgDzjD" context_restrictions { } play_origin { feature_identifier: "free-tier-artist" feature_version: "8.7.62.398" view_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" referrer_identifier: "your-library" feature_classes: "connect" } index { track: 5 } track { uri: "spotify:track:6SR0dDuXH2vtgBfMLrivKV" uid: "toptrack6SR0dDuXH2vtgBfMLrivKV" metadata { key: "actions.skipping_next_past_track" value: "resume" } metadata { key: "actions.skipping_prev_past_track" value: "resume" } metadata { key: "album_artist_name" value: "Bob Marley & The Wailers" } metadata { key: "album_artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "album_disc_number" value: "1" } metadata { key: "album_title" value: "Exodus" } metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_name" value: "Bob Marley & The Wailers" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "available_file_formats" value: "[\"OGG_VORBIS_320\",\"OGG_VORBIS_160\",\"OGG_VORBIS_96\",\"AAC_24\"]" } metadata { key: "context_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "duration" value: "172933" } metadata { key: "entity_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "has_lyrics" value: "true" } metadata { key: "image_large_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "image_small_url" value: "spotify:image:ab67616d00004851811bfdc4f55b3a7484524aaf" } metadata { key: "image_url" value: "spotify:image:ab67616d00001e02811bfdc4f55b3a7484524aaf" } metadata { key: "image_xlarge_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "iteration" value: "0" } metadata { key: "media.start_position" value: "41241" } metadata { key: "popularity" value: "71" } metadata { key: "title" value: "One Love / People Get Ready - Medley" } metadata { key: "track_player" value: "audio" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } playback_id: "01a984575b453f645dcd87732ec797c0" playback_speed: 1.0 position_as_of_timestamp: 43871 is_playing: true is_buffering: true options { shuffling_context: false repeating_context: false repeating_track: false } restrictions { } suppressions { } prev_tracks { uri: "spotify:track:5O4erNlJ74PIF6kGol1ZrC" uid: "toptrack5O4erNlJ74PIF6kGol1ZrC" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:75FYqcxt1YEAtqDLrOeIJn" uid: "toptrack75FYqcxt1YEAtqDLrOeIJn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:6JRLFiX9NJSoRRKxowlBYr" uid: "toptrack6JRLFiX9NJSoRRKxowlBYr" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:5LyfiK6iXEIBNEtcaGKohl" uid: "toptrack5LyfiK6iXEIBNEtcaGKohl" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:7BfW1eoDh27W69nxsmRicb" uid: "toptrack7BfW1eoDh27W69nxsmRicb" metadata { key: "album_uri" value: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:26PwuMotZqcczKLHi4Htz3" uid: "toptrack26PwuMotZqcczKLHi4Htz3" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:423hwXFgoN8RYmqLoLuVvY" uid: "toptrack423hwXFgoN8RYmqLoLuVvY" metadata { key: "album_uri" value: "spotify:album:5mvQHYARofQRsOE2cqBzik" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5mvQHYARofQRsOE2cqBzik" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:58Zt987fK6gWxtO0MwEzPn" uid: "toptrack58Zt987fK6gWxtO0MwEzPn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:2pZJhvpin385eqAFRp3ASJ" uid: "toptrack2pZJhvpin385eqAFRp3ASJ" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } context_metadata { key: "context_description" value: "Bob Marley & The Wailers" } context_metadata { key: "reporting.uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD:play_button" } session_id: "Mn8fJreqqkM0kXDLbSJo0A" } } member_type: CONNECT_STATE is_active: true put_state_reason: PLAYER_STATE_CHANGED started_playing_at: 1662231580839 has_been_playing_for_ms: 0 client_side_timestamp: 1662231581002}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,323 TRACE CdnManager:277 - Chunk 0/27 completed, cached: true, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,324 TRACE NormalizationData:46 - Loaded normalization data, track_gain: -5.3499985, track_peak: 1.2052099, album_gain: -5.9000015, album_peak: 1.3214234
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,324 TRACE CdnManager:277 - Chunk 1/27 completed, cached: true, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,324 INFO PlayerQueueEntry:125 - Loaded track. {name: 'One Love / People Get Ready - Medley', artists: 'Bob Marley & The Wailers', duration: 172933, uri: spotify:track:6SR0dDuXH2vtgBfMLrivKV, id: 01a984575b453f645dcd87732ec797c0}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,325 TRACE CdnManager:277 - Chunk 2/27 completed, cached: true, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,325 TRACE CdnManager:277 - Chunk 3/27 completed, cached: true, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,330 DEBUG CrossfadeController:58 - Loaded crossfade intervals {id: 01a984575b453f645dcd87732ec797c0, in: {}, out: {}}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,336 TRACE PlayerQueueEntry:149 - Loaded VORBIS decoder: VorbisDecoder {of: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}, format: xyz.gianlu.librespot.player.mixing.output.OutputAudioFormat@57224246, playbackId: 01a984575b453f645dcd87732ec797c0}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,339 TRACE PlayerSession:194 - PlayerQueueEntry{01a984575b453f645dcd87732ec797c0} finished loading.
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,341 TRACE MixingLine:184 - Toggle first channel: true
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,342 DEBUG Player:422 - Playback halted on retrieving chunk 10.
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,354 TRACE DeviceStateHandler:172 - Received cluster update at 1662231581352: cluster { timestamp: 1662231581320 player_state { timestamp: 1662231558353 context_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" context_url: "hm://artistplaycontext/v2/spotify/artist/2QsynagSdAqZj3U9HgDzjD" context_restrictions { } play_origin { feature_identifier: "free-tier-artist" feature_version: "8.7.62.398" view_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" referrer_identifier: "your-library" feature_classes: "connect" } track { uri: "spotify:track:6SR0dDuXH2vtgBfMLrivKV" uid: "toptrack6SR0dDuXH2vtgBfMLrivKV" metadata { key: "actions.skipping_next_past_track" value: "resume" } metadata { key: "actions.skipping_prev_past_track" value: "resume" } metadata { key: "album_artist_name" value: "Bob Marley & The Wailers" } metadata { key: "album_artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "album_disc_number" value: "1" } metadata { key: "album_title" value: "Exodus" } metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_name" value: "Bob Marley & The Wailers" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "available_file_formats" value: "[\"OGG_VORBIS_320\",\"OGG_VORBIS_160\",\"OGG_VORBIS_96\",\"AAC_24\"]" } metadata { key: "context_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "duration" value: "172933" } metadata { key: "entity_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "has_lyrics" value: "true" } metadata { key: "image_large_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "image_small_url" value: "spotify:image:ab67616d00004851811bfdc4f55b3a7484524aaf" } metadata { key: "image_url" value: "spotify:image:ab67616d00001e02811bfdc4f55b3a7484524aaf" } metadata { key: "image_xlarge_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "iteration" value: "0" } metadata { key: "media.start_position" value: "41241" } metadata { key: "popularity" value: "71" } metadata { key: "title" value: "One Love / People Get Ready - Medley" } metadata { key: "track_player" value: "audio" } provider: "context" } playback_id: "d9c8d37ac229e1affd95cd63c5ae87d6" playback_speed: 1.0 position_as_of_timestamp: 43871 duration: 172933 is_playing: true options { shuffling_context: false repeating_context: false repeating_track: false } restrictions { disallow_resuming_reasons: "not_paused" disallow_skipping_prev_reasons: "no_prev_track" } suppressions { } next_tracks { uri: "spotify:track:6JRLFiX9NJSoRRKxowlBYr" uid: "b25d05947487f4450240" metadata { key: "actions.skipping_next_past_track" value: "resume" } metadata { key: "actions.skipping_prev_past_track" value: "resume" } metadata { key: "album_title" value: "Kaya" } metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "context_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "entity_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "image_large_url" value: "spotify:image:ab67616d0000b273387799441ba867649dfbb702" } metadata { key: "image_small_url" value: "spotify:image:ab67616d00004851387799441ba867649dfbb702" } metadata { key: "image_url" value: "spotify:image:ab67616d00001e02387799441ba867649dfbb702" } metadata { key: "image_xlarge_url" value: "spotify:image:ab67616d0000b273387799441ba867649dfbb702" } metadata { key: "iteration" value: "0" } metadata { key: "track_player" value: "audio" } provider: "context" } next_tracks { uri: "spotify:track:5O4erNlJ74PIF6kGol1ZrC" uid: "5319d6b32aa5cac0b2f6" metadata { key: "context_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "entity_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "iteration" value: "0" } metadata { key: "track_player" value: "audio" } provider: "context" } context_metadata { key: "context_description" value: "Bob Marley & The Wailers" } context_metadata { key: "is_stripped" value: "true" } context_metadata { key: "reporting.uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD:play_button" } session_id: "1Y640QN6wtMM0LYib4aYGx" queue_revision: "13797640280384457375" playback_quality { bitrate_level: normal strategy: best_matching target_bitrate_level: normal target_bitrate_available: true } } device { key: "26b7a49be355ffb62b783d9dcee819e1da499639" value { can_play: true volume: 65535 name: "T\303\251l\303\251phone Thomas" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 32 supported_types: "audio/ad" supported_types: "audio/episode" supported_types: "audio/episode+track" supported_types: "audio/interruption" supported_types: "audio/local" supported_types: "audio/track" supported_types: "video/ad" supported_types: "video/episode" command_acks: true supports_rename: true disable_volume: true supports_playlist_v2: true is_controllable: true supports_external_episodes: true supports_set_backend_metadata: true supports_transfer_command: true supports_command
_request: true supports_gzip_pushes: true supports_set_options_command: true supports_hifi { device_supported: true } } device_software_version: "8.7.62.398" device_type: SMARTPHONE spirc_version: "3.2.6" device_id: "26b7a49be355ffb62b783d9dcee819e1da499639" client_id: "9a8d2f0ce77a4e248bb71fefcb557637" brand: "Fairphone" model: "FP4" metadata_map { key: "debug_level" value: "1" } metadata_map { key: "device_address_mask" value: "192.168.1.43/24" } metadata_map { key: "tier1_port" value: "0" } deduplication_id: "a5898fc57512914b27de36c1b860ae7d" public_ip: "176.191.15.110" license: "premium" } } device { key: "f922ad34cd64e8e862ace5bfc6ccd9459fc39199" value { can_play: true volume: 65536 name: "SpoCon-Spotify" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 64 supported_types: "audio/episode" supported_types: "audio/track" command_acks: true supports_playlist_v2: true is_controllable: true supports_transfer_command: true supports_command_request: true supports_gzip_pushes: true } device_software_version: "librespot-java 1.6.2" device_type: COMPUTER spirc_version: "3.2.6" device_id: "f922ad34cd64e8e862ace5bfc6ccd9459fc39199" client_id: "65b708073fc0480ea92a077233ca87bd" public_ip: "176.191.15.110" } } transfer_data: "\n\006\b\000\020\000\030\000\022\350\b\b\304\366\342\245\2600\020\337\326\002\031\000\000\000\000\000\000\360? \000*\317\b\n\000\022\036toptrack6SR0dDuXH2vtgBfMLrivKV\032\020\3426!_\374\302M\265\224\f\245\201\n\2317\231\"V\n\026available_file_formats\022<[\"OGG_VORBIS_320\",\"OGG_VORBIS_160\",\"OGG_VORBIS_96\",\"AAC_24\"]\"\025\n\ftrack_player\022\005audio\"*\n actions.skipping_prev_past_track\022\006resume\"3\n\nartist_uri\022%spotify:artist:2QsynagSdAqZj3U9HgDzjD\"\025\n\valbum_title\022\006Exodus\"\016\n\titeration\022\0010\"4\n\vcontext_uri\022%spotify:artist:2QsynagSdAqZj3U9HgDzjD\"3\n\nentity_uri\022%spotify:artist:2QsynagSdAqZj3U9HgDzjD\"\020\n\npopularity\022\00271\"\035\n\024media.start_position\022\00541241\"\026\n\021album_disc_number\022\0011\"1\n\talbum_uri\022$spotify:album:2mBbV0Ad6B4ydHMZlzAY7S\"\022\n\bduration\022\006172933\"-\n\005title\022$One Love / People Get Ready - Medley\"J\n\020image_xlarge_url\0226spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf\"I\n\017image_small_url\0226spotify:image:ab67616d00004851811bfdc4f55b3a7484524aaf\"I\n\017image_large_url\0226spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf\"\022\n\nhas_lyrics\022\004true\"C\n\timage_url\0226spotify:image:ab67616d00001e02811bfdc4f55b3a7484524aaf\"-\n\021album_artist_name\022\030Bob Marley & The Wailers\"*\n actions.skipping_next_past_track\022\006resume\"9\n\020album_artist_uri\022%spotify:artist:2QsynagSdAqZj3U9HgDzjD\"\'\n\vartist_name\022\030Bob Marley & The Wailers\032\342\002\n`\n\020free-tier-artist\022\n8.7.62.398\032%spotify:artist:2QsynagSdAqZj3U9HgDzjD\"\000*\fyour-library2\000:\aconnect\022\341\001\n%spotify:artist:2QsynagSdAqZj3U9HgDzjD\022?hm://artistplaycontext/v2/spotify/artist/2QsynagSdAqZj3U9HgDzjD\032/\n\023context_description\022\030Bob Marley & The Wailers\032B\n\rreporting.uri\0221spotify:artist:2QsynagSdAqZj3U9HgDzjD:play_button\"\0000\001\032\024b25d05947487f4450240\"\000*\0002\000\"\002\020\000" transfer_data_timestamp: 1662231572500 server_timestamp_ms: 1662231581336 } update_reason: DEVICE_STATE_CHANGED devices_that_changed: "26b7a49be355ffb62b783d9dcee819e1da499639"
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,360 TRACE CdnManager:277 - Chunk 11/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,567 INFO DeviceStateHandler:273 - Put state. {ts: 1662231581002, connId: ZjkyM...4QUE3, reason: PLAYER_STATE_CHANGED, request: device { device_info { can_play: true volume: 65536 name: "SpoCon-Spotify" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 64 supported_types: "audio/episode" supported_types: "audio/track" command_acks: true supports_playlist_v2: true is_controllable: true supports_transfer_command: true supports_command_request: true supports_gzip_pushes: true } device_software_version: "librespot-java 1.6.2" device_type: COMPUTER spirc_version: "3.2.6" device_id: "f922ad34cd64e8e862ace5bfc6ccd9459fc39199" client_id: "65b708073fc0480ea92a077233ca87bd" } player_state { timestamp: 1662231558980 context_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" context_url: "hm://artistplaycontext/v2/spotify/artist/2QsynagSdAqZj3U9HgDzjD" context_restrictions { } play_origin { feature_identifier: "free-tier-artist" feature_version: "8.7.62.398" view_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" referrer_identifier: "your-library" feature_classes: "connect" } index { track: 5 } track { uri: "spotify:track:6SR0dDuXH2vtgBfMLrivKV" uid: "toptrack6SR0dDuXH2vtgBfMLrivKV" metadata { key: "actions.skipping_next_past_track" value: "resume" } metadata { key: "actions.skipping_prev_past_track" value: "resume" } metadata { key: "album_artist_name" value: "Bob Marley & The Wailers" } metadata { key: "album_artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "album_disc_number" value: "1" } metadata { key: "album_title" value: "Exodus" } metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_name" value: "Bob Marley & The Wailers" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "available_file_formats" value: "[\"OGG_VORBIS_320\",\"OGG_VORBIS_160\",\"OGG_VORBIS_96\",\"AAC_24\"]" } metadata { key: "context_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "duration" value: "172933" } metadata { key: "entity_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "has_lyrics" value: "true" } metadata { key: "image_large_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "image_small_url" value: "spotify:image:ab67616d00004851811bfdc4f55b3a7484524aaf" } metadata { key: "image_url" value: "spotify:image:ab67616d00001e02811bfdc4f55b3a7484524aaf" } metadata { key: "image_xlarge_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "iteration" value: "0" } metadata { key: "media.start_position" value: "41241" } metadata { key: "popularity" value: "71" } metadata { key: "title" value: "One Love / People Get Ready - Medley" } metadata { key: "track_player" value: "audio" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } playback_id: "01a984575b453f645dcd87732ec797c0" playback_speed: 1.0 position_as_of_timestamp: 43871 duration: 172933 is_playing: true is_buffering: true options { shuffling_context: false repeating_context: false repeating_track: false } restrictions { } suppressions { } prev_tracks { uri: "spotify:track:5O4erNlJ74PIF6kGol1ZrC" uid: "toptrack5O4erNlJ74PIF6kGol1ZrC" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:75FYqcxt1YEAtqDLrOeIJn" uid: "toptrack75FYqcxt1YEAtqDLrOeIJn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:6JRLFiX9NJSoRRKxowlBYr" uid: "toptrack6JRLFiX9NJSoRRKxowlBYr" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:5LyfiK6iXEIBNEtcaGKohl" uid: "toptrack5LyfiK6iXEIBNEtcaGKohl" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:7BfW1eoDh27W69nxsmRicb" uid: "toptrack7BfW1eoDh27W69nxsmRicb" metadata { key: "album_uri" value: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:26PwuMotZqcczKLHi4Htz3" uid: "toptrack26PwuMotZqcczKLHi4Htz3" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:423hwXFgoN8RYmqLoLuVvY" uid: "toptrack423hwXFgoN8RYmqLoLuVvY" metadata { key: "album_uri" value: "spotify:album:5mvQHYARofQRsOE2cqBzik" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5mvQHYARofQRsOE2cqBzik" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:58Zt987fK6gWxtO0MwEzPn" uid: "toptrack58Zt987fK6gWxtO0MwEzPn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:2pZJhvpin385eqAFRp3ASJ" uid: "toptrack2pZJhvpin385eqAFRp3ASJ" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } context_metadata { key: "context_description" value: "Bob Marley & The Wailers" } context_metadata { key: "reporting.uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD:play_button" } session_id: "Mn8fJreqqkM0kXDLbSJo0A" } } member_type: CONNECT_STATE is_active: true put_state_reason: PLAYER_STATE_CHANGED started_playing_at: 1662231580839 has_been_playing_for_ms: 18446744073709551188 client_side_timestamp: 1662231581343}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,570 TRACE CdnManager:277 - Chunk 13/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,584 TRACE CdnManager:277 - Chunk 12/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,601 TRACE CdnManager:277 - Chunk 10/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,602 DEBUG Player:431 - Playback resumed, chunk 10 retrieved, took 260ms.
sept. 03 20:59:41 media java[60642]: 2022-09-03 20:59:41,858 INFO DeviceStateHandler:273 - Put state. {ts: 1662231581340, connId: ZjkyM...4QUE3, reason: PLAYER_STATE_CHANGED, request: device { device_info { can_play: true volume: 65536 name: "SpoCon-Spotify" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 64 supported_types: "audio/episode" supported_types: "audio/track" command_acks: true supports_playlist_v2: true is_controllable: true supports_transfer_command: true supports_command_request: true supports_gzip_pushes: true } device_software_version: "librespot-java 1.6.2" device_type: COMPUTER spirc_version: "3.2.6" device_id: "f922ad34cd64e8e862ace5bfc6ccd9459fc39199" client_id: "65b708073fc0480ea92a077233ca87bd" } player_state { timestamp: 1662231581602 context_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" context_url: "hm://artistplaycontext/v2/spotify/artist/2QsynagSdAqZj3U9HgDzjD" context_restrictions { } play_origin { feature_identifier: "free-tier-artist" feature_version: "8.7.62.398" view_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" referrer_identifier: "your-library" feature_classes: "connect" } index { track: 5 } track { uri: "spotify:track:6SR0dDuXH2vtgBfMLrivKV" uid: "toptrack6SR0dDuXH2vtgBfMLrivKV" metadata { key: "actions.skipping_next_past_track" value: "resume" } metadata { key: "actions.skipping_prev_past_track" value: "resume" } metadata { key: "album_artist_name" value: "Bob Marley & The Wailers" } metadata { key: "album_artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "album_disc_number" value: "1" } metadata { key: "album_title" value: "Exodus" } metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_name" value: "Bob Marley & The Wailers" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "available_file_formats" value: "[\"OGG_VORBIS_320\",\"OGG_VORBIS_160\",\"OGG_VORBIS_96\",\"AAC_24\"]" } metadata { key: "context_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "duration" value: "172933" } metadata { key: "entity_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "has_lyrics" value: "true" } metadata { key: "image_large_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "image_small_url" value: "spotify:image:ab67616d00004851811bfdc4f55b3a7484524aaf" } metadata { key: "image_url" value: "spotify:image:ab67616d00001e02811bfdc4f55b3a7484524aaf" } metadata { key: "image_xlarge_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "iteration" value: "0" } metadata { key: "media.start_position" value: "41241" } metadata { key: "popularity" value: "71" } metadata { key: "title" value: "One Love / People Get Ready - Medley" } metadata { key: "track_player" value: "audio" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } playback_id: "01a984575b453f645dcd87732ec797c0" playback_speed: 1.0 position_as_of_timestamp: 66233 duration: 172933 is_playing: true options { shuffling_context: false repeating_context: false repeating_track: false } restrictions { } suppressions { } prev_tracks { uri: "spotify:track:5O4erNlJ74PIF6kGol1ZrC" uid: "toptrack5O4erNlJ74PIF6kGol1ZrC" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:75FYqcxt1YEAtqDLrOeIJn" uid: "toptrack75FYqcxt1YEAtqDLrOeIJn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:6JRLFiX9NJSoRRKxowlBYr" uid: "toptrack6JRLFiX9NJSoRRKxowlBYr" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:5LyfiK6iXEIBNEtcaGKohl" uid: "toptrack5LyfiK6iXEIBNEtcaGKohl" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:7BfW1eoDh27W69nxsmRicb" uid: "toptrack7BfW1eoDh27W69nxsmRicb" metadata { key: "album_uri" value: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:26PwuMotZqcczKLHi4Htz3" uid: "toptrack26PwuMotZqcczKLHi4Htz3" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:423hwXFgoN8RYmqLoLuVvY" uid: "toptrack423hwXFgoN8RYmqLoLuVvY" metadata { key: "album_uri" value: "spotify:album:5mvQHYARofQRsOE2cqBzik" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5mvQHYARofQRsOE2cqBzik" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:58Zt987fK6gWxtO0MwEzPn" uid: "toptrack58Zt987fK6gWxtO0MwEzPn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:2pZJhvpin385eqAFRp3ASJ" uid: "toptrack2pZJhvpin385eqAFRp3ASJ" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } context_metadata { key: "context_description" value: "Bob Marley & The Wailers" } context_metadata { key: "reporting.uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD:play_button" } session_id: "Mn8fJreqqkM0kXDLbSJo0A" } } member_type: CONNECT_STATE is_active: true put_state_reason: PLAYER_STATE_CHANGED started_playing_at: 1662231580839 has_been_playing_for_ms: 18446744073709551188 client_side_timestamp: 1662231581602}
sept. 03 20:59:42 media java[60642]: 2022-09-03 20:59:42,136 INFO DeviceStateHandler:273 - Put state. {ts: 1662231581343, connId: ZjkyM...4QUE3, reason: PLAYER_STATE_CHANGED, request: device { device_info { can_play: true volume: 65536 name: "SpoCon-Spotify" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 64 supported_types: "audio/episode" supported_types: "audio/track" command_acks: true supports_playlist_v2: true is_controllable: true supports_transfer_command: true supports_command_request: true supports_gzip_pushes: true } device_software_version: "librespot-java 1.6.2" device_type: COMPUTER spirc_version: "3.2.6" device_id: "f922ad34cd64e8e862ace5bfc6ccd9459fc39199" client_id: "65b708073fc0480ea92a077233ca87bd" } player_state { timestamp: 1662231581602 context_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" context_url: "hm://artistplaycontext/v2/spotify/artist/2QsynagSdAqZj3U9HgDzjD" context_restrictions { } play_origin { feature_identifier: "free-tier-artist" feature
_version: "8.7.62.398" view_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" referrer_identifier: "your-library" feature_classes: "connect" } index { track: 5 } track { uri: "spotify:track:6SR0dDuXH2vtgBfMLrivKV" uid: "toptrack6SR0dDuXH2vtgBfMLrivKV" metadata { key: "actions.skipping_next_past_track" value: "resume" } metadata { key: "actions.skipping_prev_past_track" value: "resume" } metadata { key: "album_artist_name" value: "Bob Marley & The Wailers" } metadata { key: "album_artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "album_disc_number" value: "1" } metadata { key: "album_title" value: "Exodus" } metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_name" value: "Bob Marley & The Wailers" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "available_file_formats" value: "[\"OGG_VORBIS_320\",\"OGG_VORBIS_160\",\"OGG_VORBIS_96\",\"AAC_24\"]" } metadata { key: "context_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "duration" value: "172933" } metadata { key: "entity_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "has_lyrics" value: "true" } metadata { key: "image_large_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "image_small_url" value: "spotify:image:ab67616d00004851811bfdc4f55b3a7484524aaf" } metadata { key: "image_url" value: "spotify:image:ab67616d00001e02811bfdc4f55b3a7484524aaf" } metadata { key: "image_xlarge_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "iteration" value: "0" } metadata { key: "media.start_position" value: "41241" } metadata { key: "popularity" value: "71" } metadata { key: "title" value: "One Love / People Get Ready - Medley" } metadata { key: "track_player" value: "audio" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } playback_id: "01a984575b453f645dcd87732ec797c0" playback_speed: 1.0 position_as_of_timestamp: 66233 duration: 172933 is_playing: true options { shuffling_context: false repeating_context: false repeating_track: false } restrictions { } suppressions { } prev_tracks { uri: "spotify:track:5O4erNlJ74PIF6kGol1ZrC" uid: "toptrack5O4erNlJ74PIF6kGol1ZrC" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:75FYqcxt1YEAtqDLrOeIJn" uid: "toptrack75FYqcxt1YEAtqDLrOeIJn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:6JRLFiX9NJSoRRKxowlBYr" uid: "toptrack6JRLFiX9NJSoRRKxowlBYr" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:5LyfiK6iXEIBNEtcaGKohl" uid: "toptrack5LyfiK6iXEIBNEtcaGKohl" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:7BfW1eoDh27W69nxsmRicb" uid: "toptrack7BfW1eoDh27W69nxsmRicb" metadata { key: "album_uri" value: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:26PwuMotZqcczKLHi4Htz3" uid: "toptrack26PwuMotZqcczKLHi4Htz3" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:423hwXFgoN8RYmqLoLuVvY" uid: "toptrack423hwXFgoN8RYmqLoLuVvY" metadata { key: "album_uri" value: "spotify:album:5mvQHYARofQRsOE2cqBzik" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5mvQHYARofQRsOE2cqBzik" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:58Zt987fK6gWxtO0MwEzPn" uid: "toptrack58Zt987fK6gWxtO0MwEzPn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:2pZJhvpin385eqAFRp3ASJ" uid: "toptrack2pZJhvpin385eqAFRp3ASJ" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } context_metadata { key: "context_description" value: "Bob Marley & The Wailers" } context_metadata { key: "reporting.uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD:play_button" } session_id: "Mn8fJreqqkM0kXDLbSJo0A" } } member_type: CONNECT_STATE is_active: true put_state_reason: PLAYER_STATE_CHANGED started_playing_at: 1662231580839 has_been_playing_for_ms: 18446744073709551188 client_side_timestamp: 1662231581602}
sept. 03 20:59:42 media java[60642]: 2022-09-03 20:59:42,419 INFO DeviceStateHandler:273 - Put state. {ts: 1662231581602, connId: ZjkyM...4QUE3, reason: PLAYER_STATE_CHANGED, request: device { device_info { can_play: true volume: 65536 name: "SpoCon-Spotify" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 64 supported_types: "audio/episode" supported_types: "audio/track" command_acks: true supports_playlist_v2: true is_controllable: true supports_transfer_command: true supports_command_request: true supports_gzip_pushes: true } device_software_version: "librespot-java 1.6.2" device_type: COMPUTER spirc_version: "3.2.6" device_id: "f922ad34cd64e8e862ace5bfc6ccd9459fc39199" client_id: "65b708073fc0480ea92a077233ca87bd" } player_state { timestamp: 1662231581602 context_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" context_url: "hm://artistplaycontext/v2/spotify/artist/2QsynagSdAqZj3U9HgDzjD" context_restrictions { } play_origin { feature_identifier: "free-tier-artist" feature_version: "8.7.62.398" view_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" referrer_identifier: "your-library" feature_classes: "connect" } index { track: 5 } track { uri: "spotify:track:6SR0dDuXH2vtgBfMLrivKV" uid: "toptrack6SR0dDuXH2vtgBfMLrivKV" metadata { key: "actions.skipping_next_past_track" value: "resume" } metadata { key: "actions.skipping_prev_past_track" value: "resume" } metadata { key: "album_artist_name" value: "Bob Marley & The Wailers" } metadata { key: "album_artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "album_disc_number" value: "1" } metadata { key: "album_title" value: "Exodus" } metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_name" value: "Bob Marley & The Wailers" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "available_file_formats" value: "[\"OGG_VORBIS_320\",\"OGG_VORBIS_160\",\"OGG_VORBIS_96\",\"AAC_24\"]" } metadata { key: "context_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "duration" value: "172933" } metadata { key: "entity_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } metadata { key: "has_lyrics" value: "true" } metadata { key: "image_large_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "image_small_url" value: "spotify:image:ab67616d00004851811bfdc4f55b3a7484524aaf" } metadata { key: "image_url" value: "spotify:image:ab67616d00001e02811bfdc4f55b3a7484524aaf" } metadata { key: "image_xlarge_url" value: "spotify:image:ab67616d0000b273811bfdc4f55b3a7484524aaf" } metadata { key: "iteration" value: "0" } metadata { key: "media.start_position" value: "41241" } metadata { key: "popularity" value: "71" } metadata { key: "title" value: "One Love / People Get Ready - Medley" } metadata { key: "track_player" value: "audio" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } playback_id: "01a984575b453f645dcd87732ec797c0" playback_speed: 1.0 position_as_of_timestamp: 66233 duration: 172933 is_playing: true options { shuffling_context: false repeating_context: false repeating_track: false } restrictions { } suppressions { } prev_tracks { uri: "spotify:track:5O4erNlJ74PIF6kGol1ZrC" uid: "toptrack5O4erNlJ74PIF6kGol1ZrC" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:75FYqcxt1YEAtqDLrOeIJn" uid: "toptrack75FYqcxt1YEAtqDLrOeIJn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:6JRLFiX9NJSoRRKxowlBYr" uid: "toptrack6JRLFiX9NJSoRRKxowlBYr" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:5LyfiK6iXEIBNEtcaGKohl" uid: "toptrack5LyfiK6iXEIBNEtcaGKohl" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } prev_tracks { uri: "spotify:track:7BfW1eoDh27W69nxsmRicb" uid: "toptrack7BfW1eoDh27W69nxsmRicb" metadata { key: "album_uri" value: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5Rg4ZSwf1LPCuAMr0msdun" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:26PwuMotZqcczKLHi4Htz3" uid: "toptrack26PwuMotZqcczKLHi4Htz3" metadata { key: "album_uri" value: "spotify:album:321q9p7PELvzcFAWxml7VX" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:321q9p7PELvzcFAWxml7VX" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:423hwXFgoN8RYmqLoLuVvY" uid: "toptrack423hwXFgoN8RYmqLoLuVvY" metadata { key: "album_uri" value: "spotify:album:5mvQHYARofQRsOE2cqBzik" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:5mvQHYARofQRsOE2cqBzik" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:58Zt987fK6gWxtO0MwEzPn" uid: "toptrack58Zt987fK6gWxtO0MwEzPn" metadata { key: "album_uri" value: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:2mBbV0Ad6B4ydHMZlzAY7S" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } next_tracks { uri: "spotify:track:2pZJhvpin385eqAFRp3ASJ" uid: "toptrack2pZJhvpin385eqAFRp3ASJ" metadata { key: "album_uri" value: "spotify:album:13dXX35pYjr8FqRla40K2a" } metadata { key: "artist_uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } provider: "context" album_uri: "spotify:album:13dXX35pYjr8FqRla40K2a" artist_uri: "spotify:artist:2QsynagSdAqZj3U9HgDzjD" } context_metadata { key: "context_description" value: "Bob Marley & The Wailers" } context_metadata { key: "reporting.uri" value: "spotify:artist:2QsynagSdAqZj3U9HgDzjD:play_button" } session_id: "Mn8fJreqqkM0kXDLbSJo0A" } } member_type: CONNECT_STATE is_active: true put_state_reason: PLAYER_STATE_CHANGED started_playing_at: 1662231580839 has_been_playing_for_ms: 18446744073709551188 client_side_timestamp: 1662231581602}
sept. 03 20:59:46 media java[60642]: 2022-09-03 20:59:46,149 TRACE CdnManager:277 - Chunk 14/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:52 media java[60642]: 2022-09-03 20:59:52,547 TRACE CdnManager:277 - Chunk 15/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 20:59:59 media java[60642]: 2022-09-03 20:59:59,075 TRACE CdnManager:277 - Chunk 16/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:05 media java[60642]: 2022-09-03 21:00:05,356 TRACE CdnManager:277 - Chunk 17/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:11 media java[60642]: 2022-09-03 21:00:11,895 TRACE CdnManager:277 - Chunk 18/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:18 media java[60642]: 2022-09-03 21:00:18,424 TRACE CdnManager:277 - Chunk 19/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:24 media java[60642]: 2022-09-03 21:00:24,969 TRACE CdnManager:277 - Chunk 20/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:31 media java[60642]: 2022-09-03 21:00:31,380 TRACE CdnManager:277 - Chunk 21/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:37 media java[60642]: 2022-09-03 21:00:37,923 TRACE CdnManager:277 - Chunk 22/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:44 media java[60642]: 2022-09-03 21:00:44,685 TRACE CdnManager:277 - Chunk 23/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:51 media java[60642]: 2022-09-03 21:00:51,081 TRACE CdnManager:277 - Chunk 24/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:00:57 media java[60642]: 2022-09-03 21:00:57,493 TRACE CdnManager:277 - Chunk 25/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:01:03 media java[60642]: 2022-09-03 21:01:03,880 TRACE CdnManager:277 - Chunk 26/27 completed, cached: false, stream: {fileId: F226420BAAC55E8FE91CC2AB6C8B6AE6D6E9B951}
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,007 TRACE PlayerQueueEntry:92 - Created new PlayerQueueEntry{019565bb32883072e08edbfb04651aa1}.
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,008 TRACE PlayerQueue:82 - PlayerQueueEntry{019565bb32883072e08edbfb04651aa1} added to queue.
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,008 DEBUG CrossfadeController:192 - Changed fade out. {curr: null, custom: false, why: TRACK_DONE, id: 01a984575b453f645dcd87732ec797c0}
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,008 TRACE PlayerSession:162 - PlayerQueueEntry{019565bb32883072e08edbfb04651aa1} started loading.
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,421 TRACE CdnManager:277 - Chunk 0/30 completed, cached: false, stream: {fileId: 80DEBBE26FBC5B88B806997BFF82952AD48F7708}
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,422 TRACE NormalizationData:46 - Loaded normalization data, track_gain: -6.25, track_peak: 1.0869846, album_gain: -7.0999985, album_peak: 1.2995635
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,423 INFO PlayerQueueEntry:125 - Loaded track. {name: 'Redemption Song', artists: 'Bob Marley & The Wailers', duration: 233560, uri: spotify:track:26PwuMotZqcczKLHi4Htz3, id: 019565bb32883072e08edbfb04651aa1}
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,423 DEBUG CrossfadeController:58 - Loaded crossfade intervals {id: 019565bb32883072e08edbfb04651aa1, in: {}, out: {}}
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,428 TRACE PlayerQueueEntry:149 - Loaded VORBIS decoder: VorbisDecoder {of: {fileId: 80DEBBE26FBC5B88B806997BFF82952AD48F7708}, format: xyz.gianlu.librespot.player.mixing.output.OutputAudioFormat@7c8f5b99, playbackId: 019565bb32883072e08edbfb04651aa1}
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,429 TRACE PlayerSession:194 - PlayerQueueEntry{019565bb32883072e08edbfb04651aa1} finished loading.
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,466 TRACE CdnManager:277 - Chunk 1/30 completed, cached: false, stream: {fileId: 80DEBBE26FBC5B88B806997BFF82952AD48F7708}
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,506 TRACE CdnManager:277 - Chunk 3/30 completed, cached: false, stream: {fileId: 80DEBBE26FBC5B88B806997BFF82952AD48F7708}
sept. 03 21:01:09 media java[60642]: 2022-09-03 21:01:09,546 TRACE CdnManager:277 - Chunk 2/30 completed, cached: false, stream: {fileId: 80DEBBE26FBC5B88B806997BFF82952AD48F7708}
sept. 03 21:01:28 media java[60642]: 2022-09-03 21:01:28,224 DEBUG PlayerQueueEntry:330 - Player time offset is 602. {id: 01a984575b453f645dcd87732ec797c0}
sept. 03 21:01:28 media java[60642]: 2022-09-03 21:01:28,224 TRACE MixingLine:184 - Toggle first channel: false
sept. 03 21:01:28 media java[60642]: 2022-09-03 21:01:28,224 DEBUG PlayerQueueEntry:234 - PlayerQueueEntry{01a984575b453f645dcd87732ec797c0} has been removed from output.
sept. 03 21:01:28 media java[60642]: 2022-09-03 21:01:28,225 TRACE MercuryClient:156 - Send Mercury request, seq: 21, uri: hm://event-service/v1/events, method: POST
sept. 03 21:01:28 media java[60642]: 2022-09-03 21:01:28,226 DEBUG CrossfadeController:192 - Changed fade out. {curr: null, custom: false, why: TRACK_DONE, id: 01a984575b453f645dcd87732ec797c0}
sept. 03 21:01:28 media java[60642]: 2022-09-03 21:01:28,226 DEBUG CrossfadeController:170 - Changed fade in. {curr: null, custom: false, why: TRACK_DONE, id: 019565bb32883072e08edbfb04651aa1}
sept. 03 21:01:28 media java[60642]: 2022-09-03 21:01:28,226 DEBUG PlayerSession:283 - PlayerQueueEntry{019565bb32883072e08edbfb04651aa1} has been added to the output. {sessionId: Mn8fJreqqkM0kXDLbSJo0A, pos: 0, reason: TRACK_DONE}
Desktop (please complete the following information):
Smartphone (please complete the following information):
The lastest spocon
version is outdated. librespot-org/librespot-java#158
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Spotify should attach and skip songs that spocon hasn't downloaded / doesn't have access to.
Logs
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,223 TRACE DealerClient:97 - Received request. {mid: hm://connect-state/v1/player/command, key: cbf79024-7486-47ec-9fb9-c6268e81005c, pid: 886375822, sender: 4caaba3413d4673d3929a47864cd72a79628748d, command: {"endpoint":"transfer","data":"CgYIARAAGAAS4QUI44XLposvEAAZAAAAAAAA8D8gACrKBQoAEhBkYjc4MDcxNzQxNTE3YjU1GhD1MhFpZ9dBg7T7CcOM4/BeIjEKCWFsYnVtX3VyaRIkc3BvdGlmeTphbGJ1bTo1T0FlQ3VkS2VOT2NQSHpHUlFWeGl0IiUKC2FsYnVtX3RpdGxlEhZZcyBWIE9yY2hlc3RyYSBWZXJzaW9uIkoKEGltYWdlX3hsYXJnZV91cmwSNnNwb3RpZnk6aW1hZ2U6YWI2NzYxNmQwMDAwYjI3MzNmNzEwZTUxODRiM2RmZDJmOTJhY2I3NiIqCiBhY3Rpb25zLnNraXBwaW5nX3ByZXZfcGFzdF90cmFjaxIGcmVzdW1lIkkKD2ltYWdlX3NtYWxsX3VybBI2c3BvdGlmeTppbWFnZTphYjY3NjE2ZDAwMDA0ODUxM2Y3MTBlNTE4NGIzZGZkMmY5MmFjYjc2IjUKCmVudGl0eV91cmkSJ3Nwb3RpZnk6cGxheWxpc3Q6NVJKVndsNmRKWGFSM0lVRDJtTFFIcCIqCiBhY3Rpb25zLnNraXBwaW5nX25leHRfcGFzdF90cmFjaxIGcmVzdW1lIjMKCmFydGlzdF91cmkSJXNwb3RpZnk6YXJ0aXN0OjVXRm9memdSeHBWTmtwd2c5WFJTZGciQwoJaW1hZ2VfdXJsEjZzcG90aWZ5OmltYWdlOmFiNjc2MTZkMDAwMDFlMDIzZjcxMGU1MTg0YjNkZmQyZjkyYWNiNzYiDgoJaXRlcmF0aW9uEgEwIhUKDHRyYWNrX3BsYXllchIFYXVkaW8iSQoPaW1hZ2VfbGFyZ2VfdXJsEjZzcG90aWZ5OmltYWdlOmFiNjc2MTZkMDAwMGIyNzMzZjcxMGU1MTg0YjNkZmQyZjkyYWNiNzYiNgoLY29udGV4dF91cmkSJ3Nwb3RpZnk6cGxheWxpc3Q6NVJKVndsNmRKWGFSM0lVRDJtTFFIcBqjAgomChBkZXNrdG9wLWNsaWVudC14EgoxLjEuNTYuNTk1GgAiACoAMgAS4AEKJ3Nwb3RpZnk6cGxheWxpc3Q6NVJKVndsNmRKWGFSM0lVRDJtTFFIcBIxY29udGV4dDovL3Nwb3RpZnk6cGxheWxpc3Q6NVJKVndsNmRKWGFSM0lVRDJtTFFIcBoYCg1jb250ZXh0X293bmVyEgd6YWdlcjBuGjUKCWltYWdlX3VybBIoYWI2NzcwNmMwMDAwZGE4NGFjY2VkZGQ1ZTUyYzNhNzViYjY4MTQ2YxotChNjb250ZXh0X2Rlc2NyaXB0aW9uEhZ6YWdlcm9uLCBpbiBhIG51dHNoZWxsIgAwARoQZGI3ODA3MTc0MTUxN2I1NSIAKgAyACICEAA=","options":{"restore_paused":"restore","restore_position":"extrapolate","restore_track":"only_current","license":"premium"},"from_device_identifier":"4caaba3413d4673d3929a47864cd72a79628748d"}}
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,227 DEBUG Player:89 - Received command: Transfer
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,254 DEBUG Player:379 - Loading context (transfer), uri: spotify:playlist:5RJVwl6dJXaR3IUD2mLQHp
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,260 TRACE MercuryClient:140 - Send Mercury request, seq: 5, uri: hm://context-resolve/v1/spotify:playlist:5RJVwl6dJXaR3IUD2mLQHp, method: GET
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,662 TRACE MercuryClient:183 - Handling packet, cmd: MercuryReq, seq: 5, flags: 0, parts: 1
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,769 TRACE MercuryClient:183 - Handling packet, cmd: MercuryReq, seq: 5, flags: 2, parts: 1
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,801 TRACE MercuryClient:183 - Handling packet, cmd: MercuryReq, seq: 5, flags: 2, parts: 1
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,841 TRACE MercuryClient:183 - Handling packet, cmd: MercuryReq, seq: 5, flags: 1, parts: 1
Apr 09 05:12:41 spotipi java[1135]: 2021-04-09 05:12:41,945 ERROR DealerClient:112 - Failed handling request. {key: cbf79024-7486-47ec-9fb9-c6268e81005c}
Apr 09 05:12:41 spotipi java[1135]: java.lang.UnsupportedOperationException: null
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.metadata.UnsupportedId.getGid(UnsupportedId.java:17) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.common.ProtoUtils.lambda$jsonToContextTrack$0(ProtoUtils.java:121) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at java.util.Optional.ifPresent(Optional.java:183) ~[?:?]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.common.ProtoUtils.jsonToContextTrack(ProtoUtils.java:119) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.common.ProtoUtils.jsonToContextTracks(ProtoUtils.java:137) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.common.ProtoUtils.jsonToContextPage(ProtoUtils.java:148) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.common.ProtoUtils.jsonToContextPages(ProtoUtils.java:156) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.mercury.MercuryRequests$ResolvedContextWrapper.pages(MercuryRequests.java:142) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.PagesLoader.getPage(PagesLoader.java:95) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.PagesLoader.nextPage(PagesLoader.java:129) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.StateWrapper$TracksKeeper.initializeFrom(StateWrapper.java:1075) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.StateWrapper.transfer(StateWrapper.java:480) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.Player.handleTransferState(Player.java:382) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.Player.access$300(Player.java:49) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.Player$1.command(Player.java:96) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.state.DeviceStateHandler.notifyCommand(DeviceStateHandler.java:110) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.player.state.DeviceStateHandler.onRequest(DeviceStateHandler.java:176) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.dealer.DealerClient.lambda$handleRequest$1(DealerClient.java:107) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.common.AsyncWorker.lambda$new$0(AsyncWorker.java:20) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at xyz.gianlu.librespot.common.AsyncProcessor.lambda$submit$1(AsyncProcessor.java:40) ~[librespot-java-api-v1.5.5.jar:1.5.5]
Apr 09 05:12:41 spotipi java[1135]: at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
Apr 09 05:12:41 spotipi java[1135]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
Apr 09 05:12:41 spotipi java[1135]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
Apr 09 05:12:41 spotipi java[1135]: at java.lang.Thread.run(Thread.java:834) [?:?]
Desktop (please complete the following information):
Describe the bug
A clear and concise description of what the bug is.
Spotify on my windows 10 desktop and iphone 7 can not see spocon as a spotify-connect server. When running raspotify on the same device I can connect to librespot every time from spotify on the desktop and iphone.
Below is the service log and the config.toml. Config.toml is configured to ouptut audio and metedata to pipe to owntone.
Spocon is (and librespot for testing as needed) running on Dietpi 8.1 x86.
Thanks for the great project and helping with this bug.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Logs
If applicable, execute journalctl -u spocon -f --no-pager
and paste the result here.
root@DietPi:/opt/spocon# systemctl -n 1000 status spocon
● spocon.service - SpoCon
Loaded: loaded (/lib/systemd/system/spocon.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2022-02-26 06:04:01 CST; 10s ago
Process: 121732 ExecStartPre=/bin/sh -c until ping -c1 spotify.com; do sleep 5; done; (code=exited, status=0/SUCCESS)
Main PID: 121734 (java)
Tasks: 19 (limit: 1164)
Memory: 49.9M
CPU: 1.587s
CGroup: /system.slice/spocon.service
└─121734 /usr/bin/java -jar /opt/spocon/librespot-java-api-v1.6.2.jar
Feb 26 06:04:01 DietPi systemd[1]: Starting SpoCon...
Feb 26 06:04:01 DietPi sh[121733]: PING spotify.com(2600:1901:1:c36:: (2600:1901:1:c36::)) 56 data bytes
Feb 26 06:04:01 DietPi sh[121733]: 64 bytes from 2600:1901:1:c36:: (2600:1901:1:c36::): icmp_seq=1 ttl=118 time=3.97 ms
Feb 26 06:04:01 DietPi sh[121733]: --- spotify.com ping statistics ---
Feb 26 06:04:01 DietPi sh[121733]: 1 packets transmitted, 1 received, 0% packet loss, time 0ms
Feb 26 06:04:01 DietPi sh[121733]: rtt min/avg/max/mdev = 3.972/3.972/3.972/0.000 ms
Feb 26 06:04:01 DietPi systemd[1]: Started SpoCon.
Feb 26 06:04:02 DietPi java[121734]: 2022-02-26 06:04:02,506 INFO Utils:104 - Cryptography restrictions removal not needed.
Feb 26 06:04:02 DietPi java[121734]: 2022-02-26 06:04:02,549 INFO ZeroconfServer:472 - Zeroconf HTTP server started successfully on port 58550!
Feb 26 06:04:03 DietPi java[121734]: 2022-02-26 06:04:03,991 INFO Zeroconf:500 - Announced Service{alias='librespot', service='spotify-connect', port=58550, text={ VERSION=1.0, CPath=/, Stack=SP}, addresses=[], domain='.local', protocol='tcp', host='DietPi'}.
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,005 DEBUG logging:152 - Logging Provider: org.jboss.logging.Log4j2LoggerProvider
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,093 INFO undertow:120 - starting server: Undertow - 2.2.14.Final
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,099 INFO xnio:95 - XNIO version 3.8.4.Final
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,114 INFO nio:58 - XNIO NIO Implementation Version 3.8.4.Final
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,115 TRACE nio:176 - Starting up with selector provider class sun.nio.ch.EPollSelectorProvider
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,116 TRACE nio:219 - Using Default system selector creator for provider class sun.nio.ch.EPollSelectorProvid er for main selectors and Default system selector creator for provider class sun.nio.ch.EPollSelectorProvider for temp selectors
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,133 INFO threads:52 - JBoss Threads version 3.1.0.Final
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,141 TRACE nio:241 - CAS org.xnio.nio.NioXnioWorker@7103cb56 00000001 -> 00000002
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,141 TRACE nio:241 - CAS org.xnio.nio.NioXnioWorker@7103cb56 00000002 -> 00000003
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,142 TRACE nio:440 - Starting worker thread Thread[XNIO-1 I/O-1,5,main]
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,143 DEBUG nio:444 - Started channel thread 'XNIO-1 I/O-1', selector sun.nio.ch.EPollSelectorImpl@4bddc78
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,143 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@4bddc78
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,143 TRACE nio:531 - Select, queue is empty
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,143 TRACE nio:241 - CAS org.xnio.nio.NioXnioWorker@7103cb56 00000003 -> 00000004
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,144 TRACE nio:440 - Starting worker thread Thread[XNIO-1 I/O-2,5,main]
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,144 DEBUG nio:444 - Started channel thread 'XNIO-1 I/O-2', selector sun.nio.ch.EPollSelectorImpl@48fb700e
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,145 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@48fb700e
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,145 TRACE nio:531 - Select, queue is empty
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,146 DEBUG undertow:160 - Configuring listener with protocol HTTP for interface 0.0.0.0 and port 24879
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,153 TRACE nio:440 - Starting worker thread Thread[XNIO-1 Accept,5,main]
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,153 DEBUG nio:444 - Started channel thread 'XNIO-1 Accept', selector sun.nio.ch.EPollSelectorImpl@10943ce2
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,154 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@10943ce2
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,154 TRACE nio:531 - Select, queue is empty
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,177 TRACE selector:564 - Selected on sun.nio.ch.EPollSelectorImpl@10943ce2
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,177 TRACE nio:611 - Running task org.xnio.nio.WorkerThread$SynchTask@1e53d080
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,179 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@10943ce2
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,179 TRACE nio:531 - Select, queue is empty
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,184 TRACE listener:57 - Setting channel listener to org.xnio.nio.QueuedNioTcpServer2$$Lambda$153/0x00000008 401e0c40@35e5d0e5
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,188 TRACE nio:624 - Added task org.xnio.nio.NioTcpServerHandle$2@77d2e85
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,188 TRACE selector:564 - Selected on sun.nio.ch.EPollSelectorImpl@10943ce2
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,188 TRACE nio:611 - Running task org.xnio.nio.NioTcpServerHandle$2@77d2e85
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,188 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@10943ce2
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,188 TRACE nio:531 - Select, queue is empty
Feb 26 06:04:04 DietPi java[121734]: 2022-02-26 06:04:04,189 INFO ApiServer:65 - Server started on port 24879!
root@DietPi:/opt/spocon#
Additional context
Add any other context about the problem here.
/opt/spocon/config.toml
deviceType = "AVR"
deviceName = "librespot"
deviceId = ""
logLevel = "ALL"
preferredLocale = "en"
[cache]
dir = "./cache/"
# Cache enabled
enabled = true
doCleanUp = true
[auth]
# Credentials file (JSON)
credentialsFile = "credentials.json"
# Spotify password (USER_PASS only)
password = ""
# Spotify authentication blob Base64-encoded (BLOB only)
blob = ""
# Whether to store reusable credentials on disk (not a plain password)
storeCredentials = false
# Strategy (USER_PASS, ZEROCONF, BLOB, FACEBOOK, STORED)
strategy = "ZEROCONF"
# Spotify username (BLOB, USER_PASS only)
username = ""
[preload]
# Preload enabled
enabled = true
[network]
# If ping isn't received within this amount of seconds, reconnect
connectionTimeout = 10
[proxy]
# Basic auth password
password = ""
# The proxy hostname
address = ""
# The proxy port
port = 0
# Whether authentication is enabled on the server
auth = false
# The proxy type (HTTP, SOCKS)
type = "HTTP"
# Connect to proxy using SSL (HTTP only)
ssl = false
# Whether the proxy is enabled
enabled = false
# Basic auth username
username = ""
[zeroconf]
# Listen on all interfaces (overrides zeroconf.interfaces
)
listenAll = true
# Listen on these interfaces (comma separated list of names)
interfaces = ""
# Listen on this TCP port (-1
for random)
listenPort = -1
[shell]
onTrackSeeked = ""
onStartedLoading = ""
onConnectionDropped = ""
onMetadataAvailable = ""
onTrackChanged = ""
onPanicState = ""
onFinishedLoading = ""
# Shell events enabled
enabled = false
onPlaybackResumed = ""
onConnectionEstablished = ""
onPlaybackEnded = ""
onContextChanged = ""
# Execute the command with bash -c
executeWithBash = false
onPlaybackPaused = ""
onInactiveSession = ""
onVolumeChanged = ""
[time]
# Manual time correction in millis
manualCorrection = 0
# Time synchronization method (NTP, PING, MELODY, MANUAL)
synchronizationMethod = "NTP"
[api]
# API port (api
module only)
port = 24879
# API listen interface (api
module only)
host = "0.0.0.0"
[player]
# Whether to apply the Spotify loudness normalisation
enableNormalisation = true
# Initial volume (0-65536)
initialVolume = 65536
# Whether librespot-java should ignore volume events, sink volume is set to the max
bypassSinkVolume = false
# Release mixer line after set delay (in seconds)
releaseLineDelay = 20
# Normalisation pregain in decibels (loud at +6, normal at +3, quiet at -5)
normalisationPregain = 3.0
# Output metadata in Shairport Sync format (https://github.com/mikebrady/shairport-sync-metadata-reader)
metadataPipe = "/srv/music/spotify.metadata"
# Autoplay similar songs when your music ends
autoplayEnabled = true
# Preferred audio quality (NORMAL, HIGH, VERY_HIGH)
preferredAudioQuality = "NORMAL"
# Where librespot-java should search for local files
localFilesPath = ""
# Audio output device (MIXER, PIPE, STDOUT, CUSTOM)
output = "PIPE"
# Crossfade overlap time (in milliseconds)
crossfadeDuration = 0
# Audio output Java class name
outputClass = ""
# Whether the player should retry fetching a chuck if it fails
retryOnChunkError = true
# Mixer/backend search keywords (semicolon separated)
mixerSearchKeywords = ""
# Output raw (signed) PCM to this file (player.output
must be PIPE)
pipe = "/srv/music/spotify"
# Number of volume notches
volumeSteps = 64
# Log available mixers
logAvailableMixers = true
Is your feature request related to a problem? Please describe.
My Problem is that I can't control my Spocon client threw the spotify Web API after a specific time of roundabout 10 h. After this time I think the client goes into "sleep mode" and is not accessible threw the API anymore.
Describe the solution you'd like
It would be nice if there would be an option that disables the sleep mode entirely or if there would be a function that disables it.
Hi there,
sorry for the bother, could someone help with the ports for iptables?
I've enabled a fixed port for avahi in the config file:
### Zeroconf ###
[zeroconf]
# Listen on all interfaces (overrides `zeroconf.interfaces`)
listenAll = true
# Listen on these interfaces (comma separated list of names)
interfaces = ""
# Listen on this port (`-1` for random)
listenPort = 5355
and opened that port as such:
:UDP - [0:0]
....
....
....
-A UDP -s 192.168.224.0/24 -p udp -m multiport --dports 5355 -j ACCEPT
but it doesn't show in my spotify app. As soon as I disable the firewall it shows up.
Any help would be appreciated
i trying to connect with my iPhone to my RaspberryPi 4 and no Connection ... only waiting. Here is the log.
So raspotify is much easier to handle! Why?
-- Logs begin at Thu 2021-01-28 20:17:02 CET. --
Jan 29 10:01:20 berry4 java[31513]: at xyz.gianlu.librespot.core.Session$Builder.decryptBlob(Session.java:879) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:20 berry4 java[31513]: at xyz.gianlu.librespot.core.Session$Builder.blob(Session.java:970) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:20 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer.handleAddUser(ZeroconfServer.java:349) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:20 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer.access$200(ZeroconfServer.java:40) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:20 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer$HttpRunner.handleRequest(ZeroconfServer.java:482) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:20 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer$HttpRunner.handle(ZeroconfServer.java:557) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:20 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer$HttpRunner.lambda$run$1(ZeroconfServer.java:465) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:20 berry4 java[31513]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_152]
Jan 29 10:01:20 berry4 java[31513]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_152]
Jan 29 10:01:20 berry4 java[31513]: at java.lang.Thread.run(Thread.java:748) [?:1.8.0_152]
Jan 29 10:01:43 berry4 java[31513]: 2021-01-29 10:01:43,338 TRACE ZeroconfServer:519 - Handling request: POST / HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.96 iOS/14.4 (iPhone10,4), Host=192.168.1.210, Accept-Encoding=gzip, Content-Length=702, Content-Type=application/x-www-form-urlencoded}
Jan 29 10:01:43 berry4 java[31513]: 2021-01-29 10:01:43,356 INFO ZeroconfServer:328 - Accepted new user from iPhone von Denis. {deviceId: 6779cefe4a4ec0c18fd082ea65e153aa880c745c}
Jan 29 10:01:43 berry4 java[31513]: 2021-01-29 10:01:43,364 FATAL ZeroconfServer:358 - Couldn't establish a new session.
Jan 29 10:01:43 berry4 java[31513]: java.security.InvalidKeyException: Illegal key size or default parameters
Jan 29 10:01:43 berry4 java[31513]: at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1026) ~[?:1.8.0_152]
Jan 29 10:01:43 berry4 java[31513]: at javax.crypto.Cipher.implInit(Cipher.java:801) ~[?:1.8.0_152]
Jan 29 10:01:43 berry4 java[31513]: at javax.crypto.Cipher.chooseProvider(Cipher.java:864) ~[?:1.8.0_152]
Jan 29 10:01:43 berry4 java[31513]: at javax.crypto.Cipher.init(Cipher.java:1249) ~[?:1.8.0_152]
Jan 29 10:01:43 berry4 java[31513]: at javax.crypto.Cipher.init(Cipher.java:1186) ~[?:1.8.0_152]
Jan 29 10:01:43 berry4 java[31513]: at xyz.gianlu.librespot.core.Session$Builder.decryptBlob(Session.java:879) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:43 berry4 java[31513]: at xyz.gianlu.librespot.core.Session$Builder.blob(Session.java:970) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:43 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer.handleAddUser(ZeroconfServer.java:349) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:43 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer.access$200(ZeroconfServer.java:40) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:43 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer$HttpRunner.handleRequest(ZeroconfServer.java:482) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:43 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer$HttpRunner.handle(ZeroconfServer.java:557) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:43 berry4 java[31513]: at xyz.gianlu.librespot.ZeroconfServer$HttpRunner.lambda$run$1(ZeroconfServer.java:465) ~[librespot-java-api-v1.5.4.jar:1.5.4]
Jan 29 10:01:43 berry4 java[31513]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_152]
Jan 29 10:01:43 berry4 java[31513]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_152]
Jan 29 10:01:43 berry4 java[31513]: at java.lang.Thread.run(Thread.java:748) [?:1.8.0_152]
Hi,
I have tried to install it on different devices and OS, but i can't select the device on spotify.
Installed on a server and on a raspberry pi 3 & pi 4, on debian, raspbian and ubuntu.
this is from the install:
pi@raspberrypi:~ $ curl -sL https://spocon.github.io/spocon/install.sh | sh Executing: /tmp/apt-key-gpghome.k0YbEze8Hz/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 7DBE8BF06EA39B78 gpg: key 7DBE8BF06EA39B78: public key "Launchpad PPA for Thorsten Haga" imported gpg: Total number processed: 1 gpg: imported: 1 deb http://ppa.launchpad.net/spocon/spocon/ubuntu bionic main Get:1 http://ppa.launchpad.net/spocon/spocon/ubuntu bionic InRelease [15.9 kB] Hit:2 http://archive.raspberrypi.org/debian buster InRelease Hit:3 http://raspbian.raspberrypi.org/raspbian buster InRelease Get:4 http://ppa.launchpad.net/spocon/spocon/ubuntu bionic/main armhf Packages [484 B] Get:5 http://ppa.launchpad.net/spocon/spocon/ubuntu bionic/main Translation-en [208 B] Fetched 16.6 kB in 3s (6,486 B/s) Reading package lists... Done Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: python-colorzero Use 'sudo apt autoremove' to remove it. The following additional packages will be installed: ca-certificates-java fonts-dejavu-extra java-common libatk-wrapper-java libatk-wrapper-java-jni openjdk-11-jre openjdk-11-jre-headless Suggested packages: default-jre fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic The following NEW packages will be installed: ca-certificates-java fonts-dejavu-extra java-common libatk-wrapper-java libatk-wrapper-java-jni openjdk-11-jre openjdk-11-jre-headless spocon 0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded. Need to get 47.5 MB of archives. After this operation, 168 MB of additional disk space will be used. Get:1 http://ppa.launchpad.net/spocon/spocon/ubuntu bionic/main armhf spocon armhf 1.6.0 [12.6 MB] Get:2 http://mirror.serverius.net/raspbian/raspbian buster/main armhf java-common all 0.71 [14.4 kB] Get:3 http://mirror.serverius.net/raspbian/raspbian buster/main armhf openjdk-11-jre-headless armhf 11.0.11+9-1~deb10u1 [32.7 MB] Get:5 http://mirror.nl.leaseweb.net/raspbian/raspbian buster/main armhf fonts-dejavu-extra all 2.37-1 [1,982 kB] Get:7 http://mirror.transip.net/raspbian/raspbian buster/main armhf libatk-wrapper-java-jni armhf 0.33.3-22 [33.7 kB] Get:4 http://mirror.serverius.net/raspbian/raspbian buster/main armhf ca-certificates-java all 20190405 [15.7 kB] Get:6 http://mirror.serverius.net/raspbian/raspbian buster/main armhf libatk-wrapper-java all 0.33.3-22 [45.3 kB] Get:8 http://mirror.serverius.net/raspbian/raspbian buster/main armhf openjdk-11-jre armhf 11.0.11+9-1~deb10u1 [148 kB] Fetched 47.5 MB in 17s (2,721 kB/s) Selecting previously unselected package java-common. (Reading database ... 98813 files and directories currently installed.) Preparing to unpack .../0-java-common_0.71_all.deb ... Unpacking java-common (0.71) ... Selecting previously unselected package openjdk-11-jre-headless:armhf. Preparing to unpack .../1-openjdk-11-jre-headless_11.0.11+9-1~deb10u1_armhf.deb ... Unpacking openjdk-11-jre-headless:armhf (11.0.11+9-1~deb10u1) ... Selecting previously unselected package ca-certificates-java. Preparing to unpack .../2-ca-certificates-java_20190405_all.deb ... Unpacking ca-certificates-java (20190405) ... Selecting previously unselected package fonts-dejavu-extra. Preparing to unpack .../3-fonts-dejavu-extra_2.37-1_all.deb ... Unpacking fonts-dejavu-extra (2.37-1) ... Selecting previously unselected package libatk-wrapper-java. Preparing to unpack .../4-libatk-wrapper-java_0.33.3-22_all.deb ... Unpacking libatk-wrapper-java (0.33.3-22) ... Selecting previously unselected package libatk-wrapper-java-jni:armhf. Preparing to unpack .../5-libatk-wrapper-java-jni_0.33.3-22_armhf.deb ... Unpacking libatk-wrapper-java-jni:armhf (0.33.3-22) ... Selecting previously unselected package openjdk-11-jre:armhf. Preparing to unpack .../6-openjdk-11-jre_11.0.11+9-1~deb10u1_armhf.deb ... Unpacking openjdk-11-jre:armhf (11.0.11+9-1~deb10u1) ... Selecting previously unselected package spocon. Preparing to unpack .../7-spocon_1.6.0_armhf.deb ... Adding group
spocon' (GID 124) ...
Done.
Adding system user spocon' (UID 115) ... Adding new user
spocon' (UID 115) with group spocon' ... Creating home directory
/home/spocon' ...
Adding user spocon' to group
audio' ...
Adding user spocon to group audio
Done.
Unpacking spocon (1.6.0) ...
Setting up java-common (0.71) ...
Setting up fonts-dejavu-extra (2.37-1) ...
Setting up libatk-wrapper-java (0.33.3-22) ...
Setting up libatk-wrapper-java-jni:armhf (0.33.3-22) ...
Setting up ca-certificates-java (20190405) ...
head: cannot open '/etc/ssl/certs/java/cacerts' for reading: No such file or directory
Adding debian:DigiCert_Global_Root_CA.pem
Adding debian:thawte_Primary_Root_CA_-G3.pem
Adding debian:Entrust_Root_Certification_Authority.pem
Adding debian:DigiCert_Assured_ID_Root_G3.pem
Adding debian:SSL.com_Root_Certification_Authority_ECC.pem
Adding debian:Izenpe.com.pem
Adding debian:GeoTrust_Universal_CA.pem
Adding debian:COMODO_RSA_Certification_Authority.pem
Adding debian:Go_Daddy_Root_Certificate_Authority-G2.pem
Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem
Adding debian:ACCVRAIZ1.pem
Adding debian:USERTrust_ECC_Certification_Authority.pem
Adding debian:QuoVadis_Root_CA_2.pem
Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem
Adding debian:Buypass_Class_2_Root_CA.pem
Adding debian:DigiCert_Global_Root_G2.pem
Adding debian:emSign_ECC_Root_CA-G3.pem
Adding debian:QuoVadis_Root_CA_2_G3.pem
Adding debian:Entrust_Root_Certification_Authority-G4.pem
Adding debian:SZAFIR_ROOT_CA2.pem
Adding debian:GeoTrust_Primary_Certification_Authority.pem
Adding debian:T-TeleSec_GlobalRoot_Class_3.pem
Adding debian:NetLock_Arany=Class_Gold=F\u0151tan\u00fas\u00edtv\u00e1ny.pem
Adding debian:DigiCert_Trusted_Root_G4.pem
Adding debian:Security_Communication_RootCA2.pem
Adding debian:LuxTrust_Global_Root_2.pem
Adding debian:Go_Daddy_Class_2_CA.pem
Adding debian:T-TeleSec_GlobalRoot_Class_2.pem
Adding debian:QuoVadis_Root_CA.pem
Adding debian:GTS_Root_R3.pem
Adding debian:Chambers_of_Commerce_Root-2008.pem
Adding debian:IdenTrust_Commercial_Root_CA_1.pem
Adding debian:VeriSign_Class_3_Public_Primary_Certification_Authority-G5.pem
Adding debian:Certum_Trusted_Network_CA_2.pem
Adding debian:Starfield_Services_Root_Certificate_Authority-G2.pem
Adding debian:AffirmTrust_Commercial.pem
Adding debian:GlobalSign_Root_CA.pem
Adding debian:TrustCor_ECA-1.pem
Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem
Adding debian:Certum_Trusted_Network_CA.pem
Adding debian:E-Tugra_Certification_Authority.pem
Adding debian:Global_Chambersign_Root-2008.pem
Adding debian:Certigna_Root_CA.pem
Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem
Adding debian:GlobalSign_Root_CA-R6.pem
Adding debian:GeoTrust_Primary_Certification_Authority-G2.pem
Adding debian:TrustCor_RootCert_CA-2.pem
Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem
Adding debian:GeoTrust_Primary_Certification_Authority-G3.pem
Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem
Adding debian:DigiCert_Assured_ID_Root_CA.pem
Adding debian:Sonera_Class_2_Root_CA.pem
Adding debian:AffirmTrust_Premium_ECC.pem
Adding debian:SecureSign_RootCA11.pem
Adding debian:emSign_Root_CA-C1.pem
Adding debian:ssl-cert-snakeoil.pem
Adding debian:DST_Root_CA_X3.pem
Adding debian:Atos_TrustedRoot_2011.pem
Adding debian:Network_Solutions_Certificate_Authority.pem
Adding debian:VeriSign_Universal_Root_Certification_Authority.pem
Adding debian:Comodo_AAA_Services_root.pem
Adding debian:Staat_der_Nederlanden_EV_Root_CA.pem
Adding debian:ePKI_Root_Certification_Authority.pem
Adding debian:TrustCor_RootCert_CA-1.pem
Adding debian:EC-ACC.pem
Adding debian:Trustis_FPS_Root_CA.pem
Adding debian:GlobalSign_Root_CA-R3.pem
Adding debian:Baltimore_CyberTrust_Root.pem
Adding debian:CFCA_EV_ROOT.pem
Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem
Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem
Adding debian:emSign_ECC_Root_CA-C3.pem
Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem
Adding debian:Staat_der_Nederlanden_Root_CA-G3.pem
Adding debian:COMODO_Certification_Authority.pem
Adding debian:Verisign_Class_3_Public_Primary_Certification_Authority-G3.pem
Adding debian:Certigna.pem
Adding debian:CA_Disig_Root_R2.pem
Adding debian:Microsec_e-Szigno_Root_CA_2009.pem
Adding debian:thawte_Primary_Root_CA.pem
Adding debian:TeliaSonera_Root_CA_v1.pem
Adding debian:Amazon_Root_CA_2.pem
Adding debian:DigiCert_Assured_ID_Root_G2.pem
Adding debian:GlobalSign_Root_CA-R2.pem
Adding debian:Entrust_Root_Certification_Authority-EC1.pem
Adding debian:UCA_Extended_Validation_Root.pem
Adding debian:AC_RAIZ_FNMT-RCM.pem
Adding debian:Security_Communication_Root_CA.pem
Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi-Surum_1.pem
Adding debian:TWCA_Root_Certification_Authority.pem
Adding debian:SecureTrust_CA.pem
Adding debian:AffirmTrust_Networking.pem
Adding debian:VeriSign_Class_3_Public_Primary_Certification_Authority-G4.pem
Adding debian:thawte_Primary_Root_CA-G2.pem
Adding debian:emSign_Root_CA-G1.pem
Adding debian:Amazon_Root_CA_1.pem
Adding debian:DigiCert_Global_Root_G3.pem
Adding debian:certSIGN_ROOT_CA.pem
Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem
Adding debian:GDCA_TrustAUTH_R5_ROOT.pem
Adding debian:EE_Certification_Centre_Root_CA.pem
Adding debian:TWCA_Global_Root_CA.pem
Adding debian:Actalis_Authentication_Root_CA.pem
Adding debian:Entrust_Root_Certification_Authority-G2.pem
Adding debian:QuoVadis_Root_CA_1_G3.pem
Adding debian:GlobalSign_ECC_Root_CA-R4.pem
Adding debian:Taiwan_GRCA.pem
Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem
Adding debian:Secure_Global_CA.pem
Adding debian:GeoTrust_Global_CA.pem
Adding debian:GlobalSign_ECC_Root_CA-R5.pem
Adding debian:ISRG_Root_X1.pem
Adding debian:Staat_der_Nederlanden_Root_CA-G2.pem
Adding debian:GTS_Root_R1.pem
Adding debian:GeoTrust_Universal_CA_2.pem
Adding debian:Starfield_Root_Certificate_Authority-G2.pem
Adding debian:SSL.com_Root_Certification_Authority_RSA.pem
Adding debian:USERTrust_RSA_Certification_Authority.pem
Adding debian:Starfield_Class_2_CA.pem
Adding debian:QuoVadis_Root_CA_3.pem
Adding debian:Amazon_Root_CA_3.pem
Adding debian:SwissSign_Silver_CA-G2.pem
Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem
Adding debian:AffirmTrust_Premium.pem
Adding debian:SwissSign_Gold_CA-_G2.pem
Adding debian:Hongkong_Post_Root_CA_1.pem
Adding debian:GTS_Root_R4.pem
Adding debian:UCA_Global_G2_Root.pem
Adding debian:OISTE_WISeKey_Global_Root_GA_CA.pem
Adding debian:QuoVadis_Root_CA_3_G3.pem
Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem
Adding debian:Amazon_Root_CA_4.pem
Adding debian:COMODO_ECC_Certification_Authority.pem
Adding debian:GTS_Root_R2.pem
Adding debian:Cybertrust_Global_Root.pem
Adding debian:XRamp_Global_CA_Root.pem
Adding debian:Hongkong_Post_Root_CA_3.pem
Adding debian:Buypass_Class_3_Root_CA.pem
done.
Processing triggers for fontconfig (2.13.1-2) ...
Processing triggers for desktop-file-utils (0.23-4) ...
Processing triggers for mime-support (3.62) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.31.4-3) ...
Processing triggers for libc-bin (2.28-10+rpi1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for ca-certificates (20200601~deb10u2) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
done.
Setting up openjdk-11-jre-headless:armhf (11.0.11+9-1deb10u1) ...deb10u1) ...
update-alternatives: using /usr/lib/jvm/java-11-openjdk-armhf/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-armhf/bin/jjs to provide /usr/bin/jjs (jjs) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-armhf/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-armhf/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-armhf/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-armhf/bin/pack200 to provide /usr/bin/pack200 (pack200) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-armhf/bin/unpack200 to provide /usr/bin/unpack200 (unpack200) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-armhf/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
Setting up openjdk-11-jre:armhf (11.0.11+9-1
Setting up spocon (1.6.0) ...
Created symlink /etc/systemd/system/multi-user.target.wants/spocon.service \u2192 /lib/systemd/system/spocon.service.
`
I use a DAC that has built in hardware volume control and would like to bypass the software volume
Software volume degrades the sound considerably, while hardware passes the sound data untouched
I would like the ability to pass the audio data unchanged to the device and control the volume by way of hardware
Raspotify has the ability to directly control the hardware volume control of the DAC by specifying the control name
My mixer control is "Digital" to control the hardware volume
Raspotify has the ability to configure this type of operation as an example
Raspotify will actually control the hardware volume when using the Spotify applications from any device volume control and slider
Thank You
Hi, i made a fresh clean install with 2020-02-13-raspbian-buster-lite. There is always a little gap between to song, is there any way to activate gapless playback?
Describe the bug
I get an error when following the Launchpad directions
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Should add repo and then install.
Desktop (please complete the following information):
Raspbian 9.11 strech on RPI3
I installed spocon and is working really well.
I installed alsa equalizer and is working ok too, but I can't find a way to run spocon through the alsa equalizer.
I suggest adding in settings a way to reverse that.
Sorry for my terrible english.
I have tried
defaults.ctl.card 0
defaults.pcm.card 0
and
defaults.ctl.card 1
defaults.pcm.card 1
and every combination possible in between.
But I do not get any sound on my ubuntu 22 server
If I do play test.wav it does play and also with aplay test.wav
The output of aplay -l
woute@server-pc:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC3241 Analog [ALC3241 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
But what to choose as those options, I though card 1, but it doesnt work. I want the internal speaker to work
Describe the bug
Pemission denied in Pipe
To Reproduce
Steps to reproduce the behavior:
Start the server on a place where you have access
Expected behavior
No permission denied for places where there is access
Screenshots
If applicable, add screenshots to help explain your problem.
Logs
`Feb 16 12:35:16 raspberrypi java[6359]: 2022-02-16 12:35:16,047 DEBUG Player:106 - Received command: Transfer
Feb 16 12:35:16 raspberrypi java[6359]: 2022-02-16 12:35:16,727 DEBUG Player:533 - Loading context (transfer), uri: spotify:playlist:37i9dQZF1E39WNWQOVPYeb
Feb 16 12:35:16 raspberrypi java[6359]: 2022-02-16 12:35:16,867 DEBUG DeviceStateHandler:210 - Device is now active. {ts: 1645014916876}
Feb 16 12:35:16 raspberrypi java[6359]: 2022-02-16 12:35:16,994 TRACE StateWrapper:1139 - Initialized current track index to 4.
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,047 DEBUG Player:348 - Loading session, id: b37iKNKVmg8NbyH5TjhTRw, play: false
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,111 INFO PlayerSession:69 - Created new session. {id: b37iKNKVmg8NbyH5TjhTRw}
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,154 DEBUG Player:490 - Loading track, id: TrackId{spotify:track:4iaaEAAyCWrQdYT5tRnyDb}, session: b37iKNKVmg8NbyH5TjhTRw, playback: null, play: false
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,188 TRACE MercuryClient:156 - Send Mercury request, seq: 2, uri: hm://event-service/v1/events, method: POST
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,233 TRACE PlayerQueueEntry:92 - Created new PlayerQueueEntry{0152fa8147c9b0926222b1f3caf2a1fb}.
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,238 TRACE PlayerSession:162 - PlayerQueueEntry{0152fa8147c9b0926222b1f3caf2a1fb} started loading.
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,238 TRACE PlayerQueue:82 - PlayerQueueEntry{0152fa8147c9b0926222b1f3caf2a1fb} added to queue.
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,245 DEBUG PlayerSession:283 - PlayerQueueEntry{0152fa8147c9b0926222b1f3caf2a1fb} has been added to the output. {sessionId: b37iKNKVmg8NbyH5TjhTRw, pos: 78124, reason: CLICK_ROW}
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,256 TRACE MercuryClient:199 - Handling packet, cmd: MercuryReq, seq: 2, flags: 1, parts: 1
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,260 DEBUG EventService:51 - Event sent. {body: 557|3|b37iKNKVmg8NbyH5TjhTRw|spotify:playlist:37i9dQZF1E39WNWQOVPYeb|spotify:playlist:37i9dQZF1E39WNWQOVPYeb|1645014917149||50|context://spotify:playlist:37i9dQZF1E39WNWQOVPYeb, result: 200}
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,264 TRACE MercuryClient:156 - Send Mercury request, seq: 3, uri: hm://event-service/v1/events, method: POST
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,368 TRACE MercuryClient:199 - Handling packet, cmd: MercuryReq, seq: 3, flags: 1, parts: 1
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,371 DEBUG EventService:51 - Event sent. {body: 558|1|0152fa8147c9b0926222b1f3caf2a1fb|b37iKNKVmg8NbyH5TjhTRw|1645014917266, result: 200}
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,399 ERROR DacpMetadataPipe:67 - Failed sending metadata through pipe!
Feb 16 12:35:17 raspberrypi java[6359]: java.io.FileNotFoundException: /home/pi/music/spotify/spotify.metadata (Permission denied)
Feb 16 12:35:17 raspberrypi java[6359]: at java.io.FileOutputStream.open0(Native Method) ~[?:?]
Feb 16 12:35:17 raspberrypi java[6359]: at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
Feb 16 12:35:17 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:237) ~[?:?]
Feb 16 12:35:17 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:187) ~[?:?]
Feb 16 12:35:17 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.send(DacpMetadataPipe.java:72) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:17 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:65) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:17 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:60) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:17 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:56) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:17 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.sendPipeFlush(DacpMetadataPipe.java:110) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:17 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher$1.onPlaybackPaused(Player.java:992) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:17 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher.lambda$playbackPaused$2(Player.java:1068) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:17 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
Feb 16 12:35:17 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
Feb 16 12:35:17 raspberrypi java[6359]: at java.lang.Thread.run(Thread.java:829) [?:?]
Feb 16 12:35:17 raspberrypi java[6359]: 2022-02-16 12:35:17,433 DEBUG DealerClient:126 - Handled request. {key: 227d2810-5dbd-4f67-a425-9a2ac686a5d2, result: SUCCESS}
// discared since too long //
Feb 16 12:35:18 raspberrypi java[6359]: 2022-02-16 12:35:18,934 TRACE CdnManager:277 - Chunk 22/85 completed, cached: true, stream: {fileId: 1D58D0861AF16DEAC30E498408FCF9207E7BEAD4}
Feb 16 12:35:18 raspberrypi java[6359]: 2022-02-16 12:35:18,934 TRACE CdnManager:277 - Chunk 23/85 completed, cached: true, stream: {fileId: 1D58D0861AF16DEAC30E498408FCF9207E7BEAD4}
Feb 16 12:35:18 raspberrypi java[6359]: 2022-02-16 12:35:18,939 TRACE PlayerSession:194 - PlayerQueueEntry{0152fa8147c9b0926222b1f3caf2a1fb} finished loading.
Feb 16 12:35:18 raspberrypi java[6359]: 2022-02-16 12:35:18,940 TRACE CdnManager:277 - Chunk 24/85 completed, cached: true, stream: {fileId: 1D58D0861AF16DEAC30E498408FCF9207E7BEAD4}
Feb 16 12:35:19 raspberrypi java[6359]: 2022-02-16 12:35:19,051 ERROR DacpMetadataPipe:67 - Failed sending metadata through pipe!
Feb 16 12:35:19 raspberrypi java[6359]: java.io.FileNotFoundException: /home/pi/music/spotify/spotify.metadata (Permission denied)
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open0(Native Method) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:237) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:187) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.send(DacpMetadataPipe.java:72) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:65) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:60) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:56) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.sendPipeFlush(DacpMetadataPipe.java:110) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher$1.onFinishedLoading(Player.java:1054) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher.lambda$finishedLoading$6(Player.java:1092) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.lang.Thread.run(Thread.java:829) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: 2022-02-16 12:35:19,062 ERROR DacpMetadataPipe:67 - Failed sending metadata through pipe!
Feb 16 12:35:19 raspberrypi java[6359]: java.io.FileNotFoundException: /home/pi/music/spotify/spotify.metadata (Permission denied)
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open0(Native Method) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:237) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:187) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.send(DacpMetadataPipe.java:72) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:65) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:60) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.sendTrackInfo(DacpMetadataPipe.java:96) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher$1.onMetadataAvailable(Player.java:1018) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher.lambda$metadataAvailable$10(Player.java:1121) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.lang.Thread.run(Thread.java:829) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: 2022-02-16 12:35:19,069 ERROR DacpMetadataPipe:67 - Failed sending metadata through pipe!
Feb 16 12:35:19 raspberrypi java[6359]: java.io.FileNotFoundException: /home/pi/music/spotify/spotify.metadata (Permission denied)
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open0(Native Method) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:237) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:187) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.send(DacpMetadataPipe.java:72) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:65) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:60) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.sendTrackInfo(DacpMetadataPipe.java:97) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher$1.onMetadataAvailable(Player.java:1018) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher.lambda$metadataAvailable$10(Player.java:1121) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.lang.Thread.run(Thread.java:829) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: 2022-02-16 12:35:19,085 ERROR DacpMetadataPipe:67 - Failed sending metadata through pipe!
Feb 16 12:35:19 raspberrypi java[6359]: java.io.FileNotFoundException: /home/pi/music/spotify/spotify.metadata (Permission denied)
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open0(Native Method) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:237) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:187) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.send(DacpMetadataPipe.java:72) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:65) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:60) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.sendTrackInfo(DacpMetadataPipe.java:98) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher$1.onMetadataAvailable(Player.java:1018) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher.lambda$metadataAvailable$10(Player.java:1121) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.lang.Thread.run(Thread.java:829) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: 2022-02-16 12:35:19,090 TRACE MixingLine:184 - Toggle first channel: true
Feb 16 12:35:19 raspberrypi java[6359]: 2022-02-16 12:35:19,394 ERROR DacpMetadataPipe:67 - Failed sending metadata through pipe!
Feb 16 12:35:19 raspberrypi java[6359]: java.io.FileNotFoundException: /home/pi/music/spotify/spotify.metadata (Permission denied)
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open0(Native Method) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:237) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:187) ~[?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.send(DacpMetadataPipe.java:72) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:65) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:60) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.sendProgress(DacpMetadataPipe.java:92) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher$1.onMetadataAvailable(Player.java:1022) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher.lambda$metadataAvailable$10(Player.java:1121) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: at java.lang.Thread.run(Thread.java:829) [?:?]
Feb 16 12:35:19 raspberrypi java[6359]: 2022-02-16 12:35:19,934 INFO DeviceStateHandler:273 - Put state. {ts: 1645014919040, connId: MmM2N...FRTg0, reason: PLAYER_STATE_CHANGED, request: device { device_info { can_play: true volume: 5243 name:
Feb 16 12:35:20 raspberrypi java[6359]: 2022-02-16 12:35:20,165 ERROR DacpMetadataPipe:67 - Failed sending metadata through pipe!
Feb 16 12:35:20 raspberrypi java[6359]: java.io.FileNotFoundException: /home/pi/music/spotify/spotify.metadata (Permission denied)
Feb 16 12:35:20 raspberrypi java[6359]: at java.io.FileOutputStream.open0(Native Method) ~[?:?]
Feb 16 12:35:20 raspberrypi java[6359]: at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
Feb 16 12:35:20 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:237) ~[?:?]
Feb 16 12:35:20 raspberrypi java[6359]: at java.io.FileOutputStream.(FileOutputStream.java:187) ~[?:?]
Feb 16 12:35:20 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.send(DacpMetadataPipe.java:72) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:20 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.safeSend(DacpMetadataPipe.java:65) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:20 raspberrypi java[6359]: at xyz.gianlu.librespot.dacp.DacpMetadataPipe.sendImage(DacpMetadataPipe.java:88) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:20 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher$1.onMetadataAvailable(Player.java:1025) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:20 raspberrypi java[6359]: at xyz.gianlu.librespot.player.Player$EventsDispatcher.lambda$metadataAvailable$10(Player.java:1121) ~[librespot-java-api-v1.6.2.jar:1.6.2]
Feb 16 12:35:20 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
Feb 16 12:35:20 raspberrypi java[6359]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
Feb 16 12:35:20 raspberrypi java[6359]: at java.lang.Thread.run(Thread.java:829) [?:?]`
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
sudo apt update & sudo apt --only-upgrade install spoon
https://github.com/spocon/spocon/releases
🥄 = spoon
😆
librespot-java-api-v1.6.0.jar
I'm using Spotify 8.6.30.968 (iphone) to control spocon (librespot-java-api-v1.6.0.jar) on Ubuntu 20.04.
Track progress time when paused continues to increase. I resume playback, the iphone app returns to the correct time position. If I leave it paused beyond the track length, the progress time is blank.
This is only from within the iphone app. The spotify lockscreen widget pauses progress bar/time correctly.
NTP time sync is enabled on the host.
Describe the bug
SpoCon crashes when a playback is transferred to the SpoCon device
Platform
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
VERSION="11 (bullseye)"
ID=raspbian
Linux 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
SpoCon Version: librespot-java-api-v1.6.2.jar
To Reproduce
curl -sL https://spocon.github.io/spocon/install.sh | sh
● spocon.service - SpoCon
Loaded: loaded (/lib/systemd/system/spocon.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-05-13 16:33:26 CEST; 3min 10s ago
Process: 1837 ExecStartPre=/bin/sh -c until ping -c1 spotify.com; do sleep 5; done; (code=exited, st>
Main PID: 1839 (java)
Tasks: 29 (limit: 1599)
CPU: 9.926s
CGroup: /system.slice/spocon.service
└─1839 /usr/bin/java -jar /opt/spocon/librespot-java-api-v1.6.2.jar
Expected behavior
SpoCon should take the transferred playback, begin playing and not crash.
Logs
May 13 17:00:20 livingroom java[3785]: 2023-05-13 17:00:20,735 TRACE ZeroconfServer:536 - Handling request: GET /?action=getInfo&version=2.7.1 HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/120900743 OSX_ARM64/0 (Macmini9,1), Host=192.168.1.192, Accept-Encoding=gzip, Content-Type=application/x-www-form-urlencoded}
May 13 17:00:26 livingroom java[3785]: 2023-05-13 17:00:26,904 TRACE ZeroconfServer:536 - Handling request: GET /?action=getInfo&version=2.7.1 HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/120900743 OSX_ARM64/0 (Macmini9,1), Host=192.168.1.192, Accept-Encoding=gzip, Content-Type=application/x-www-form-urlencoded}
May 13 17:00:26 livingroom java[3785]: 2023-05-13 17:00:26,921 TRACE ZeroconfServer:536 - Handling request: POST / HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/120900743 OSX_ARM64/0 (Macmini9,1), Host=192.168.1.192, Accept-Encoding=gzip, Content-Length=779, Content-Type=application/x-www-form-urlencoded}
May 13 17:00:27 livingroom java[3785]: 2023-05-13 17:00:27,179 INFO ZeroconfServer:345 - Accepted new user from Aaron’s Mac mini. {deviceId: 497c197e11e456fa6ecca32333ed4fc720925176}
May 13 17:00:27 livingroom java[3785]: 2023-05-13 17:00:27,418 INFO ApResolver:90 - Loaded aps into pool: {accesspoint=[ap-gew4.spotify.com:4070, ap-gew4.spotify.com:443, ap-gew4.spotify.com:80, ap-guc3.spotify.com:4070, ap-gew1.spotify.com:443, ap-gue1.spotify.com:80], dealer=[gew4-dealer.spotify.com:443, guc3-dealer.spotify.com:443, gew1-dealer.spotify.com:443, gue1-dealer.spotify.com:443], spclient=[gew4-spclient.spotify.com:443, guc3-spclient.spotify.com:443, gew1-spclient.spotify.com:443, gue1-spclient.spotify.com:443]}
May 13 17:00:27 livingroom java[3785]: 2023-05-13 17:00:27,458 DEBUG TimeProvider:90 - Loaded time offset from NTP: -3ms
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,069 INFO Session:137 - Created new session! {deviceId: 497c197e11e456fa6ecca32333ed4fc720925176, ap: ap-gew4.spotify.com:443, proxy: false}
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,573 INFO Session:331 - Connected successfully!
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,677 TRACE Session:1333 - Session.Receiver started
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,711 INFO CacheManager:95 - There are 0 cached entries.
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,724 TRACE AsyncProcessor:52 - AsyncProcessor{dealer-worker} has started
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,731 TRACE AsyncProcessor:52 - AsyncProcessor{event-service-sender} has started
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,734 INFO Session:1415 - Skipping SecretBlock
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,736 INFO Session:1387 - Received LicenseVersion: 0
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,738 INFO Session:1377 - Received CountryCode: NL
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,742 DEBUG TokenProvider:67 - Token expired or not suitable, requesting again. {scopes: [playlist-read], oldToken: null}
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,769 TRACE MercuryClient:156 - Send Mercury request, seq: 1, uri: hm://keymaster/token/authenticated?scope=playlist-read&client_id=65b708073fc0480ea92a077233ca87bd&device_id=497c197e11e456fa6ecca32333ed4fc720925176, method: GET
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,774 TRACE Session:776 - Parsed product info: {remote-control=6, publish-activity=0, audio-preview-url-template=https://p.scdn.co/mp3-preview/{id}, incognito_mode_timeout=21600, ad-formats-preroll-video=0, type=premium, ab_recently_played_feature_time_filter_threshold=com.spotify.gaia=30,driving-mode=120,spotify%3Ainternal%3Astartpage=30, license-agreements=, publish-playlist=0, buffering-strategy=0, expiry=1, ab-desktop-hide-follow=0, ab-collection-hide-unavailable-albums=0, capper-profile=, payments-initial-campaign=default, profile-image-upload=1, enable-annotations=2, ab-ad-player-targeting=1, india-experience=0, video-wifi-initial-bitrate=800000, ab-mobile-running-onlymanualmode=only-manual, playlist-annotations-markup=0, prefetch-keys=1, allow-override-internal-prefs=0, prefetch-window-max=2, send-email=0, ad-formats-video-takeover=1, ab-collection-bookmark-model=1, pause-after=0, local-files-import=0, video-manifest-url=https://spclient.wg.spotify.com/manifests/v6/{type}/sources/{source_id}/options/supports_drm, ab-sugarpills-sanity-check=0, playlist-folders=1, arsenal_country=1, track-cap=0, ab-mobile-running-tempo-detection=Control, is_email_verified=1, shows-collection=1, enable-annotations-read=0, addon-hifi=0, mobile-browse=0, payments-locked-state=0, employee-free-opt-in=0, shows-collection-jam=0, ab-browse-music-tuesday=1, offline=1, streaming=1, fb-info-confirmation=control, audio-quality=1, wanted-licenses=, lastfm-session=, ab-desktop-playlist-annotation-edit=1, ab-mobile-discover=0, widevine-license-url=https://spclient.wg.spotify.com/widevine-license/v1/video/license, key-caching-max-count=10000, hifi-eligible=0, ad-session-persistence=1, video-initial-bitrate=200000, ab-play-history=0, created_by_partner=, mobile-payment=0, payment-state=, key-caching-max-offline-seconds=1800, ugc-abuse-report-url=https://support.spotify.com/abuse/?uri={uri}, shuffle-algorithm=1, use-pl3=0, image-url=https://i.scdn.co/image/{file_id}, use-playlist-app=0, enable-autostart=1, metadata-link-lookup-modes=0, multiuserplan-current-size=2, shuffle=0, instant-search=0, instant-search-expand-sidebar=0, use-playlist-uris=0, user-profile-show-invitation-codes=0, multiuserplan-member-type=FAMILY_MANAGER, ab-ad-requester=1, nft-disabled=1, ab-collection-union=1, key-memory-cache-mode=1:15,300, libspotify=1, high-bitrate=1, head-file-caching=1, radio=1, key-caching-auto-offline=0, explicit-content=1, video-cdn-sampling=1, ab-android-push-notifications=1, unrestricted=1, use-fb-publish-backend=2, app-developer=0, buffering-strategy-parameters=0.8:0.2:0.0:0.0:0.0:0.0:1.0:10:10:2000:10000:10485760, enable-gapless=1, ab-playlist-extender=5, enable-crossfade=1, ad-persist-reward-time=0, network-operator-premium-activation=1, video-device-blacklisted=0, collection=1, fb-grant-permission-local-render=0, backend-advised-bitrate=1, catalogue=premium, storage-size-config=10240,90,500,3, ads=0, head-files-url=https://heads-fa.scdn.co/head/{file_id}, ab-collection-followed-artists-only=0, browse-overview-enabled=1, on-demand=1, ap-resolve-pods=0, name=Spotify Premium, sidebar-navigation-enabled=0, loudness-levels=1:-5.0,0.0,3.0:-2.0, mobile-login=1, hifi-optin-intent=0, preferred-locale=en, license-acceptance-grace-days=30, prefetch-strategy=18, ugc-abuse-report=1, ab-watch-now=0, financial-product=pr:premium,tc:0,rt:v2_NL_default_new-family-master_14.99_EUR_default, ab-collection-offline-mode=0, streaming-rules=, head-files=1, capping-bar-threshold=3601, ab-new-share-flow=0, video-keyframe-url=http://keyframes-fa.cdn.spotify.com/keyframes/v1/sources/{source_id}/keyframe/heights/{height}/timestamps/{timestamp_ms}.jpg, mobile=1, is_maybe_in_social_session=0, ab-mobile-startpage=0, ab-moments-experience=0, ab-mobile-social-feed=1, ab-test-group=593, player-license=premium}
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,775 INFO Session:1415 - Skipping UnknownData_AllZeros
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,776 INFO Session:1415 - Skipping LegacyWelcome
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,779 TRACE MercuryClient:199 - Handling packet, cmd: MercuryEvent, seq: 5663893357441581056, flags: 1, parts: 1
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,784 DEBUG MercuryClient:234 - Couldn't dispatch Mercury event {seq: 5663893357441581056, uri: hm://pusher/v1/connections/NDk3YzE5N2UxMWU0NTZmYTZlY <<SNIP>> UQ1ODdBRDkyRQ%3D%3D, code: 200, payload: []}
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,786 DEBUG Session:1391 - Received 0x10: DA56C9795514FB24BAD01FEEA25662A4E8E1F5D1
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,850 TRACE MercuryClient:199 - Handling packet, cmd: MercuryReq, seq: 1, flags: 1, parts: 2
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,854 DEBUG TokenProvider:71 - Updated token successfully! {scopes: [playlist-read], newToken: StoredToken{expiresIn=3600, accessToken='BQCkMm...4WoiyY', scopes=[playlist-read], timestamp=1683990028850}}
May 13 17:00:28 livingroom java[3785]: 2023-05-13 17:00:28,892 INFO Session:361 - Authenticated as mxyes06jwepj16ar75nv2msh3!
May 13 17:00:29 livingroom java[3785]: 2023-05-13 17:00:29,090 INFO Session:1342 - Skipping unknown command {cmd: 0x75, payload: 000000}
May 13 17:00:29 livingroom java[3785]: 2023-05-13 17:00:29,180 TRACE AsyncProcessor:52 - AsyncProcessor{put-state-worker} has started
May 13 17:00:29 livingroom java[3785]: 2023-05-13 17:00:29,633 DEBUG DealerClient:348 - Dealer connected! {host: guc3-dealer.spotify.com}
May 13 17:00:29 livingroom java[3785]: 2023-05-13 17:00:29,942 DEBUG DeviceStateHandler:155 - Updated Spotify-Connection-Id: NDk3YzE <<SNIP>> NjQ3RUFEQkE0
May 13 17:00:29 livingroom java[3785]: 2023-05-13 17:00:29,974 INFO StateWrapper:344 - Notified new device (us)!
May 13 17:00:30 livingroom java[3785]: 2023-05-13 17:00:30,613 INFO DeviceStateHandler:273 - Put state. {ts: 1683990029963, connId: NDk3Y...EQkE0, reason: NEW_DEVICE, request: device { device_info { can_play: true volume: 65536 name: "livingroomwq" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 64 supported_types: "audio/episode" supported_types: "audio/track" command_acks: true supports_playlist_v2: true is_controllable: true supports_transfer_command: true supports_command_request: true supports_gzip_pushes: true } device_software_version: "librespot-java 1.6.2" device_type: COMPUTER spirc_version: "3.2.6" device_id: "497c197e11e456fa6ecca32333ed4fc720925176" client_id: "65b708073fc0480ea92a077233ca87bd" } player_state { context_restrictions { } playback_speed: 1.0 position_as_of_timestamp: 0 is_system_initiated: true options { shuffling_context: false repeating_context: false repeating_track: false } suppressions { } } } member_type: CONNECT_STATE put_state_reason: NEW_DEVICE has_been_playing_for_ms: 0 client_side_timestamp: 1683990029963}
May 13 17:00:30 livingroom java[3785]: 2023-05-13 17:00:30,775 TRACE DealerClient:114 - Received request. {mid: hm://connect-state/v1/player/command, key: 64846ad7-68a1-4174-a78b-aef457eec337, pid: 362851302, sender: bea92c5c6d1f44e4d7736b645ef06e0d61a32957, command: {"endpoint":"transfer","data":"CgYIABAAGAASlQYIytn6rIExEKiyBhkA <<SNIP>>ADIAIgIQAA==","options":{"restore_paused":"restore","restore_position":"extrapolate","restore_track":"always_play_something","license":"premium"},"from_device_identifier":"bea92c5c6d1f44e4d7736b645ef06e0d61a32957"}}
May 13 17:00:30 livingroom java[3785]: 2023-05-13 17:00:30,786 DEBUG Player:106 - Received command: Transfer
May 13 17:00:30 livingroom java[3785]: #
May 13 17:00:30 livingroom java[3785]: # A fatal error has been detected by the Java Runtime Environment:
May 13 17:00:30 livingroom java[3785]: #
May 13 17:00:30 livingroom java[3785]: # SIGBUS (0x7) at pc=0xf766f730, pid=3785, tid=3834
May 13 17:00:30 livingroom java[3785]: #
May 13 17:00:30 livingroom java[3785]: # JRE version: OpenJDK Runtime Environment (11.0.18+10) (build 11.0.18+10-post-Raspbian-1deb11u1)
May 13 17:00:30 livingroom java[3785]: # Java VM: OpenJDK Server VM (11.0.18+10-post-Raspbian-1deb11u1, mixed mode, g1 gc, linux-)
May 13 17:00:30 livingroom java[3785]: # Problematic frame:
May 13 17:00:30 livingroom java[3785]: # V [libjvm.so+0x9b9730]
May 13 17:00:30 livingroom java[3785]: #
May 13 17:00:30 livingroom java[3785]: # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
May 13 17:00:30 livingroom java[3785]: #
May 13 17:00:30 livingroom java[3785]: # An error report file with more information is saved as:
May 13 17:00:30 livingroom java[3785]: # /opt/spocon/hs_err_pid3785.log
May 13 17:00:30 livingroom java[3785]: #
May 13 17:00:30 livingroom java[3785]: # If you would like to submit a bug report, please visit:
May 13 17:00:30 livingroom java[3785]: # Unknown
May 13 17:00:30 livingroom java[3785]: #
May 13 17:00:30 livingroom systemd[1]: spocon.service: Main process exited, code=killed, status=6/ABRT
May 13 17:00:30 livingroom systemd[1]: spocon.service: Failed with result 'signal'.
May 13 17:00:30 livingroom systemd[1]: spocon.service: Consumed 12.293s CPU time.
May 13 17:00:40 livingroom systemd[1]: spocon.service: Scheduled restart job, restart counter is at 2.
May 13 17:00:40 livingroom systemd[1]: Stopped SpoCon.
May 13 17:00:40 livingroom systemd[1]: spocon.service: Consumed 12.293s CPU time.
May 13 17:00:40 livingroom systemd[1]: Starting SpoCon...
Additional context
I am running the same version of spocon on another raspberry pi under linux 5 and it appears to work properly.
The api-jar-with-dependencies isn't much larger than the core-jar-with-dependencies (10.3 MB vs 7.5 MB as of the latest release) and it provides additional api functionality
Is it possible to set the ouput device, like: "hw:0". I am trying to use spocon on raspberry pi with pulseaudio as an audiodevice. i can connect to the player and start playback but i can hear no sound.
cheers
bendsch
Is your feature request related to a problem? Please describe.
-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
The 'problem' that i have is with my bluetooth. I have set up an autoconnect on my linux server so when i start my bluetooth headset, the default audio device goes to my headset. But i don't hear any audio
Describe the solution you'd like
-- A clear and concise description of what you want to happen.
Is there by any chance a possibility to add a audio output device selector?
I also have snapcast installed, the snapclient there uses the Default Audio Device. Audio works flawless there
Describe alternatives you've considered
-- A clear and concise description of any alternative solutions or features you've considered.
I tried all 3 functions and tried changing output with pavucontrol (can't really change a lot in pavucontrol). Still no succes
Additional context
-- Add any other context or screenshots about the feature request here.
This is the output device snapcast (snapclient) uses and my bluetooth output is:
Also a little more context:
My set-up is pretty complex because of functionallity.
I use LedFx to have an led-strip synced to audio, the audio is now only being sent by snapcast but i also would really like spocon (or just spotify in general) to also work with my setup.
If any more info is needed feel free to ask 😄
Describe the bug
Spocon disappears from the spotify discovery after some time (running on Raspberry Pi 4). Therefore, I cannot connect or play music.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Remain discoverable
Additional context
Here is the log output of the spocon service up to the crash:
Mar 05 11:42:34 raspberrypi java[10613]: 2020-03-05 11:42:34 FATAL Session:941 - Failed reading packet!
Mar 05 11:42:34 raspberrypi java[10613]: java.io.EOFException
Mar 05 11:42:34 raspberrypi java[10613]: at java.base/java.io.DataInputStream.readFully(DataInputStream.java:202)
Mar 05 11:42:34 raspberrypi java[10613]: at java.base/java.io.DataInputStream.readFully(DataInputStream.java:170)
Mar 05 11:42:34 raspberrypi java[10613]: at xyz.gianlu.librespot.crypto.CipherPair.receiveEncoded(CipherPair.java:60)
Mar 05 11:42:34 raspberrypi java[10613]: at xyz.gianlu.librespot.core.Session$Receiver.run(Session.java:933)
Mar 05 11:42:34 raspberrypi java[10613]: at java.base/java.lang.Thread.run(Thread.java:834)
Mar 05 11:42:45 raspberrypi java[10613]: 2020-03-05 11:42:45 INFO Session:275 - Connected successfully!
Mar 05 11:42:45 raspberrypi java[10613]: 2020-03-05 11:42:45 INFO Session:580 - Re-authenticated as xxxxxxxxxx!
Mar 05 11:42:45 raspberrypi java[10613]: 2020-03-05 11:42:45 INFO Session:1000 - Skipping SecretBlock
Mar 05 11:42:45 raspberrypi java[10613]: 2020-03-05 11:42:45 INFO Session:979 - Received LicenseVersion: 0
Mar 05 11:42:45 raspberrypi java[10613]: 2020-03-05 11:42:45 INFO Session:969 - Received CountryCode: DE
Mar 05 11:42:45 raspberrypi java[10613]: 2020-03-05 11:42:45 INFO Session:1000 - Skipping ProductInfo
Mar 05 11:42:45 raspberrypi java[10613]: 2020-03-05 11:42:45 INFO Session:1000 - Skipping LegacyWelcome
Mar 05 11:42:45 raspberrypi java[10613]: 2020-03-05 11:42:45 INFO Session:1000 - Skipping UnknownData_AllZeros
Mar 05 11:42:46 raspberrypi java[10613]: 2020-03-05 11:42:46 TRACE MercuryClient:176 - Handling packet, cmd: MercuryEvent, seq: -3745306040111988736, flags: 1, parts: 1
Mar 05 11:42:46 raspberrypi java[10613]: 2020-03-05 11:42:46 DEBUG MercuryClient:209 - Couldn't dispatch Mercury event {seq: -3745306040111988736, uri: hm://pusher/v1/connections/xxxxxxxxxx
Mar 05 11:42:46 raspberrypi java[10613]: 2020-03-05 11:42:46 DEBUG Session:983 - Received 0x10: xxxxxxxxxx
Mar 05 11:42:46 raspberrypi java[10613]: 2020-03-05 11:42:46 INFO Session:936 - Skipping unknown command {cmd: 0x75, payload: 000000}
Mar 05 15:36:52 raspberrypi java[10613]: 2020-03-05 15:36:52 WARN Session:952 - Socket timed out. Reconnecting...
Mar 05 15:36:53 raspberrypi java[10613]: 2020-03-05 15:36:53 INFO Session:275 - Connected successfully!
Mar 05 15:36:53 raspberrypi java[10613]: 2020-03-05 15:36:53 INFO Session:580 - Re-authenticated as xxxxxxxxxx!
Mar 05 15:36:53 raspberrypi java[10613]: 2020-03-05 15:36:53 INFO Session:1000 - Skipping SecretBlock
Mar 05 15:36:53 raspberrypi java[10613]: 2020-03-05 15:36:53 INFO Session:979 - Received LicenseVersion: 0
Mar 05 15:36:53 raspberrypi java[10613]: 2020-03-05 15:36:53 INFO Session:969 - Received CountryCode: DE
Mar 05 15:36:53 raspberrypi java[10613]: 2020-03-05 15:36:53 INFO Session:1000 - Skipping ProductInfo
Mar 05 15:36:53 raspberrypi java[10613]: 2020-03-05 15:36:53 INFO Session:1000 - Skipping LegacyWelcome
Mar 05 15:36:53 raspberrypi java[10613]: 2020-03-05 15:36:53 INFO Session:1000 - Skipping UnknownData_AllZeros
Mar 05 15:36:54 raspberrypi java[10613]: 2020-03-05 15:36:54 TRACE MercuryClient:176 - Handling packet, cmd: MercuryEvent, seq: -4587197695453560832, flags: 1, parts: 1
Mar 05 15:36:54 raspberrypi java[10613]: 2020-03-05 15:36:54 DEBUG MercuryClient:209 - Couldn't dispatch Mercury event {seq: -4587197695453560832, uri: hm://pusher/v1/connections/xxxxxxxxxx
Mar 05 15:36:54 raspberrypi java[10613]: 2020-03-05 15:36:54 DEBUG Session:983 - Received 0x10: xxxxxxxxxx
Mar 05 15:36:54 raspberrypi java[10613]: 2020-03-05 15:36:54 INFO Session:936 - Skipping unknown command {cmd: 0x75, payload: 000000}
I blanked some of the long hex strings, because I do not know if it is required to keep them private.
Describe the bug
Song endings are being truncated
To Reproduce
I'm simply playing playlists and the tracks are ending prematurely Unclear of exact timing, but seems to be ~4-6s. I'm piping to forked-daapd (via a mkfifo pipe).
I can see the metadata track time/total time in forked-daapd webpage. When this occurs, there is time remaining and it transitions to the next track. I can also see the log file excerpt below while still playing.
The DEBUG logfiles show a Changed fade out reason why: TRACK_DONE
Expected behavior
Tracks should play to completion when being piped, else handle output delays correctly.
Screenshots
N/A
Logs
Desktop (please complete the following information):
RPI4, 4GB
Additional context
I tried disabling preload and it didn't help.
Perhaps adjusting the crossFadeDuration to 4-5s would correct this?
I suspect disabling the fade out "TRACK_DONE" when sending to a pipe (or creating a new config option for this) would correct.
Another info piece: there is a Player time offset of <1000. It seems this doesn't take into account the forked-daapd synchronization delays. Maybe it is only looking at the spocon -> forked-daapd delay?
I’m running Ubuntu on an RPI4 with Pulseaudio and using Pulseeffects for EQ and a few enhancements. I’d like to channel Spocon through that setup, is it possible? Very grateful for help.
Describe the bug
A NullPointerexception was thrown while trying to connect
To Reproduce
Steps to reproduce the behavior:
Does not happen all the time
Logs
2021-02-13 11:13:55,178 DEBUG Player:293 - Received command: Pause 2021-02-13 11:13:55,180 DEBUG DealerClient:109 - Handled request. {key: fa767c9d-bbdf-xxxx-8266-e3caae86316b, result: SUCCESS} 2021-02-13 11:13:55,736 INFO DeviceStateHandler:252 - Put state. {ts: 1613211235178, connId: NmE4N...GOUZD, reason: PLAYER_STATE_CHANGED} 2021-02-13 11:17:15,496 INFO StateWrapper:321 - Notified inactivity! 2021-02-13 11:17:16,053 INFO DeviceStateHandler:252 - Put state. {ts: 1613211435494, connId: NmE4N...GOUZD, reason: BECAME_INACTIVE} 2021-02-13 11:47:33,267 DEBUG PlayerQueueEntry:209 - PlayerQueueEntry{0129efd386c2f3200757b11fffb188e5} has been removed from output. 2021-02-13 11:47:33,273 INFO Session:416 - Closing session. {deviceId: 6a854[xxx]c740dc} 2021-02-13 11:47:33,278 DEBUG DealerClient:319 - Did not dispatch connection invalidated: null != xyz.gianlu.librespot.dealer.DealerClient$ConnectionHolder@24bc623a 2021-02-13 11:47:33,526 DEBUG EventService:35 - Event sent. {body: 12|37|67|6a854[xxx]c740dc|0129efd386c2f3200757b11fffb188e5|00000000000000000000000000000000|playlist|trackdone|unknown|logout|786432|5392812|-1694450033|-1694450033|278386|6|0|0|0|0|0|0|-1|context|-1|0|1|0|0|0|-1694450033|-1694450033|0|176400|spotify:user:4c4dc6l4563sw42sbpjn5bi6o:playlist:0ryJqtAalcQFM3ryHiOlVx|vorbis|41d8db30b70948028970f4e09e946897||0|1613211219806|0|context|home|8.6.0.830|com.spotify|crossfade|none|9b2096e8d94e1fc609877cddf8ce3deaf26e7161|na|none, result: 200} 2021-02-13 11:47:33,747 DEBUG EventService:35 - Event sent. {body: 10|20|34f1986baece6327b92009c81abcb95cb5ee7ddd|0129efd386c2f3200757b11fffb188e5|0|0|0|0|0|0|786432|5392812|music|-1|-1|-1|-1.000000|-1|-1.000000|-1|-1|-1|-1.000000|-1|-1|-1|-1|-1.000000|-1|0.000000|-1.000000|||unknown|0|0|0|0|0|interactive|0|176400|0|0, result: 200} 2021-02-13 11:47:33,967 DEBUG EventService:35 - Event sent. {body: 372|1|0129efd386c2f3200757b11fffb188e5|spotify:track:20fBuVybkHgjF6vNhSMROD|0|[[0,-1694450033]], result: 200} 2021-02-13 11:47:33,972 INFO Session:475 - Closed session. {deviceId: 6a854[xxx]c740dc} 2021-02-13 11:47:33,973 INFO ZeroconfServer:328 - Accepted new user from Nokia T. {deviceId: 6a854[xxx]c740dc} 2021-02-13 11:47:34,023 DEBUG TimeProvider:74 - Loaded time offset from NTP: -2ms 2021-02-13 11:47:34,078 INFO Session:120 - Created new session! {deviceId: 6a854[xxx]c740dc, ap: gew1-accesspoint-e-d75b.ap.spotify.com:80, proxy: false} 2021-02-13 11:47:34,421 INFO Session:310 - Connected successfully! 2021-02-13 11:47:34,484 INFO Session:1362 - Skipping SecretBlock 2021-02-13 11:47:34,484 INFO Session:1334 - Received LicenseVersion: 0 2021-02-13 11:47:34,484 DEBUG TokenProvider:51 - Token expired or not suitable, requesting again. {scopes: [playlist-read], oldToken: null} 2021-02-13 11:47:34,485 INFO Session:1324 - Received CountryCode: BE 2021-02-13 11:47:34,497 INFO CacheManager:80 - There are 61 cached entries. 2021-02-13 11:47:34,526 INFO Session:1362 - Skipping LegacyWelcome 2021-02-13 11:47:34,526 INFO Session:1362 - Skipping UnknownData_AllZeros 2021-02-13 11:47:34,527 DEBUG MercuryClient:218 - Couldn't dispatch Mercury event {seq: -653555209108193280, uri: hm://pusher/v1/connections/NmE4NTQwZDI5NzIwZmZiMGNiYjBjOTBjZjVmN2YzZjY2NGM3NDBkYytBUCt0Y3A6Ly9nZXcxLWFjY2Vzc3BvaW50LWUtZDc1Yi5nZXcxLnNwb3RpZnkubmV0OjUwMjYrOUExNkQwQTE4MThDODk0M0Y1Qzc1ODM1QjE2RTEyMEU3QkU5NUI3MDFFNTYzRUFGRjM5ODgwNTE1NkQ1NENGMg%3D%3D, code: 200, payload: []} 2021-02-13 11:47:34,528 DEBUG Session:1338 - Received 0x10: 4F23473327B3C7A1CF9989FA062A49EAB2918042 2021-02-13 11:47:34,563 INFO Session:1289 - Skipping unknown command {cmd: 0x75, payload: 000000} 2021-02-13 11:47:34,564 DEBUG EventService:35 - Event sent. {body: 812|1|en, result: 200} 2021-02-13 11:47:34,565 DEBUG TokenProvider:55 - Updated token successfully! {scopes: [playlist-read], newToken: StoredToken{expiresIn=3600, accessToken='BQBKL7...NYnivs', scopes=[playlist-read], timestamp=1613213254562}} 2021-02-13 11:47:34,566 INFO Session:341 - Authenticated as mouse256! 2021-02-13 11:47:34,681 DEBUG DealerClient:331 - Dealer connected! {host: gew-dealer.spotify.com} 2021-02-13 11:47:34,685 DEBUG DeviceStateHandler:135 - Updated Spotify-Connection-Id: NmE4NTQ[xx]5REEzMTlC 2021-02-13 11:47:34,688 INFO StateWrapper:301 - Notified new device (us)! 2021-02-13 11:47:34,836 INFO DeviceStateHandler:252 - Put state. {ts: 1613213254684, connId: NmE4N...zMTlC, reason: NEW_DEVICE} 2021-02-13 11:47:35,080 DEBUG Player:293 - Received command: Transfer 2021-02-13 11:47:35,089 DEBUG Player:365 - Loading context (transfer), uri: spotify:station:playlist:0ryJqtAalcQFM3ryHiOlVx 2021-02-13 11:47:35,090 ERROR DealerClient:112 - Failed handling request. {key: 757694cc-15f0-xxxx-acac-28fbf8dc65ce} java.lang.NullPointerException: null at xyz.gianlu.librespot.player.StateWrapper.setShufflingContext(StateWrapper.java:154) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.player.StateWrapper.setContext(StateWrapper.java:254) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.player.StateWrapper.transfer(StateWrapper.java:472) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.player.Player.handleTransferState(Player.java:368) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.player.Player.command(Player.java:300) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.player.state.DeviceStateHandler.notifyCommand(DeviceStateHandler.java:110) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.player.state.DeviceStateHandler.onRequest(DeviceStateHandler.java:176) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.dealer.DealerClient.lambda$handleRequest$1(DealerClient.java:107) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.common.AsyncWorker.lambda$new$0(AsyncWorker.java:20) ~[librespot-java-api-v1.5.4.jar:1.5.4] at xyz.gianlu.librespot.common.AsyncProcessor.lambda$submit$1(AsyncProcessor.java:40) ~[librespot-java-api-v1.5.4.jar:1.5.4] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?]
Spocon is running on raspberry-pi, java-corretto-11.
Up-to-date with latest version.
Describe the bug
First of all, thanks for developing spocon. I run a Zeroconf configuration with spocon 1.5.2.
When I try to enable Spotify Connect to play on my Spocon instance, it hangs at "Connecting...".
This happens virtually always.
I have attached my config and log, please let me know if there's anything else you need. I am not sure if this is a bug in Spocon or in my configuration. Although it did work flawless a few weeks ago. (A downgrade to 1.5.1 didn't help)
Thanks a lot for looking into this.
Spocon Config
### Device type (COMPUTER, TABLET, SMARTPHONE, SPEAKER, TV, AVR, STB, AUDIO_DONGLE, GAME_CONSOLE, CAST_VIDEO, CAST_AUDIO, AUTOMOBILE, WEARABLE, UNKNOWN_SPOTIFY, CAR_THING, UNKNOWN) ###
deviceType = "SPEAKER"
### Device name ###
deviceName = "Beamer"
### Device ID (40 chars, leave empty for random) ###
deviceId = ""
### Log level (OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL) ###
logLevel = "TRACE"
### Preferred locale ###
preferredLocale = "en"
### Cache ###
[cache]
dir = "./cache/"
# Cache enabled
enabled = true
doCleanUp = true
### Authentication ###
[auth]
# Credentials file (JSON)
credentialsFile = "credentials.json"
# Spotify password (USER_PASS only)
password = ""
# Spotify authentication blob Base64-encoded (BLOB only)
blob = ""
# Whether to store reusable credentials on disk (not a plain password)
storeCredentials = false
# Strategy (USER_PASS, ZEROCONF, BLOB, FACEBOOK, STORED)
strategy = "ZEROCONF"
# Spotify username (BLOB, USER_PASS only)
username = ""
### Preload ###
[preload]
# Preload enabled
enabled = true
### Proxy ###
[proxy]
# Basic auth password
password = ""
# The proxy hostname
address = ""
# The proxy port
port = 0
# Whether authentication is enabled on the server
auth = false
# The proxy type (HTTP, SOCKS)
type = "HTTP"
# Whether the proxy is enabled
enabled = false
# Basic auth username
username = ""
### Zeroconf ###
[zeroconf]
# Listen on all interfaces (overrides `zeroconf.interfaces`)
listenAll = true
# Listen on these interfaces (comma separated list of names)
interfaces = ""
# Listen on this TCP port (`-1` for random)
listenPort = -1
### Time correction ###
[time]
# Manual time correction in millis
manualCorrection = 0
# Time synchronization method (NTP, PING, MELODY, MANUAL)
synchronizationMethod = "NTP"
### API ###
[api]
# API port (`api` module only)
port = 24879
# API listen interface (`api` module only)
host = "0.0.0.0"
### Player ###
[player]
# Whether to apply the Spotify loudness normalisation
enableNormalisation = true
# Initial volume (0-65536)
initialVolume = 65536
# Release mixer line after set delay (in seconds)
releaseLineDelay = 20
# Normalisation pregain in decibels (loud at +6, normal at +3, quiet at -5)
normalisationPregain = 0.0
# Output metadata in Shairport Sync format (https://github.com/mikebrady/shairport-sync-metadata-reader)
metadataPipe = ""
# Autoplay similar songs when your music ends
autoplayEnabled = true
# Preferred audio quality (NORMAL, HIGH, VERY_HIGH)
preferredAudioQuality = "VERY_HIGH"
#preferredAudioQuality = "VORBIS_160"
# Audio output device (MIXER, PIPE, STDOUT)
output = "MIXER"
# Crossfade overlap time (in milliseconds)
crossfadeDuration = 0
# Whether the player should retry fetching a chuck if it fails
retryOnChunkError = true
# Mixer/backend search keywords (semicolon separated)
mixerSearchKeywords = ""
# Output raw (signed) PCM to this file (`player.output` must be PIPE)
pipe = ""
# Log available mixers
logAvailableMixers = true
# Number of volume notches
volumeSteps = 64
Logs
dec 23 18:45:08 beamer systemd[1]: Stopping SpoCon...
dec 23 18:45:08 beamer java[1520]: 2020-12-23 18:45:08,010 INFO undertow:252 - stopping server: Undertow - 2.1.3.Final
dec 23 18:45:08 beamer java[1520]: 2020-12-23 18:45:08,015 TRACE safe-close:151 - Closing resource org.xnio.nio.QueuedNioTcpServer2@73cf6fc9
dec 23 18:45:08 beamer systemd[1]: spocon.service: Main process exited, code=exited, status=143/n/a
dec 23 18:45:08 beamer systemd[1]: spocon.service: Failed with result 'exit-code'.
dec 23 18:45:08 beamer systemd[1]: Stopped SpoCon.
dec 23 18:45:08 beamer systemd[1]: Starting SpoCon...
dec 23 18:45:08 beamer sh[1801]: PING spotify.com (35.186.224.25) 56(84) bytes of data.
dec 23 18:45:08 beamer sh[1801]: 64 bytes from 25.224.186.35.bc.googleusercontent.com (35.186.224.25): icmp_seq=1 ttl=117 time=13.9 ms
dec 23 18:45:08 beamer sh[1801]: --- spotify.com ping statistics ---
dec 23 18:45:08 beamer sh[1801]: 1 packets transmitted, 1 received, 0% packet loss, time 0ms
dec 23 18:45:08 beamer sh[1801]: rtt min/avg/max/mdev = 13.870/13.870/13.870/0.000 ms
dec 23 18:45:08 beamer systemd[1]: Started SpoCon.
dec 23 18:45:08 beamer java[1803]: 2020-12-23 18:45:08,973 INFO Utils:84 - Cryptography restrictions removal not needed.
dec 23 18:45:08 beamer java[1803]: 2020-12-23 18:45:08,996 INFO ZeroconfServer:442 - Zeroconf HTTP server started successfully on port 30472!
dec 23 18:45:09 beamer java[1803]: 2020-12-23 18:45:09,858 TRACE ZeroconfServer:506 - Handling request: GET /?action=getInfo HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/114200622 Linux/0 (PC desktop), Host=192.168.178.222, Accept-Encoding=gzip, Content-Type=application/x-www-form-urlencoded}
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,435 INFO Zeroconf:473 - Announced Service{alias='Beamer', service='spotify-connect', port=30472, text={VERSION=1.0, CPath=/, Stack=SP}, addresses=[/192.168.178.222], domain='.local', protocol='tcp', host='beamer'}.
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,463 DEBUG logging:152 - Logging Provider: org.jboss.logging.Log4j2LoggerProvider
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,517 INFO undertow:117 - starting server: Undertow - 2.1.3.Final
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,524 INFO xnio:95 - XNIO version 3.8.0.Final
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,532 INFO nio:59 - XNIO NIO Implementation Version 3.8.0.Final
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,533 TRACE nio:177 - Starting up with selector provider class sun.nio.ch.EPollSelectorProvider
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,534 TRACE nio:220 - Using Default system selector creator for provider class sun.nio.ch.EPollSelectorProvider for main selectors and Default system selector creator for provider class sun.nio.ch.EPollSelectorProvider for temp selectors
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,548 INFO threads:52 - JBoss Threads version 3.1.0.Final
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,555 TRACE nio:241 - CAS org.xnio.nio.NioXnioWorker@6d025197 00000001 -> 00000002
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,555 TRACE nio:241 - CAS org.xnio.nio.NioXnioWorker@6d025197 00000002 -> 00000003
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,556 TRACE nio:440 - Starting worker thread Thread[XNIO-1 I/O-1,5,main]
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,556 DEBUG nio:444 - Started channel thread 'XNIO-1 I/O-1', selector sun.nio.ch.EPollSelectorImpl@5dee9eb7
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,556 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@5dee9eb7
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,556 TRACE nio:531 - Select, queue is empty
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,557 TRACE nio:241 - CAS org.xnio.nio.NioXnioWorker@6d025197 00000003 -> 00000004
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,557 TRACE nio:440 - Starting worker thread Thread[XNIO-1 I/O-2,5,main]
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,557 DEBUG nio:444 - Started channel thread 'XNIO-1 I/O-2', selector sun.nio.ch.EPollSelectorImpl@7e90172
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,558 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@7e90172
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,558 TRACE nio:531 - Select, queue is empty
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,558 TRACE nio:241 - CAS org.xnio.nio.NioXnioWorker@6d025197 00000004 -> 00000005
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,558 TRACE nio:440 - Starting worker thread Thread[XNIO-1 I/O-3,5,main]
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,559 DEBUG nio:444 - Started channel thread 'XNIO-1 I/O-3', selector sun.nio.ch.EPollSelectorImpl@16b90c26
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,559 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@16b90c26
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,559 TRACE nio:531 - Select, queue is empty
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,559 TRACE nio:241 - CAS org.xnio.nio.NioXnioWorker@6d025197 00000005 -> 00000006
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,560 TRACE nio:440 - Starting worker thread Thread[XNIO-1 I/O-4,5,main]
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,560 DEBUG nio:444 - Started channel thread 'XNIO-1 I/O-4', selector sun.nio.ch.EPollSelectorImpl@50c2039c
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,560 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@50c2039c
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,560 TRACE nio:531 - Select, queue is empty
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,561 TRACE nio:440 - Starting worker thread Thread[XNIO-1 Accept,5,main]
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,561 DEBUG nio:444 - Started channel thread 'XNIO-1 Accept', selector sun.nio.ch.EPollSelectorImpl@7f7e8817
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,561 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@7f7e8817
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,561 TRACE nio:531 - Select, queue is empty
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,562 DEBUG undertow:157 - Configuring listener with protocol HTTP for interface 0.0.0.0 and port 24879
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,577 TRACE selector:564 - Selected on sun.nio.ch.EPollSelectorImpl@7f7e8817
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,578 TRACE nio:611 - Running task org.xnio.nio.WorkerThread$SynchTask@71b96988
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,578 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@7f7e8817
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,579 TRACE nio:531 - Select, queue is empty
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,579 TRACE listener:57 - Setting channel listener to org.xnio.nio.QueuedNioTcpServer2$$Lambda$139/0x00000008401b4440@e19bb76
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,580 TRACE nio:624 - Added task org.xnio.nio.NioTcpServerHandle$2@7241a47d
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,580 TRACE selector:564 - Selected on sun.nio.ch.EPollSelectorImpl@7f7e8817
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,581 TRACE nio:611 - Running task org.xnio.nio.NioTcpServerHandle$2@7241a47d
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,581 INFO ApiServer:42 - Server started on port 24879!
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,581 TRACE selector:520 - Beginning select on sun.nio.ch.EPollSelectorImpl@7f7e8817
dec 23 18:45:10 beamer java[1803]: 2020-12-23 18:45:10,581 TRACE nio:531 - Select, queue is empty
dec 23 18:45:31 beamer java[1803]: 2020-12-23 18:45:31,569 TRACE ZeroconfServer:506 - Handling request: GET /?action=getInfo HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.89 Android/28 (H3113), Host=192.168.178.222, Accept-Encoding=gzip, Content-Type=application/x-www-form-urlencoded}
dec 23 18:45:42 beamer java[1803]: 2020-12-23 18:45:42,220 TRACE ZeroconfServer:506 - Handling request: GET /?action=getInfo&version=2.7.1 HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.89 Android/28 (H3113), Host=192.168.178.222, Accept-Encoding=gzip, Content-Type=application/x-www-form-urlencoded}
dec 23 18:45:42 beamer java[1803]: 2020-12-23 18:45:42,316 TRACE ZeroconfServer:506 - Handling request: POST / HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.89 Android/28 (H3113), Host=192.168.178.222, Accept-Encoding=gzip, Content-Length=720, Content-Type=application/x-www-form-urlencoded}
dec 23 18:45:42 beamer java[1803]: 2020-12-23 18:45:42,387 INFO ZeroconfServer:327 - Accepted new user from H3113. {deviceId: 7517c70fff3da82959428c8a7b1e5cfbce0c4afd}
dec 23 18:45:42 beamer java[1803]: 2020-12-23 18:45:42,501 INFO ApResolver:68 - Loaded aps into pool: {accesspoint=[gew1-accesspoint-b-mrdk.ap.spotify.com:4070, gew1-accesspoint-b-b2ps.ap.spotify.com:443, gew1-accesspoint-b-cn8s.ap.spotify.com:80, gew1-accesspoint-b-tk6r.ap.spotify.com:4070, gew1-accesspoint-b-trmv.ap.spotify.com:443, gew1-accesspoint-b-95r6.ap.spotify.com:80, guc3-accesspoint-b-k0vf.ap.spotify.com:4070, guc3-accesspoint-b-x245.ap.spotify.com:443, guc3-accesspoint-b-9c0q.ap.spotify.com:80], dealer=[gew-dealer.spotify.com:443, guc-dealer.spotify.com:443, gae-dealer.spotify.com:443], spclient=[gew-spclient.spotify.com:443, guc-spclient.spotify.com:443, gae-spclient.spotify.com:443]}
dec 23 18:45:42 beamer java[1803]: 2020-12-23 18:45:42,553 DEBUG TimeProvider:74 - Loaded time offset from NTP: -5ms
dec 23 18:45:42 beamer java[1803]: 2020-12-23 18:45:42,907 INFO Session:122 - Created new session! {deviceId: 7517c70fff3da82959428c8a7b1e5cfbce0c4afd, ap: guc3-accesspoint-b-k0vf.ap.spotify.com:4070, proxy: false}
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,523 INFO Session:313 - Connected successfully!
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,837 TRACE Session:1293 - Session.Receiver started
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,843 TRACE AsyncProcessor:36 - AsyncProcessor{pm-mercury} has started
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,845 TRACE AsyncProcessor:36 - AsyncProcessor{pm-audio-keys} has started
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,846 TRACE AsyncProcessor:36 - AsyncProcessor{pm-channels} has started
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,858 TRACE AsyncProcessor:36 - AsyncProcessor{dealer-worker} has started
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,861 TRACE AsyncProcessor:36 - AsyncProcessor{event-service-sender} has started
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,862 INFO Session:1375 - Skipping SecretBlock
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,863 INFO Session:1347 - Received LicenseVersion: 0
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,863 INFO Session:1337 - Received CountryCode: NL
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,864 INFO CacheManager:80 - There are 136 cached entries.
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,868 DEBUG TokenProvider:51 - Token expired or not suitable, requesting again. {scopes: [playlist-read], oldToken: null}
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,877 TRACE MercuryClient:138 - Send Mercury request, seq: 1, uri: hm://keymaster/token/authenticated?scope=playlist-read&client_id=65b708073fc0480ea92a077233ca87bd&device_id=7517c70fff3da82959428c8a7b1e5cfbce0c4afd, method: GET
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,881 TRACE Session:732 - Parsed product info: {remote-control=6, publish-activity=0, audio-preview-url-template=https://p.scdn.co/mp3-preview/{id}, incognito_mode_timeout=21600, ad-formats-preroll-video=0, type=premium, ab_recently_played_feature_time_filter_threshold=com.spotify.gaia=30,driving-mode=120,spotify%3Ainternal%3Astartpage=30, license-agreements=, publish-playlist=0, buffering-strategy=0, expiry=1, ab-desktop-hide-follow=0, ab-collection-hide-unavailable-albums=0, capper-profile=, payments-initial-campaign=default, profile-image-upload=1, enable-annotations=2, ab-ad-player-targeting=1, india-experience=0, video-wifi-initial-bitrate=800000, ab-mobile-running-onlymanualmode=only-manual, playlist-annotations-markup=0, prefetch-keys=1, allow-override-internal-prefs=0, prefetch-window-max=2, send-email=1, ad-formats-video-takeover=1, npt-disabled=2, ab-collection-bookmark-model=1, pause-after=0, local-files-import=0, video-manifest-url=https://spclient.wg.spotify.com/manifests/v6/{type}/sources/{source_id}/options/supports_drm, ab-sugarpills-sanity-check=0, playlist-folders=1, arsenal_country=1, track-cap=0, ab-mobile-running-tempo-detection=Control, is_email_verified=0, shows-collection=1, enable-annotations-read=0, mobile-browse=0, payments-locked-state=0, shows-collection-jam=0, ab-browse-music-tuesday=1, offline=1, streaming=1, fb-info-confirmation=control, taste-onboarding-disabled=0, wanted-licenses=, lastfm-session=, ab-desktop-playlist-annotation-edit=1, ab-mobile-discover=0, widevine-license-url=https://spclient.wg.spotify.com/widevine-license/v1/video/license, key-caching-max-count=10000, ad-session-persistence=1, video-initial-bitrate=200000, ab-play-history=0, mobile-payment=0, payment-state=, key-caching-max-offline-seconds=1800, ugc-abuse-report-url=https://support.spotify.com/abuse/?uri={uri}, shuffle-algorithm=1, use-pl3=0, image-url=https://i.scdn.co/image/{file_id}, use-playlist-app=0, enable-autostart=1, metadata-link-lookup-modes=0, shuffle=0, instant-search=0, instant-search-expand-sidebar=0, use-playlist-uris=0, user-profile-show-invitation-codes=0, ab-ad-requester=1, nft-disabled=1, payments-cancel-state-interstitial=0, ab-collection-union=1, key-memory-cache-mode=1:15,300, libspotify=1, high-bitrate=1, head-file-caching=1, radio=1, explicit-content=1, video-cdn-sampling=1, ab-android-push-notifications=1, unrestricted=1, use-fb-publish-backend=2, app-developer=0, buffering-strategy-parameters=0.8:0.2:0.0:0.0:0.0:0.0:1.0:10:10:2000:10000:10485760, enable-gapless=1, ab-playlist-extender=5, enable-crossfade=1, ad-persist-reward-time=0, public-toplist=5, network-operator-premium-activation=1, video-device-blacklisted=0, collection=1, fb-grant-permission-local-render=0, backend-advised-bitrate=1, catalogue=premium, storage-size-config=10240,90,500,3, ads=0, head-files-url=https://heads4-ak-spotify-com.akamaized.net/head/{file_id}, ab-collection-followed-artists-only=0, browse-overview-enabled=1, on-demand=1, ap-resolve-pods=1, name=Spotify Premium, sidebar-navigation-enabled=0, loudness-levels=1:-6.0,3.0,6.0:-3.0, mobile-login=1, preferred-locale=en, license-acceptance-grace-days=30, prefetch-strategy=2, ugc-abuse-report=1, ab-watch-now=0, payments-latest-reusable-provider=adyen_ideal;2018-08-31, financial-product=pr:premium,tc:0,rt:v2_NL_default_duo-master-1m_12.99_EUR_default, ab-collection-offline-mode=0, streaming-rules=, head-files=1, capping-bar-threshold=3601, ab-new-share-flow=0, video-keyframe-url=http://keyframes-fa.cdn.spotify.com/keyframes/v1/sources/{source_id}/keyframe/heights/{height}/timestamps/{timestamp_ms}.jpg, mobile=1, is_maybe_in_social_session=0, ab-mobile-startpage=0, ab-moments-experience=0, ab-mobile-social-feed=1, ab-test-group=920, player-license=premium}
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,882 INFO Session:1375 - Skipping LegacyWelcome
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,882 INFO Session:1375 - Skipping UnknownData_AllZeros
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,884 TRACE MercuryClient:138 - Send Mercury request, seq: 2, uri: hm://event-service/v1/events, method: POST
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,960 TRACE MercuryClient:181 - Handling packet, cmd: MercuryEvent, seq: 2801586413898825728, flags: 1, parts: 1
dec 23 18:45:43 beamer java[1803]: 2020-12-23 18:45:43,961 DEBUG MercuryClient:216 - Couldn't dispatch Mercury event {seq: 2801586413898825728, uri: hm://pusher/v1/connections/NzUxN2M3MGZmZjNkYTgyOTU5NDI4YzhhN2IxZTVjZmJjZTBjNGFmZCtBUCt0Y3A6Ly9ndWMzLWFjY2Vzc3BvaW50LWItazB2Zi5ndWMzLnNwb3RpZnkubmV0OjUwMTUrNjM2Mjg4NTFBQkI5NDEyN0U0NDc0NDgwOTI2ODQxM0ZGQUU4QTFFMkJCNDEyRDQ3NThCNjEwNTgxOTYwNTAyRQ%3D%3D, code: 200, payload: []}
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,092 DEBUG Session:1351 - Received 0x10: 448412004ABD16CAE0FB9AE99DB941BDFE595ABC
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,093 TRACE MercuryClient:181 - Handling packet, cmd: MercuryReq, seq: 2, flags: 1, parts: 1
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,093 DEBUG EventService:35 - Event sent. {body: 812|1|en, result: 200}
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,260 INFO Session:1302 - Skipping unknown command {cmd: 0x75, payload: 000000}
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,260 TRACE MercuryClient:181 - Handling packet, cmd: MercuryReq, seq: 1, flags: 1, parts: 2
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,262 DEBUG TokenProvider:55 - Updated token successfully! {scopes: [playlist-read], newToken: StoredToken{expiresIn=3600, accessToken='BQBhg1...c5voGw', scopes=[playlist-read], timestamp=1608745544256}}
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,280 INFO Session:344 - Authenticated as rubenvandeven!
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,360 TRACE AsyncProcessor:36 - AsyncProcessor{put-state-worker} has started
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,596 DEBUG DealerClient:321 - Dealer connected! {host: guc-dealer.spotify.com}
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,600 DEBUG DeviceStateHandler:135 - Updated Spotify-Connection-Id: NzUxN2M3MGZmZjNkYTgyOTU5NDI4YzhhN2IxZTVjZmJjZTBjNGFmZCtkZWFsZXIrdGNwOi8vZ3VjMy1kZWFsZXItYi1mMm12Lmd1YzMuc3BvdGlmeS5uZXQ6NTcwMCtEQ0Q5NUI1RTc2NkIyRTcxMzgyQjA4RDE3OThERUQ3RThDNjNERDM5MUI1MTMzOTI5NjMwRTNENDRCMjZBNkQx
dec 23 18:45:44 beamer java[1803]: 2020-12-23 18:45:44,612 INFO StateWrapper:300 - Notified new device (us)!
dec 23 18:45:45 beamer java[1803]: 2020-12-23 18:45:45,045 INFO DeviceStateHandler:249 - Put state. {ts: 1608745544603, connId: NzUxN...BNkQx, reason: NEW_DEVICE, request: device { device_info { can_play: true volume: 65536 name: "Beamer" capabilities { can_be_player: true gaia_eq_connect_id: true supports_logout: true is_observable: true volume_steps: 64 supported_types: "audio/episode" supported_types: "audio/track" command_acks: true supports_playlist_v2: true is_controllable: true supports_transfer_command: true supports_command_request: true supports_gzip_pushes: true } device_software_version: "librespot-java 1.5.2" device_type: SPEAKER spirc_version: "3.2.6" device_id: "7517c70fff3da82959428c8a7b1e5cfbce0c4afd" } player_state { context_restrictions { } playback_speed: 1.0 position_as_of_timestamp: 0 is_system_initiated: true options { shuffling_context: false repeating_context: false repeating_track: false } suppressions { } } } member_type: CONNECT_STATE put_state_reason: NEW_DEVICE has_been_playing_for_ms: 0 client_side_timestamp: 1608745544603}
dec 23 18:45:45 beamer java[1803]: 2020-12-23 18:45:45,836 TRACE DealerClient:97 - Received request. {mid: hm://connect-state/v1/player/command, key: 77f92660-d949-4c86-bb2a-da7c3955b223, pid: 280293606, sender: a702f826931a888da85c3fa677bbaf999b1db6fc}
dec 23 18:45:45 beamer java[1803]: 2020-12-23 18:45:45,841 DEBUG Player:282 - Received command: Transfer
dec 23 18:45:45 beamer java[1803]: 2020-12-23 18:45:45,924 DEBUG Player:354 - Loading context (transfer), uri: spotify:artist:6cumWjeQABBu9dCqRV4wOP
dec 23 18:45:45 beamer java[1803]: 2020-12-23 18:45:45,928 DEBUG DeviceStateHandler:198 - Device is now active. {ts: 1608745545923}
...
Desktop (please complete the following information):
Additional context
Let me know if you need any additional info!
Hi,
Trying to install on raspbian and keyserver failure. The curl | sh fails, so attempted manually also:
Manual attempt:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7DBE8BF06EA39B78
Executing: /tmp/apt-key-gpghome.4wBPyQbP7K/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 7DBE8BF06EA39B78
gpg: keyserver receive failed: Server indicated a failure
Outdated key perhaps?
Thanks!
I have a music server running on armv6l device (and another on armv5tel). I've run librespot successfully on the armv6l device before, however there were connection issues happening at random (and not due to resources) and I ultimately couldn't use it. I'd like to give Spocon a try on these devices but I'm not familiar with how I might go about building for these architectures. Thanks in advance if anyone can point me in the right direction.
Hi,
When I activate the option, storeCrendentials
. The discovery on spocon service from a mobile phone (android) stop working after few days (the device is not listed anymore). But it still works when I'm using the linux client (ubuntu). The device is visible and can be controlled. So it seems related to the discovery of the service. spocon works as expected otherwise.
Additional information that might be relevant:
To Reproduce
I'm not sure how to reproduce precisely. It takes a certain period of time,.
Activate storeCredentials, connect on the phone, with another client, maybe with another account. Wait and see ?... sorry can't tell you more than this
Expected behavior
The spocon device should be always discoverable and listed from mobile phone.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Another person, with its own spotify premium account, also connects to the same spocon service from time to time. that person suffers from same behaviour when using her phone.
This is low priority, as I just need to deactivate the option storeCrendentials
to make it work reliably.
Thanks.
Currently spocon has a hard dependency on either openjdk-11-jre
or openjdk-8-jre
. However I'm using aws-corretto-jdk which is perfectly fine too. Probably it will even work with jdk-17 too.
So my suggestion is to remove this hard dependency from https://github.com/spocon/spocon/blob/master/template/debian/control and replace it by java-runtime
. This allows the user to pick whichever flavor they like.
Hi there!
Is it possible to make this project compatible with the Raspi Zero (and Raspi 1)?
Unfortunately, they run on a ARMv6 architecture which means, that the latest available Java version is Java 8.
Describe the bug
doing apt update after adding ppa (through add-apt-repository) gives:
Ign:5 http://ppa.launchpad.net/spocon/spocon/ubuntu lunar InRelease
Err:6 http://ppa.launchpad.net/spocon/spocon/ubuntu lunar Release
404 Not Found [IP: 185.125.190.52 80]
Reading package lists... Done
E: The repository 'http://ppa.launchpad.net/spocon/spocon/ubuntu lunar Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
To Reproduce
Use Debian 11
sudo add-apt-repository ppa:spocon/spocon
sudo apt-get update
Expected behavior
No error...
Desktop (please complete the following information):
Describe the bug
See title. The latest release of SpoCon is not available for Ubuntu 20.04 LTS, 1.3.1 is downloaded instead.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
1.4.0 can be downloaded for 20.04 systems as well.
A fresh install of latest release (1.5.2)
curl -sL https://spocon.github.io/spocon/install.sh | sh
do not instal librespot-java 1.5.2 but 1.5.1
After install
pi@raspberrypi:~ $ ps -ax |grep libre
7295 pts/0 S+ 0:00 grep --color=auto libre
26445 ? Ssl 11:49 /usr/bin/java -jar /opt/spocon/librespot-java-api-v1.5.1.jar
librespot-java api is not responding to spotify api call
curl -X "GET" "http://localhost:24879/web-api/v1/me/top/artists"
* Trying ::1...
* TCP_NODELAY set
* Expire in 149999 ms for 3 (transfer 0xa9f880)
* Expire in 200 ms for 4 (transfer 0xa9f880)
* Connected to localhost (::1) port 24879 (#0)
GET /web-api/v1/me/top/artists HTTP/1.1
Host: localhost:24879
User-Agent: curl/7.64.0
Accept: /
>
< HTTP/1.1 404 Not Found
< Connection: keep-alive
< Access-Control-Allow-Origin: *
< Content-Length: 0
< Date: Mon, 23 Nov 2020 18:38:18 GMT
<
* Connection #0 to host localhost left intact
I'm using RaspBerry pi 4 with Raspbian GNU/Linux 10
If I swap the JAR installed by spocon 1.5.2
/opt/spocon/librespot-java-api-v1.5.1.jar
with the one here https://github.com/librespot-org/librespot-java/releases/tag/v1.5.2
I can get my top artist
curl -X "GET" "http://localhost:24879/web-api/v1/me/top/artists" |grep name
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 "name" : "Seal",
"name" : "Led Zeppelin",
"name" : "Noir Désir",
"name" : "Supertramp",
"name" : "Caro Emerald",
"name" : "Queen",
"name" : "Coldplay",
"name" : "La Reine des chansons pour enfants et bébés",
"name" : "Niklas Paschburg",
Hello,
Is it possible to add the REST API configuration to this software?
I believe librespot-java has this nativly?
Thanks, great project!
Describe the bug
as main login'ed and registered spotify-user I can see spocon as audio sink
but other familiy members using this account as added users can not see spocon
Is there a way to set this availability of spocon to any account-assigned user?
besides: Many thanks for providing this, this helps me bypassing this painful cut of spotify's api described here
To Reproduce
Steps to reproduce the behavior:
grab familiy's device and search for spocon
Expected behavior
spocon audio-sink is available for all members assigned to the account
Screenshots
none, cause useless
Logs
none
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
none
When installing using install.sh on the Picroft distribution (Raspbian with Mycroft AI preinstalled), the following error is encountered:
spocon : Depends: openjdk-11-jre but it is not installable
To Reproduce
Expected behavior
Spocon should be installed
I've installed SpoCon on Debian Stretch through the 'easy' install. When I try to connect from a phone (Xperia 1) it keeps saying connecting and eventually does nothing. I've configged Spocon to connect to Snapcast server. I don't see any audio errors (I think).
I've also attached my config and output from journalctl --no-pager -f -u spocon.
config_toml.txt
journalctl_ouput_spocon.txt
service spocon status:
● spocon.service - SpoCon
Loaded: loaded (/lib/systemd/system/spocon.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-05-01 14:43:13 CEST; 18min ago
Process: 24144 ExecStartPre=/bin/sh -c until ping -c1 spotify.com; do sleep 5; done; (code=exited, status=0/SUCCESS)
Main PID: 24148 (java)
Tasks: 61 (limit: 4915)
Memory: 179.4M
CPU: 15.598s
CGroup: /system.slice/spocon.service
└─24148 /usr/bin/java -jar /opt/spocon/librespot-java-api-v1.3.1.jar
May 01 15:01:18 thuisbasis java[24148]: at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
May 01 15:01:18 thuisbasis java[24148]: at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
May 01 15:01:18 thuisbasis java[24148]: at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
May 01 15:01:18 thuisbasis java[24148]: at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
May 01 15:01:18 thuisbasis java[24148]: at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
May 01 15:01:18 thuisbasis java[24148]: at java.base/java.net.Socket.connect(Socket.java:609)
May 01 15:01:18 thuisbasis java[24148]: at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:117)
May 01 15:01:18 thuisbasis java[24148]: at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:266)
May 01 15:01:18 thuisbasis java[24148]: ... 24 more
May 01 15:01:18 thuisbasis java[24148]: 2020-05-01 15:01:18,110 [OkHttp https://guc-dealer.spotify.com/...] TRACE DealerClient:238 - Scheduled reconnection attempt in 10 seconds...
Few days ago my spocon server (running on Ubuntu 20.04 x64) stopped working - on smartphone client was showing endless "connecting" status.
After digging in the logs I've found message:
xyz.gianlu.librespot.core.Session$SpotifyAuthenticationException: PremiumAccountRequired
All of this without any changes on servers side and on my smartphone for months.
Then I've discovered that recently Spotify has changed something in the login process and this is the reason of whole issue. It was already (2 days ago) addressed in librespot-java version 1.6.3 - https://github.com/librespot-org/librespot-java/releases/tag/v1.6.3
So there is an urgent need to bump librespot-java and naturally whole spocon package (I use it from Ubuntu PPA).
I am coming to SpoCon because Raspotify did not produce clear sound with my soundcard (X-Fi).
SpoCon does not output sound at all, how do I need to configure the external soundcard in the settings? The card itself is working, I can hear music when using Mopidy (but that doesn't support Spotify Connect AFAIK).
Thanks,
Jan
Describe the bug
At fetching GPG key dirmngr failes to start because it doesn't exist.
To Reproduce
Issue occurs at normal installation and manual installation as described at README.md.
Manual installation steps:
# Add repo and its GPG key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7DBE8BF06EA39B78
Executing: /tmp/apt-key-gpghome.oNCtAMY1b1/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 7DBE8BF06EA39B78
gpg: failed to start the dirmngr '/usr/bin/dirmngr': Bestand of map bestaat niet
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.oNCtAMY1b1/S.dirmngr' failed: Bestand of map bestaat niet
gpg: keyserver receive failed: Geen dirmngr
"Bestand of map bestaat niet" = "File or directory doesn't exist"
"Geen" = "No" or "None"
Expected behavior
A good description of all steps needed to install SpoCon where installing the GPG key won't fail.
Desktop (please complete the following information):
The Pi is connecting to the spotify server● spocon.service - SpoCon
Loaded: loaded (/lib/systemd/system/spocon.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-07-13 17:49:03 BST; 2h 29min ago
Process: 12622 ExecStartPre=/bin/sh -c until ping -c1 spotify.com; do sleep 5; done; (code=exited, status=0/SUCCESS)
Main PID: 12624 (java)
Memory: 59.3M
CGroup: /system.slice/spocon.service
└─12624 /usr/bin/java -jar /opt/spocon/librespot-java-api-v1.4.0.jar
Jul 13 20:15:23 raspberrypi java[12624]: 2020-07-13 20:15:23,464 INFO ZeroconfServer:280 - y0595rk is already trying to connect.
Jul 13 20:15:23 raspberrypi java[12624]: 2020-07-13 20:15:23,589 TRACE ZeroconfServer:477 - Handling request: GET /?action=getInfo&version=2.7.1 HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.66
Jul 13 20:16:07 raspberrypi java[12624]: 2020-07-13 20:16:07,572 TRACE ZeroconfServer:477 - Handling request: GET /?action=getInfo HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.66 Android/29 (ON
Jul 13 20:16:51 raspberrypi java[12624]: 2020-07-13 20:16:51,765 TRACE ZeroconfServer:477 - Handling request: GET /?action=getInfo&version=2.7.1 HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.66
Jul 13 20:16:55 raspberrypi java[12624]: 2020-07-13 20:16:55,346 TRACE ZeroconfServer:477 - Handling request: GET /?action=getInfo&version=2.7.1 HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.66
Jul 13 20:17:08 raspberrypi java[12624]: 2020-07-13 20:17:08,399 TRACE ZeroconfServer:477 - Handling request: POST / HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.66 Android/29 (ONEPLUS A6003),
Jul 13 20:17:08 raspberrypi java[12624]: 2020-07-13 20:17:08,412 INFO ZeroconfServer:280 - y0595***6rk is already trying to connect.
Jul 13 20:17:08 raspberrypi java[12624]: 2020-07-13 20:17:08,465 TRACE ZeroconfServer:477 - Handling request: GET /?action=getInfo&version=2.7.1 HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.66
Jul 13 20:17:10 raspberrypi java[12624]: 2020-07-13 20:17:10,504 TRACE ZeroconfServer:477 - Handling request: POST / HTTP/1.1, headers: {Keep-Alive=0, Connection=keep-alive, User-Agent=Spotify/8.5.66 Android/29 (ONEPLUS A6003),
Jul 13 20:17:10 raspberrypi java[12624]: 2020-07-13 20:17:10,515 INFO ZeroconfServer:280 - y0595****************6rk is already trying to connect.
lines 1-19/19 (END)
Describe the bug
After installing SpoCon using either the easy way or hard way, "SpoCon-Spotify" appears in available devices but playback is not transferred to RPI
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Expected music to start playing on RPI
Desktop (please complete the following information):
Raspbian 9.11 stretch
Smartphone (please complete the following information):
Additional context
Might be a connection, but I'm trying this project since https://github.com/dtcooper/raspotify displays similar behaviour. Not sure when it stopped working, but it used work fine.
On a bug there, this project is linked. dtcooper/raspotify#241
hi,
spocon plays a few songs and stops, maybe one maybe ten so no consistent times, no clue what to to look at advice needed.
When spocon is running for a long time (like weeks), I sometimes encounter that it fails with traces like this:
2021-06-24 22:08:08,992 ERROR Session:730 - Failed reconnecting, retrying in 10 seconds...
java.net.UnknownHostException: gew1-accesspoint-d-xnwh.ap.spotify.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:220) ~[?:?]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:?]
at java.net.Socket.connect(Socket.java:609) ~[?:?]
at java.net.Socket.connect(Socket.java:558) ~[?:?]
at java.net.Socket.<init>(Socket.java:454) ~[?:?]
at java.net.Socket.<init>(Socket.java:231) ~[?:?]
at xyz.gianlu.librespot.core.Session$ConnectionHolder.create(Session.java:1242) ~[librespot-java-api-v1.6.0.jar:1.6.0]
at xyz.gianlu.librespot.core.Session.reconnect(Session.java:712) ~[librespot-java-api-v1.6.0.jar:1.6.0]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
It keeps on printing this error.
That host effectively does not exist anymore. Maybe because of redeploys at the spotify server side some loadbalancer names changed?
When I just restart spocon, it discovers a new list of accesspoint urls (the old one is not in that list anymore) and works like a charm.
Not sure how to use with NordVPN which seems to terminate or block SpoCon. Firewall (not the same thing as VPN) instructions say open the UDP port 5355 for mDNS. Then specify some random port in zeroconf.listenPort and open that TCP port too. I see no reference to UDP in config.toml. Only API port = 24879.
Also, zeroconf ListenPort = -1 in config.toml. Should I change that? If so, to what?
Also, currently, initialVolume = 65536. My (iOS) Spotify app is at 100% volume when connected to SpoCon. Will cutting initialVolume in half cut my Spotify app in half?
On a Raspi4 I followed the one-step installation command which ran without error. However Spocon does not show up in Spotify as device on IOS.
When checking with "service spocon status" I get the following:
Nov 06 23:05:24 pi4 systemd[1]: Starting SpoCon...
Nov 06 23:05:24 pi4 sh[1853]: PING spotify.com (35.186.224.25) 56(84) bytes of data.
Nov 06 23:05:24 pi4 sh[1853]: 64 bytes from 25.224.186.35.bc.googleusercontent.com (35.186.224.25): icmp_seq=1 ttl=115 time=15.9 ms
Nov 06 23:05:24 pi4 sh[1853]: --- spotify.com ping statistics ---
Nov 06 23:05:24 pi4 sh[1853]: 1 packets transmitted, 1 received, 0% packet loss, time 0ms
Nov 06 23:05:24 pi4 sh[1853]: rtt min/avg/max/mdev = 15.910/15.910/15.910/0.000 ms
Nov 06 23:05:24 pi4 systemd[1]: Started SpoCon.
And then when Spotify goes searching for devices the status shows as follows:
Any idea what needs to be done here?
Would be nice if this could be run in Docker.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.