thlucas
New member
- Joined
- Jun 30, 2025
- Messages
- 1
I have a semi-technical question to ask concerning Spotify Connect via Google Cast Group. Please advise if this is the wrong forum / audience for this ask ...
I found something interesting in the Spotify Connect Zeroconf protocol properties returned for the Wiim AMP device. There is an additional property in there that I have never seen before with other Spotify Connect Zeroconf protocol results: "Stack"
SpotifyConnectDevice info: "Kitchen Speakers" (36d893db7ac6e998d2b0dac4a7c29f86839d51a8) (DiscoveryResult) [192.168.1.202:5356]
Properties = [Name="Stack" Value="SP", Name="CPath" Value="/zc", Name="VERSION" Value="1.0"]
Per a quick chatGPT lookup ...
Property Breakdown:
- "Stack": "value"
Indicates the transport layer used to communicate with Spotify.
values:
- "CAST" Indicates it's using the Google Cast SDK to manage session control and audio streaming.
- "SP" Indicates the Spotify Connect protocol stack (used by native Spotify clients or partner integrations).
- "SP": true
Implies the device supports Spotify Connect features, even if Spotify is running over the Cast stack.
Internally, this might enable Spotify's device aliasing, multi-device linking, and identity linking features.
If you're trying to differentiate device types, "Stack" is your best flag:
- "CAST" = Spotify running on a Google Cast receiver.
- "SP" = Native Spotify Connect implementation (e.g., app, embedded device, smart speaker with direct integration).
I'm wondering if I need to supply a Stack property value on the cast protocol getInfo or addUser requests? That could be why it's returning the Parlor Speakers (instead of Kitchen Parlor) because it's returning what's active on the Stack=SP instead of the Stack=CAST! For example, here's the request / response I send to the Wiim Device using the CAST protocol:
Sending Spotify Connect Zeroconf Getinformation message to Chromecast device (ip=192.168.1.14:32133)
{ 'type': 'getInfo',
'payload': {'remoteName': 'Kitchen Parlor', 'deviceID': '3fb9b12379e4fa1957d065b4c4568939', 'deviceAPI_isGroup': False}}
Chromecast Message received: protocol_version: CASTV2_1_0 ...
{ 'type': 'getInfoResponse',
'payload': { 'remoteName': 'Parlor Speakers', <======= what's active on STACK=SP?
'deviceID': 'b786131cc152765dc67c6e702c9389c9', <======= what's active on STACK=SP?
'deviceAPI_isGroup': False,
...
Thoughts?
Thanks for reading.
I found something interesting in the Spotify Connect Zeroconf protocol properties returned for the Wiim AMP device. There is an additional property in there that I have never seen before with other Spotify Connect Zeroconf protocol results: "Stack"
SpotifyConnectDevice info: "Kitchen Speakers" (36d893db7ac6e998d2b0dac4a7c29f86839d51a8) (DiscoveryResult) [192.168.1.202:5356]
Properties = [Name="Stack" Value="SP", Name="CPath" Value="/zc", Name="VERSION" Value="1.0"]
Per a quick chatGPT lookup ...
Property Breakdown:
- "Stack": "value"
Indicates the transport layer used to communicate with Spotify.
values:
- "CAST" Indicates it's using the Google Cast SDK to manage session control and audio streaming.
- "SP" Indicates the Spotify Connect protocol stack (used by native Spotify clients or partner integrations).
- "SP": true
Implies the device supports Spotify Connect features, even if Spotify is running over the Cast stack.
Internally, this might enable Spotify's device aliasing, multi-device linking, and identity linking features.
If you're trying to differentiate device types, "Stack" is your best flag:
- "CAST" = Spotify running on a Google Cast receiver.
- "SP" = Native Spotify Connect implementation (e.g., app, embedded device, smart speaker with direct integration).
I'm wondering if I need to supply a Stack property value on the cast protocol getInfo or addUser requests? That could be why it's returning the Parlor Speakers (instead of Kitchen Parlor) because it's returning what's active on the Stack=SP instead of the Stack=CAST! For example, here's the request / response I send to the Wiim Device using the CAST protocol:
Sending Spotify Connect Zeroconf Getinformation message to Chromecast device (ip=192.168.1.14:32133)
{ 'type': 'getInfo',
'payload': {'remoteName': 'Kitchen Parlor', 'deviceID': '3fb9b12379e4fa1957d065b4c4568939', 'deviceAPI_isGroup': False}}
Chromecast Message received: protocol_version: CASTV2_1_0 ...
{ 'type': 'getInfoResponse',
'payload': { 'remoteName': 'Parlor Speakers', <======= what's active on STACK=SP?
'deviceID': 'b786131cc152765dc67c6e702c9389c9', <======= what's active on STACK=SP?
'deviceAPI_isGroup': False,
...
Thoughts?
Thanks for reading.