Skip to main content

Get Started with WAM Bridge CLI on Windows

Install the WAM Bridge CLI on Windows, discover your Samsung Shape M5 speaker, save a device profile, and stream your first audio file in under five minutes.
2 min read

WAM Bridge requires Python 3.14+, FFmpeg in your PATH, and a Samsung WAM speaker on the same LAN as your PC. The steps below install the CLI, confirm your setup, and play a file.

Install WAM Bridge

Clone the repository, create a virtual environment, and install the package:

Confirm FFmpeg is on your PATH:

If FFmpeg is not found, download a build from ffmpeg.org and add its bin folder to your system PATH.

Discover your speaker

Run discovery to find your Samsung WAM speaker on the LAN:

WAM Bridge sends repeated SSDP requests through your active IPv4 adapters. If the speaker does not appear (some older firmware is silent to SSDP), discovery falls back to checking Samsung's API on port 55001 in nearby /24 networks.

If you see no result, try:

Save your speaker as a device alias

Instead of using the IP address every time, save the speaker under an alias. Use the IP address from the discovery output:

WAM Bridge stores the stable Samsung device_id alongside the last known IP. If the IP changes via DHCP, WAM Bridge searches the LAN for the same device and updates the profile automatically.

Verify the saved profile:

Play a file with a safe volume

Stream an audio file to the saved device. Always set an explicit volume using raw steps (see below):

WAM Bridge encodes the file to FLAC via FFmpeg, serves it over a local HTTP stream, and starts playback on the speaker using SetUrlPlayback.

Volume safety#

The tested Shape M5 uses raw API volume steps 0 to 30. Values above 30 are silently clamped to maximum.

Raw stepApproximate level
3~10%
6~20%
15~50%
30Maximum
Warning

Old WAM firmware may jump to a high volume when switching to URL playback. WAM Bridge protects against this by muting the speaker, starting the stream with 1.5 seconds of silence, and then applying your requested volume after decoding begins.

To set only a startup ceiling while preserving a quieter current setting:

Next steps#