Everything "Companion for Bose SoundTouch" does in 2026 — the full feature list (post-cloud rescue + Widgets, Shortcuts, Spotify on the buttons, and more)

Everything "Companion for Bose SoundTouch" does in 2026 — the full feature list (post-cloud rescue + Widgets, Shortcuts, Spotify on the buttons, and more)

A few of you asked for the full picture of what my app — Controller for Bose SoundTouch (iOS) — actually does. When Bose shut down the SoundTouch cloud (May 2026), these speakers lost internet radio, presets and most app control. The app gives all of that back, and adds a bunch on top. Here's the complete rundown.

🔌 Keeping your speaker alive (the core)

- Reboot-proof internet radio + presets — after a one-time setup per speaker, your stations and the physical preset buttons (1–6) survive power outages, reboots and unplugging, without your phone nearby.

- Self-healing — keeps each speaker's connection in order after Wi-Fi / IP changes and restores accidentally-wiped buttons.

- Auto-discovery of every SoundTouch on your network, plus manual add-by-IP.

🌍 Finding & saving music

- Global station search — any station by name, worldwide.

- Browse by region — continent → country → city, plus advanced search.

- Save to a preset from the app (with cover art) — no holding the button on the speaker.

- Favorites — add / remove / edit your go-to stations.

- Station logos on the preset buttons.

🎵 Spotify on the hardware buttons (new in 2.0)

- Put a Spotify playlist on a preset button, press it on the speaker like any station.

- A guided in-app wizard for the one-time connection. (Spotify Premium required.)

🎛 Full control surface

- Now Playing with cover art, scrolling info and live metadata.

- Transport: play/pause, next/previous, power, volume.

- Play Everywhere — multi-room group playback (2+ speakers).

- Bluetooth and AUX switching.

🔈 Per-speaker settings (long-press a speaker)

- Sleep timer · Default volume · Bass / treble · Clock display · Stereo pairing (SoundTouch 10) · Speaker diagnostics

⌚️📱 Beyond the phone

- Apple Watch app — control from the wrist (auto-configured).

- Home-screen widget + Live Activity (lock screen / Dynamic Island).

- Siri Shortcuts & interactive preset widgets — start a preset by voice or from the widget.

✨ Polish

- Full dark mode · fixed AAC "chirping" · guided first-run tour · in-app contact.

✅ Works with

iPhone (iOS 13+), Apple Watch, and SoundTouch 10 / 20 / 30 / SA-4 / Wireless Link Adapter.

❌ Honest limitations

- Wireless Link Adapter can't be fully migrated. · A few HTTPS-only stations are the exception. · Spotify needs the one-time setup (Premium) and a phone reachable now and then; radio runs fully on its own.

📲 Get it

Controller for Bose SoundTouch: 👉 https://apps.apple.com/app/id1193061433

u/nachtfux997 — 12 days ago

Anyone here still using SiriusXM? Thinking about bringing it to your SoundTouch next — need a quick gut-check + one tester.

Hey folks 👋

You've seen me bring a bunch of stuff back to these speakers post-shutdown — internet radio, reboot-proof presets, and now Spotify playlists on the hardware buttons. The one official SoundTouch service still missing is SiriusXM, and I'm weighing whether it's worth doing next.

Before I sink time into it, a quick gut-check from the people who'd actually use it:

  1. Demand

- Did you use SiriusXM on your SoundTouch before?

- Would you use it again — channels on the preset buttons?

A comment or upvote is enough. If barely anyone wants it, I'll put the effort into things more of you are asking for.

  1. How it'd work (straight talk)

SiriusXM was never a built-in source like Spotify — it ran through Bose's cloud. So the realistic route is to bridge a SiriusXM channel into an internet-radio preset: a small server logs into a SiriusXM account, turns a channel into a plain stream the speaker plays, and it lands on a preset like any station. Honest caveats:

- US/Canada only (SiriusXM streaming is geo-locked).

- Needs to log into a SiriusXM account to pull the stream.

- It's a gray area vs SiriusXM's ToS — personal-use territory, not a commercial feature.

  1. I need one tester in the US/CA

To build it I need a live SiriusXM sub to test against. I'd rather nobody take a risk, so easiest/safest first:

  1. You run it, I guide you — it's open-source, runs on your own machine, nothing leaves your hands, we debug over DMs. Ideal.

  2. A secondary/trial account you fully control.

  3. A quick screen-share where you stay in the driver's seat.

(Only if you're truly comfortable: throwaway-account creds, revoked the second we're done.)

So — worth doing? And is anyone US/CA up for testing (ideally option 1)? Drop a comment or DM. 🙏

u/nachtfux997 — 12 days ago

Spotify is BACK on Bose SoundTouch Presets

Since the SoundTouch cloud shut down (May 2026), a bunch of us have kept these speakers alive with replacement backends — internet radio and the physical preset buttons survive reboots again. The thing people keep asking for next: put a Spotify playlist on a physical preset button (1–6).

I've spent a good while reverse-engineering this. The first tests are actually successful — but I want to be honest: it's not at the "🎉 yay, ship it" stage yet. More like "the mechanism works on my bench, and now I'm stuck on a wall I can't engineer my way around." Sharing everything in case it helps someone, and because I'm hoping someone knows a way past the wall. of the mechanics — the ZeroConf prime, the /full source slot, the preset XML, etc.)

TL;DR

Spotify playlists on hardware preset buttons technically work end-to-end — press the button, the playlist plays, next-track works, survives standby.

End result: a Spotify playlist on button 5 → press it → it plays → next-track works. Even a "Liked Songs" collection works.

What is next?
i will try to provide a working way for all of you. I will do my best.

u/nachtfux997 — 13 days ago

📻 Station request thread + help adding missing stations via "Custom URL+"

Hi everyone,

so no favorite station gets left out, let's keep one pinned thread for this:

1) Station requests
Which station is still missing from the list? Just drop the name (+ city/country) in the comments. If you already have a TuneIn link or a stream address, post it too — that gets it into the catalog faster.

2) Add it yourself via "Custom URL+"
Most stations you can add right away yourself, no need to wait for an update:

  • In the app, tap "own station / Custom URL+" (the + symbol)
  • Paste the direct stream address, give it a name, and assign it to a preset

Practical tip: whenever possible use an MP3 address over HTTP (not HTTPS). It plays the cleanest and keeps running on its own even when your iPhone isn't nearby. Example (Ö3): http://orf-live.ors-shoutcast.at/oe3-q2a

3) Help each other out
If you've got a working stream URL for a station, please share it in the comments. Others can find it via search and add it directly. That way we build a really solid list together. 🙌

Happy listening!

u/nachtfux997 — 13 days ago

Spotify on Bose SoundTouch

Since the SoundTouch cloud shut down (May 2026), a bunch of us have kept these speakers alive with replacement backends — internet radio and the physical preset buttons survive reboots again. The thing people keep asking for next: put a Spotify playlist on a physical preset button (1–6).
I spent a good while reverse-engineering this. Here’s everything I learned — the good news, the exact mechanism, and the wall I hit. Sharing in case it helps, and because I’m hoping someone knows a way past the wall.
TL;DR
Spotify playlists on hardware preset buttons technically work end-to-end — press the button, the playlist plays, next-track works, survives standby. But Spotify’s developer policy caps the whole thing at 5 users. Great for your own household; not shippable to a real userbase. Unless someone knows a trick (see open questions).
What I figured out (the mechanism)

  1. A hardware preset can only trigger sources the speaker itself understands — LOCAL_INTERNET_RADIO or native SPOTIFY. A Spotify Connect cast (from the official Spotify app) shows up on the speaker as type="DO_NOT_RESUME", isPresetable="false", account SpotifyConnectUserName. So you cannot save a Connect cast to a preset, and long-pressing the button at the speaker does nothing useful for Spotify.
  2. Making a Spotify preset actually play needs TWO things:
    • a per-account SPOTIFY source slot declared in the marge /full response — <source> with sourceproviderid 15 and the user’s Spotify user-id as name/username, and
    • “priming” the speaker with a live OAuth access token via the ZeroConf endpoint: POST http://<speaker>:8200/zc with action=addUser&userName=<id>&blob=<token>&tokenType=accesstoken. Same mechanism the Spotify desktop app uses to cast.
  3. Priming alone is NOT enough. addUser sets activeUser, but does not create the source slot. Without the /full slot, playback fails with INVALID_SOURCE even though activeUser is set. I also confirmed an empty slot registers as READY but still won’t play — the slot must carry the user’s Spotify account id (the box matches the preset’s sourceAccount against a source slot with the same id).
  4. Gotchas worth knowing:
    • The access token expires after ~1h → the speaker needs re-priming. Standby and Wi-Fi drops are fine (the box keeps its session); a power-cycle wipes it.
    • Re-priming an already-active session tears it down (→ INVALID_SOURCE). Check getInfo activeUser first; only addUser if it isn’t already your account.
    • A reboot purges the prime (and the presets). The source slot comes back from /full at boot; the prime + the preset have to be re-applied.
    • Saving has to be done by the controller app, not the speaker: read /now_playing, decode the playlist URI (it’s base64 inside /playback/container/...), then write a presetable <ContentItem source="SPOTIFY" type="uri" location="spotify:playlist:..." sourceAccount="<id>" isPresetable="true"> via /storePreset.
    End result: a Spotify playlist on button 5 → press it → it plays → next-track works. Even a “Liked Songs” collection works.
    The wall (the dead-end part)
    To get that OAuth token, the user has to authorize a Spotify Developer app. As of Feb 2026:
    • Development mode = max 5 users, each added by hand via their Spotify-account email in the dashboard, and the dev account itself must be Premium.
    • Extended Quota (the only way past 5) now requires a registered business + 250,000 MAU + a policy review — and a reverse-engineered Connect bridge wouldn’t pass the policy anyway.
    • The iOS App Remote SDK is under the same user cap (I checked — no loophole; the authorization itself is what’s capped; non-allowlisted users get a 403 on every call).
    • The only technically uncapped Spotify path is the official Connect cast — which (see #1) isn’t presetable.
    So: works for you + up to 4 people whose emails you whitelist. Not shippable to a userbase.
    Open questions for the community
    • Has anyone got the full Diffie-Hellman ZeroConf prime (encrypted blob, like AfterTouch describes) working reliably, vs. the plain-token fallback?
    • Is there any per-user Spotify auth path that isn’t capped at 5, short of the commercial Spotify Connect hardware certification (which I assume is a business deal, not realistic for a hobby project)?
    • For folks running soundcork / AfterTouch / similar local-cloud replacements: how are you handling — or not handling — the 5-user cap for Spotify?
    Internet radio + presets surviving reboots is solid and works for everyone. Spotify is the one feature that hits a hard vendor wall. If anyone’s found a way through that isn’t “become a certified Spotify hardware partner,” I’d love to hear it. Otherwise this is a fun-but-personal-only feature.
    (Happy to go deeper on any of the mechanics — the ZeroConf prime, the /full source slot, the preset XML, etc.)
u/nachtfux997 — 15 days ago

Controller for Bose SoundTouch — 1.9.9: internet radio &amp; presets now survive reboots WITHOUT your phone

Hey r/Bose / r/SoundTouch,

Big update to the alternative Bose SoundTouch controller app. The headline is the

fix a lot of you have been emailing about since the cloud shutdown:

**Your internet radio stations and the physical preset buttons (1–6) now stay put —

even after the speaker restarts (power outage, firmware blip, unplugging) and even

when your phone isn't nearby.**

Until now, a speaker that rebooted while your phone was asleep or in another room

would lose its internet-radio source and wipe the preset buttons. That's the thing

this update solves.

## ✨ What's new

**🔒 Reboot-proof presets & internet radio (the big one)**

- One-time setup per speaker → after that, internet radio + your preset buttons

survive every reboot, fully independent of your phone.

- After updating: long-press the speaker in the list → **Speaker Diagnose** →

**no Cloud-Recovery** (once per speaker). The speaker restarts briefly (~1–2 min)

and you're set.

**🔁 Presets restore themselves**

- The setup automatically re-writes every station you saved in the app back onto

the buttons — no manual re-saving.

**🌍 Global station search**

- New search bar in the station browser: find any station **by name, worldwide** —

no more drilling down continent → country → city first.

**🔘 No more long-press dance at the speaker**

- You no longer need to hold a preset button on the speaker to store a station.

Save it from the app instead — cleaner, with cover art, and those are the presets

that get restored automatically.

**🎵 No more "chirping"/garbled AAC stations**

- AAC / AAC+ stations that used to crackle or whistle now play cleanly.

**🖼 Station logos are back on the preset buttons**

- (If a button still shows the generic antenna icon, just re-save that station once.)

**🌙 Full dark mode**

- The entire app — every menu, dialog and action sheet — is now consistently dark.

**🔋 Removed "keep hardware buttons always active"**

- Not needed anymore with the new approach, so it's gone → noticeably less battery

drain.

## 🛠 Stability / fixes

- Self-healing: the app keeps each speaker's connection in order after a Wi-Fi or

IP change, and restores accidentally-wiped buttons the next time it runs.

- Reliability fixes around saving and playing stations.

## ✅ Requirements

- iPhone, iOS 13+ (after the one-time setup, the speaker does the rest on its own)

- SoundTouch 10 / 20 / 30 / Wireless Link Adapter

## ❌ Known limitations

- The **Wireless Link Adapter** can't be fully migrated (hardware limitation).

- A small number of **HTTPS-only** stations are the exception to the

"works without the phone" rule.

**TL;DR:** The Bose cloud is dead, but with 1.9.9 your stations and preset buttons

finally survive reboots **on their own — no phone babysitting required**. Do the

one-time setup per speaker after updating, and you're done. Plus: global station

search, no more long-press, no more AAC chirping, full dark mode.

Happy to take questions, feature requests or bug reports — here in the thread or by

email.

u/nachtfux997 — 16 days ago

# I built a SoundTouch app 10 years ago — back when Bose’s own app could barely do anything. The cloud shutdown is strangely full-circle

So this whole cloud shutdown announcement sent me down memory lane, and I figured some of you might appreciate the story.

About 10 years ago, I wrote a controller app for SoundTouch. Not as a business plan, not to compete with anyone — I wrote it because **Bose’s own app at the time could barely do anything.** It was clunky, limited, and missing features I actually wanted as a user. So I did what developers do when they’re annoyed: I built my own.

The funny part? Back then I never touched the cloud. My app talked **directly to the speakers over the local network** — because that was the obvious, simple way to do it. The speakers were right there on the same WiFi. Why would you route a command through a server on the other side of the planet?

And that’s the part I still can’t fully wrap my head around, even now.

**Why did Bose go cloud-first in the first place?**

Your speaker is sitting 3 meters away from your phone. Both are on the same network. To send a command, the “smart” approach was: phone → internet → Bose’s servers → back through the internet → your speaker. For a command that could have just been sent directly across the room.

I get *some* of the reasons in hindsight — centralized music service integration, account syncing, “control from anywhere,” usage telemetry. It was the trend of that era; everything had to have an account and live in the cloud. But for core control? It always felt like over-engineering to me.

And here’s the irony that’s almost too perfect: **the exact thing that made it “smart” in 2014 is what’s killing it in 2026.** The cloud dependency they built in is now the expiration date. Meanwhile the boring, unglamorous local approach — the one I used because it was simply easier — just… keeps working. No server to shut down. Nothing to expire.

I’ve now watched this entire lifecycle play out from the very beginning to the very end. I was there before Bose’s app did much of anything, and I’ll be here after their app stops doing anything at all. There’s something genuinely strange and a little bittersweet about that as a developer.

The lesson, if there is one: **cloud features have a shelf life. Local control lasts as long as the hardware does.** Your SoundTouch speakers are still perfectly good pieces of hardware. They don’t need to become e-waste just because a server somewhere is getting switched off.

Anyway — that’s the story. Happy to answer questions about local control if anyone’s trying to figure out their post-February plans. And if any other devs out there remember the early SoundTouch days, I’d love to hear your war stories too.

-----

*Full transparency: I’m a developer with a paid app in this space, so I obviously have a horse in this race. But the local-vs-cloud point stands regardless of which solution anyone ends up using.*

reddit.com
u/nachtfux997 — 18 days ago

Controller for Bose SoundTouch 1.9.7 — Cloud-Recovery for keyless/factory-reset speakers is live

After Bose shut down the SoundTouch cloud in May 2026, a lot of speakers ended up with no LOCAL_INTERNET_RADIO source in their

  NVRAM anymore — either because they were factory-reset after the shutdown, or because their cached source manifest got wiped      

  during a failed cloud sync. From that point on those speakers became really limited: no custom internet radio, no preset buttons

  that play anything meaningful, no easy way to get the stations back. Soundcork, Hybrid 2026 and Better ST all rely on the speaker 

  still having the source — they can't bring it back once it's gone.

  1.9.7 fixes exactly that, locally, from the iPhone.                                                                               

   

  It uses the speaker's own Registry mechanism: the app temporarily redirects the speaker's RegistryUrl to a tiny HTTP server

   embedded inside the iOS app, reboots the speaker, and during the post-boot handshake it announces LOCAL_INTERNET_RADIO (provider

  radio streaming as available services. The speaker writes them back into NVRAM permanently. After that, the recovery URL   

  can sit there forever or be left pointing at the iPhone — the sources are persistent regardless.

  No NAS, no Docker, no Wireshark — everything happens inside the iOS app.                            

  ---                                                                                                                               

  How to do it (takes ~2 minutes)                              

  1. Update the app to 1.9.7 (App Store)

  2. On the main screen, long-press the affected speaker → "Speaker Diagnose"                                                       

  3. Under "Aktionen", tap "no Cloud-Recovery start" → confirm

  4. Wait ~2 minutes (the speaker reboots itself once during the process — that's normal)                                           

  5. When the result dialog says "✅ Recovery erfolgreich", you're done. /sources on the speaker should now contain                 

  LOCAL_INTERNET_RADIO again                                                                                                        

  Optional follow-up: re-save your favorite stations as hardware presets (long-press a preset slot in the app), so the physical and directly in the app.  

  buttons 1–6 on the speaker route through the recovered source path. Streams that previously had to use the DLNA workaround (and would sometimes crackle / clip) now play through the native LIR path — clean, no proxy needed.                                    

  ---

  What this fixes

  - ✅ Speakers that lost LOCAL_INTERNET_RADIO from /sources get it back, permanently

  - ✅ Radio streaming is also restored

  - ✅ Standard MP3 / AAC / FLAC internet radio streams now play directly via LIR — no more DLNA-wrapping artifacts (the classic crackle / chirp on certain stations)

  - ✅ Works on SoundTouch 10, 20, and 30 (not all FW versions I've been able to test)

  ---

  Why I built it

  I have four SoundTouch speakers around the house. One of them (a ST-20) went into the "keyless" state right after the shutdown — I

   caught it during testing and it was genuinely useless. The other three still worked because they happened to be powered on with

  the source list cached in NVRAM, but I had no way to repair the ST-20 short of replacing it. After a lot of reverse-engineering on

  Cluster-1 speakers are the ones nobody else solved on iOS — happy that this version finally closes that gap.

  ---

  Feedback / bug reports: in the comments or via the app's contact form. If recovery fails on your speaker, please include the FW

  version + transcript from the result dialog (there's a "share" button) — that helps a lot for debugging edge cases.

  ---

Available now on the AppStore.

reddit.com
u/nachtfux997 — 1 month ago
▲ 42 r/CardPuter+1 crossposts

Built a Claude voice assistant for the Cardputer ADV — press OK, talk, it talks back

I built a pocket voice assistant for the M5Stack Cardputer ADV. Press OK, speak, and Claude answers out loud. No cloud middleware — the device talks straight to two APIs with your own keys.

The flow: Press OK → Whisper transcribes → Claude thinks → OpenAI TTS speaks back. A VAD detects when you stop talking and closes the recording automatically, and the last 10 messages persist within a session, so follow-ups like “and how old is she?” keep their context.

It’s a small launcher with seven apps:

Claude Pocket – the voice assistant
• Translator – voice-to-voice, speak in one language and hear another (DE→EN by default)
• Weather – IP-geolocated, 3-day forecast via Open-Meteo, no key needed
• Radio – internet radio over MP3/AAC
• Snake – with difficulty levels
• Claude Buddy – BLE companion info screen (the actual GATT pairing port is still open work if anyone wants in)
• Settings – Wi-Fi roaming, brightness, volume, an About screen

The interesting part was fitting it on the no-PSRAM StampS3A. After Wi-Fi + mbedTLS + the display grab their share of the 320 KB SRAM, you’re left with ~90 KB — barely enough for a TLS handshake. Keeping audio in RAM capped recordings at ~4 seconds. The fix was writing the mic PCM straight to LittleFS during capture and streaming it back to Whisper in 1 KB chunks, which freed enough heap for the upload to drain cleanly. There were a few more rabbit holes too — mbedTLS stalling on TLS-1.3 post-handshake records (so TTS now downloads fully before playback), and an audible echo from playRaw storing a pointer instead of a copy (fixed with a rotating buffer pool). The full debug history is in the commit log and honestly the more interesting half of the project.

Repo: https://github.com/Nachtfux/claude-pocket

Happy to answer anything about the audio pipeline or the flash trade-offs. Feedback welcome.

u/nachtfux997 — 1 month ago
▲ 4 r/SoundTouchNoCloud+1 crossposts

🎵 Controller for BOSE SoundTouch — Die "andere" SoundTouch-App, jetzt mit Cloud-Recovery für tote Speaker

Hi r/Bose / r/iOSApps / r/SoundTouch,

nachdem Bose im Mai 2026 den SoundTouch-Cloud-Service abgeschaltet hat, sind viele Speaker nur noch "dumme" AirPlay-Empfänger. Ich entwickle seit Jahren eine alternative iOS-App, die alles wiederherstellt, was die offizielle Bose-App nicht (mehr) kann — und in 1.9.7 jetzt sogar **werks-resettete Speaker heilt**, denen Bose beim Shutdown die `LOCAL_INTERNET_RADIO`-Source gewiped hat.

Wer's noch nicht kennt — hier die komplette Feature-Liste:

## 🔧 Cloud-Recovery (neu in 1.9.7)

- **„no Cloud-Recovery"** — heilt SoundTouch-Speaker, die nach Bose-Cloud-Shutdown keine eigenen Sender mehr abspielen konnten. Schreibt persistent die Radio Sender.
Kein Server, kein NAS, kein Docker — alles direkt aus der App.

- **Diagnose-View** — zeigt auf einen Blick, welche Speaker betroffen sind (✅/❌ Source-Manifest)

## 📻 Radio & Streaming

- **Unbegrenzte Favoriten** — keine 6-Slot-Grenze wie bei der offiziellen App. So viele Sender wie du willst, mit Cover-Art und sortierbar

- **Country/Continent/City Browser** — durchforste tausende Radiostationen weltweit nach Region, Genre, Sprache

- **Custom URL Streaming** — eigene Stream-URLs (MP3, AAC, FLAC, M3U-Playlists)

- **M3U-Playlist Parser** — automatische Auflösung von Playlist-Dateien zu echten Stream-URLs

- **Live-Stream-Proxy** — eingebauter Mini-Server löst auch HLS / HTTPS-only-Sender auf, die der Speaker nativ nicht kann

## 🏠 Multi-Speaker

- **Speaker-Discovery** — findet alle SoundTouch-Geräte automatisch im LAN

- **Stereo-Pairing** — koppelt zwei gleiche Speaker zu einem Stereo-Paar

- **Multi-Room/Hardware-Gruppen** — synchrone Wiedergabe über mehrere Räume, nutzt Bose-Chipset-Sync (keine Software-Drift)

- **Speaker-Übersicht** — Status, Lautstärke, Now Playing für alle Geräte auf einem Screen

## 🍎 Apple-Integrationen

- **Apple Shortcuts / Siri** — „Hey Siri, Preset 3 auf Bose Küche" funktioniert. Auch über Action Button, Automation, NFC-Tags etc.

- **Widget** für Lock Screen + Home Screen — Quick-Play, Quick-Pause, Lautstärke ohne App-Wechsel

- **Apple Watch App** — vollständige Steuerung am Handgelenk, inkl. Custom-Stream-Playback

- **Lock-Screen Now-Playing** — mit Cover-Art und Pause/Skip-Controls

- **CarPlay-kompatibel** über Audio-Session

## 🎛 Bedienung & Komfort

- **Hardware-Tasten dauerhaft aktiv** — Toggle hält die App im Hintergrund am Leben, damit die physischen Preset-Knöpfe am Speaker auch ohne aktive App reagieren

- **Sleep Timer** — Wiedergabe nach 15/30/45/60/90 Min automatisch beenden

- **Volume-Override pro Preset** — definiere für jeden Preset eine eigene Lautstärke

- **Dark Theme** — komplett systemweit oder per-App

- **Mehrsprachig** — Deutsch + Englisch (mehr auf Anfrage)

- **Coach-Marks für Erstbenutzer** — kurze Onboarding-Hilfen

## 🛠 Technisch

- **Native Objective-C/Swift** — keine Cross-Platform-Hacks, optimiert für iOS 16+

- **Funktioniert komplett lokal** — keine Server, kein Tracking, keine Analytics, keine Cloud

- **WebSocket-Live-Sync** — App reagiert in Echtzeit auf Lautstärke-/Preset-/Source-Wechsel am Speaker

- **Reverse-engineered Bose-API** — inkl. Marge-Setup-Protokoll, Registry, WebSocket, Telnet-Diagnostic-Shell

## ✅ Voraussetzungen

- iPhone mit iOS 16+ (optional Apple Watch)

- SoundTouch 10 / 20 / 30 / Wireless Link Adapter (alle laufenden FW-Versionen getestet)

- Lokales WLAN — die App spricht direkt mit dem Speaker, kein Internet nötig

## ❌ Bekannte Grenzen

- **Wireless Link Adapter**: Recovery kann den nicht heilen (Hardware: kein USB-Host-Mode). Für den braucht's einen NAS-basierten Cloud-Emulator.

- **HLS-Streams (.m3u8)**: laufen über den App-internen Proxy → iPhone muss im WLAN sein. Standardstreams brauchen das nicht.

- **Hardware-Preset-Tasten am Speaker**: brauchen iPhone im gleichen WLAN (kein Cloud-Server, der die Stream-URLs auflöst). Mit "Hardware-Tasten dauerhaft AN" auch bei geschlossener App.

## 🔗 Download & Feedback

https://apps.apple.com/de/app/id1052863684

Quellen-Diskussionen, Feature-Requests, Bug-Reports: gerne hier im Thread oder per Mail.

---

**TL;DR:** Bose-Cloud ist tot, deine Speaker müssen es nicht sein. Diese App stellt LIR-Sources wieder her, gibt dir unbegrenzte Favoriten, Apple-Shortcuts, Widget, Watch-App, Multi-Room, Stereo-Pairing und Custom-Streaming — alles ohne Cloud-Server, NAS oder Docker.

u/nachtfux997 — 1 month ago

🚀Companion Controller for Bose SoundTouch — replacement app for the dead Bose SoundTouch Cloud ⛈

Hi all,

On May 6, 2026, Bose shut down the SoundTouch cloud servers. From that

moment on, every SoundTouch 10/20/30/Soundbar/Wave on the planet showed

"Service unavailable" or just sat silent — internet radio dead, presets

dead, the official iOS app a brick.

I'm an indie iOS dev with a few SoundTouch speakers myself. Watching

€1500+ of perfectly working hardware turn into shelf-warmers felt wrong,

so I built \*\*Companion Controller for Bose SoundTouch\*\* — a drop-in

replacement app that talks directly to the speakers, no cloud needed.

\*\*What it does:\*\*

\* Internet radio via TuneIn — \~30 countries pre-loaded, custom URLs

supported, request stations and I add them

\* Save stations to presets 1–6 (physical buttons + remote work again)

\* "Hardware buttons permanent" mode → speaker buttons keep working even

when the app is closed, as long as your iPhone is on the home Wi-Fi

\* Multi-room / "Play Everywhere" — same station synced across all your

speakers (single tap above preset 1)

\* Volume, source switching (AUX/Bluetooth/optical), Sleep Timer,

Bass/Treble

\* Works on ST10, ST20, ST30, Soundbar 300/500/520/700, Wave,

Wireless Link Adapter

\*\*Honest caveats:\*\*

\* iOS only — Android is a separate project I haven't tackled

\* macOS Catalyst version exists but is wobbly — fixing it

\* Some speaker variants without a \`LOCAL\_RADIO\` manifest key used to

fail saves; now handled in v1.9.5

\* Bose firmware locks a few things I can't override (e.g. true

stereo-pair only works on ST10)

The last 3 days have been intense. Cloud Shutdown was Tuesday — I've

shipped 5 updates (1.9.0 through 1.9.5) based on real-time user reports.

Today's 1.9.5 brought hardware preset buttons back for the last

edge-case speakers.

\*\*App Store:\*\* https://apps.apple.com/de/app/controller-f%C3%BCr-bose-soundtouch/id1052863684

€3,99 / $3,99 / £3,99 — one-time. No subscription. No ads. No tracking.

No account required.

I run a recovery community at \*\*[r/SoundTouchNoCloud](r/SoundTouchNoCloud)\*\* with setup

walkthroughs and FAQ — feel free to drop in.

Happy to answer technical questions in this thread. If you have a

SoundTouch sitting unused since Tuesday, give it a shot.

— Christian (developer)

reddit.com
u/nachtfux997 — 1 month ago

Got the SoundTouch hardware preset buttons (1–6) working again after the cloud shutdown — no phone needed

Like a lot of you, the May 6 cloud shutdown turned my SoundTouch into half a speaker. The thing I actually used every single day — walk into the kitchen, hit preset 1, morning radio plays — just died. Bose's official "fix" is to note your playlist names, re-favourite them in some other app, and AirPlay from your phone every time. That isn't the SoundTouch workflow. The whole point was not needing your phone.

So I dug into the local API Bose published when they announced the shutdown. Short version: the physical preset buttons can be made to work again. Press 1–6 on the speaker itself, music starts, phone stays in your pocket — or in another room entirely. No Bose servers involved — it all runs over your home WiFi.

Full disclosure up front: I'm the developer of Controller for Bose SoundTouch (AppProject). I'm posting because I keep seeing the same "are the presets gone forever?" question, and the answer is no — and the how is worth sharing whether or not you ever touch my app.

How it actually works:

  • The speakers still speak their local protocol over WiFi after the shutdown. The cloud was doing account sync and content discovery — not the button press itself. That part was always local; it just got orphaned when the app stopped writing to it.
  • You set the six presets once, they get written to the device, and from then on the hardware buttons recall them locally. No phone in the loop.
  • Honest caveat: whether a given preset plays depends on the source.

I

  • nternet radio resolves fine locally. Services that relied on Bose's cloud auth generally don't. So instead of letting you tap into silence, I show per-preset what will and won't work.

A few things I added beyond presets, because losing the speaker stung and I wanted it to feel useful again:

  • Alarm / sleep-timer shortcuts — power the speaker on to a chosen preset and volume at a set time (wake up to your station), and off again later.
  • local — no account, no tracking, no cloud that can be switched off on you again.

I'm not claiming it does everything the old system did. Some multiroom edge cases and certain streaming services are still limited by what Bose left behind. But the core "one tap = my radio, no phone" loop is back, and that's the part most people here said they actually missed.

Happy to answer technical questions about the local API in the comments — including for anyone building their own thing, since Bose did publish the spec. If presets are the only thing standing between you and a working speaker, they don't have to be gone.

Link to the AppStore: https://apps.apple.com/gb/app/companion-for-bose-soundtouch/id1052863684

u/nachtfux997 — 1 month ago