Skip to content

Physical preset buttons trigger requests, but playback never starts (/streaming/sourceproviders and /streaming/device/<id>/streaming_token return 404) #316

Description

@skalizzo

Hi, thanks for this project — I managed to get my SoundTouch 20 redirected to SoundCork, and the speaker clearly talks to my local server, but presets still do not start playback.

Setup
Device: Bose SoundTouch 20
Firmware: 27.0.6
SoundCork running on Raspberry Pi using Docker Compose
Speaker successfully redirected by editing SoundTouchSdkPrivateCfg.xml
Miniapp works and shows device + presets correctly
Physical preset button presses on the speaker generate requests to SoundCork
What works
SSH enable works
Redirect to local SoundCork works
Miniapp dashboard loads correctly
Device and presets are visible in the dashboard
Pressing a physical preset button clearly triggers requests from the speaker
What does not work
Neither of these starts playback:

pressing a physical preset button on the speaker
selecting a preset from the SoundCork dashboard / miniapp
In both cases, the speaker does not start playing audio.

Logs when pressing preset buttons
The most relevant requests I consistently see are:

text
GET /streaming/sourceproviders HTTP/1.1 -> 404
GET /streaming/device/08DF1F23E9C6/streaming_token HTTP/1.1 -> 404
POST /v1/scmudc/08DF1F23E9C6 HTTP/1.1 -> 200
POST /v1/scmudc/08DF1F23E9C6 HTTP/1.1 -> 200
I also sometimes see:

text
POST /streaming/support/power_on HTTP/1.1 -> 404
GET /v1/blacklist/08DF1F23E9C6 HTTP/1.1 -> 404
Speaker user agent:

text
Bose_Lisa/27.0.6
Dashboard behavior
The miniapp/dashboard correctly shows:

my account
my SoundTouch 20 device
all 6 presets
However, clicking/selecting a preset in the dashboard also does not start playback on the speaker.

Preset details
Originally my preset 1 was a LOCAL_INTERNET_RADIO preset pointing to a Bose Orion-style URL like this:

xml


Deutschlandfunk



I also tried rewriting the preset based on the workaround described in issue #312 / related comments, i.e. using:

xml

with base64 encoded JSON containing:

station name
image URL
direct stream URL
But playback behavior remained the same.

Additional observations
/sources works, but does not include RADIO_BROWSER
/serviceAvailability works, but does not include RADIO_BROWSER
I also tried adding RADIO_BROWSER manually to Sources.xml, but it still did not show up in /sources or /serviceAvailability
The speaker definitely reaches SoundCork and uses it instead of Bose cloud
Question
Is this expected / a current limitation?

From the logs it looks like preset selection is detected correctly, but playback fails because SoundCork returns 404 for endpoints that seem required by the speaker before actual playback starts:

/streaming/sourceproviders
/streaming/device//streaming_token
possibly /streaming/support/power_on
Do these endpoints require extra setup, or are they currently not implemented for this preset use case?

If helpful, I can provide:

sanitized Presets.xml
sanitized Sources.xml
docker-compose.yml
full logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions