# Bose uśmiercił Twój SoundTouch. Oto jak to naprawić

_To nie Ty go zepsułeś. Zrobił to Bose. Oto rozwiązanie – i dlaczego w ogóle nie powinieneś musieć tego robić._

---

Mam SoundTouch 20. Solidny sprzęt, lata codziennego użytku, a od 6 maja przyciski programowalne (presety) już nie działają. W tym wpisie wyjaśniam, co dokładnie się zepsuło i dlaczego, a następnie pokazuję krok po kroku, jak przywrócić głośnik do życia za pomocą [AfterTouch](https://github.com/gesellix/Bose-SoundTouch), bezpłatnego zestawu narzędzi open-source, który zastępuje wszystko, co dawniej obsługiwały serwery Bose. Brak chmury, brak konta Bose, żadna aplikacja nie jest wymagana. Przetestowano na SoundTouch 20; proces jest taki sam lub bardzo podobny we wszystkich modelach SoundTouch: 10, 30, Portable oraz systemach kina domowego.

## Problem architektury

Każdy z sześciu przycisków programowalnych na urządzeniu nie przechowuje linku do tego, co ma odtwarzać. Ich naciśnięcie wysyła żądanie do serwerów Bose z pytaniem, co strumieniować. Bez odpowiedzi serwera nic nie gra. Nigdy nie było sposobu na lokalne działanie.

Bose wiedział o tym, gdy wprowadzał produkt na rynek i nigdy tego nie ujawnił. Przez ponad dekadę sprzedawali urządzenie "wciśnij przycisk i słuchaj" z ukrytą zależnością od serwera, o której klienci nie mogli wiedzieć. [Consumer Rights Wiki](https://consumerrights.wiki) – które śledzi antykonsumenckie praktyki w technologiach konsumenckich – udokumentowało to jako wyraźny przykład niejawnej zależności od chmury prowadzącej do funkcjonalnej utraty zakupionego sprzętu.

W październiku 2025 roku Bose ogłosił, że serwery zostaną wyłączone. Pod presją klientów przedłużyli termin z 18 lutego do 6 maja 2026 r. Opublikowali również [dokumentację Web API SoundTouch](https://assets.bosecreative.com/m/496577402d128874/original/SoundTouch-Web-API.pdf) – chociaż społeczność już wcześniej w dużej mierze udokumentowała ten lokalny interfejs urządzenia, a publikacja Bose wydaje się niewiele zmieniać poza numerem wersji. Co ważniejsze, obejmuje ona API urządzenia na porcie 8090, a nie punkty końcowe po stronie chmury, od których faktycznie zależą przyciski programowalne. Tych Bose nigdy nie udokumentował. Społeczność musiała [przeprowadzić ich inżynierię wsteczną](https://www.gesellix.net/posts/aftertouch-bose-soundtouch/).

Oficjalnym obejściem od Bose jest zapisanie stacji jako ulubionych w poszczególnych aplikacjach muzycznych i przesyłanie strumieniowe stamtąd. To nie jest prawdziwy zamiennik dla fizycznych przycisków programowalnych – wymaga wyjęcia telefonu, otwarcia odpowiedniej aplikacji i każdorazowego nawigowania do odpowiedniego miejsca.


## Co nadal działa

| Funkcja | Status |
| -------------------------------- | -------------------- |
| Odtwarzanie Bluetooth | ✅ Działa |
| Wejście AUX | ✅ Działa |
| AirPlay / Spotify Connect / UPnP | ✅ Działa |
| Przyciski programowalne (1–6) | ❌ Już nie działa |
| TuneIn / Pandora / iHeartRadio | ❌ Już nie działa |
| Przeglądanie muzyki w aplikacji SoundTouch | ❌ Już nie działa |

Nadal możesz odtwarzać dźwięk, po prostu za każdym razem potrzebujesz telefonu. Fizyczne przyciski, coś, co pozwalało na używanie głośnika bez telefonu, przestały działać.


## Rozwiązanie: AfterTouch

[AfterTouch](https://github.com/gesellix/Bose-SoundTouch) to darmowy zestaw narzędzi open-source stworzony przez programistę [Tobiasa Gesellchena](https://www.gesellix.net/posts/aftertouch-bose-soundtouch/), który emuluje usługi chmurowe Bose w sieci lokalnej. Gdy twój głośnik zostanie skierowany na AfterTouch zamiast na serwery Bose, przyciski programowalne znów zaczną działać – wraz z wyszukiwaniem TuneIn oraz wewnętrznym zarządzaniem kontem i urządzeniem, którego oczekuje głośnik.

Rozwiązanie to jest dostarczane jako pojedynczy plik binarny bez środowiska uruchomieniowego do instalacji, a poniższe kroki wymagają jedynie podstawowej znajomości korzystania z terminala.

AfterTouch musi działać na maszynie, która jest zawsze włączona. Sprawdzi się Raspberry Pi, serwer NAS lub dowolny zawsze włączony domowy serwer. Nie wymaga to wielu zasobów, ponieważ głównie udostępnia link do miejsca, z którego głośnik ma odtwarzać muzykę. W planach jest ostateczne uruchomienie AfterTouch bezpośrednio na samym sprzęcie SoundTouch, co uczyniłoby całą konfigurację samowystarczalną, ale to wykracza poza zakres tego artykułu.

AfterTouch opiera się na [SoundCork](https://github.com/deborahgu/soundcork), serwerze w języku Python, pierwotnie napisanym przez Deborah Gu, która jako pierwsza złamała protokół chmury Bose. AfterTouch rozszerza go o interfejs webowy, automatyczne wykrywanie urządzeń, obsługę Docker oraz kreator migracji. Pełna dokumentacja jest dostępna na stronie [gesellix.github.io/Bose-SoundTouch](https://gesellix.github.io/Bose-SoundTouch/). Ten przewodnik pokaże ci, jak skonfigurować AfterTouch, przeprowadzić migrację głośnika i zaprogramować przyciski z własnymi stacjami.

**Czego potrzebujesz:**

- Raspberry Pi, serwer NAS lub dowolny komputer, który jest zawsze włączony w domu
- Zainstalowany na nim Docker
- Twój głośnik SoundTouch i sieć domowa


### Krok 1: Uruchom AfterTouch

Najprostszą metodą jest użycie platformy Docker. Na zawsze włączonej maszynie:

```sh
docker run -d \
  --name soundtouch-service \
  --network host \
  --restart unless-stopped \
  -v $(pwd)/AfterTouch-Data:/app/data \
  ghcr.io/gesellix/bose-soundtouch:latest
```

> **Linux:** `--network host` pozwala AfterTouch na automatyczne wykrywanie głośnika za pośrednictwem Multicast. Na macOS lub Windows, zamiast tego użyj `-p 8000:8000 -p 8443:8443` i ręcznie dodaj adres IP swojego głośnika w interfejsie.

Lub jeśli wolisz Docker Compose:

```yaml
services:
  soundtouch-service:
    image: ghcr.io/gesellix/bose-soundtouch:latest
    container_name: soundtouch-service
    network_mode: host
    volumes:
      - ./AfterTouch-Data:/app/data
    restart: unless-stopped
```

Po uruchomieniu otwórz `http://<IP-twojej-maszyny>:8000` w przeglądarce. AfterTouch zacznie skanować urządzenia SoundTouch w twojej sieci. Odtwarzanie z Bluetooth i AUX działa bez względu na to, czy AfterTouch jest uruchomiony, czy nie – w ogóle nie korzystają z sieci.

{{< figure
src="AfterTouch-page.jpg"
alt="Zrzut ekranu interfejsu sieciowego AfterTouch wyświetlający listę wykrytych urządzeń Bose SoundTouch w sieci lokalnej"
caption="Interfejs sieciowy AfterTouch pokazujący wykryte urządzenia"
>}}

### Krok 2: Migruj swój głośnik

Twój głośnik pojawi się w zakładce Devices (Urządzenia). Kliknij **Migrate** (Migruj).

AfterTouch automatycznie dobierze najlepszą metodę dla twojego modelu. W przypadku większości urządzeń SoundTouch, w tym SoundTouch 20, używa on **metody telnet**: głośnik ma wewnętrzny port diagnostyczny (port 17000), który umożliwia przekierowanie adresów URL serwera bez otwierania urządzenia ani włączania SSH. Istnieje również metoda USB SSH dla niektórych modeli, ale telnet działa bez ingerencji w sprzęt. Na SoundTouch 20 i tak nie udało mi się uruchomić SSH.

AfterTouch połączy się z portem diagnostycznym, przekieruje wszystkie adresy URL serwera do twojej lokalnej instancji i ponownie uruchomi głośnik. Po ponownym uruchomieniu głośnik loguje się do twojego serwera zamiast do serwera Bose. Przyciski programowalne będą reagować, ale po migracji miejsca te są puste – musisz je zaprogramować.

[Przewodnik migracji AfterTouch](https://gesellix.github.io/Bose-SoundTouch/guides/MIGRATION-GUIDE.html) opisuje każdy model i przypadek brzegowy, jeśli napotkasz jakiekolwiek problemy.

{{< figure
  src="AfterTouch-migrate.jpg"
    alt="Zrzut ekranu z pomyślnej migracji urządzenia na interfejsie AfterTouch dla modelu SoundTouch 20"
    caption="Ekran sukcesu migracji AfterTouch"
>}}

W przyszłości głośniki nie będą otrzymywać aktualizacji oprogramowania ani aktualizacji zabezpieczeń. Bose zaleca trzymanie ich w prywatnej sieci chronionej firewallem, co i tak jest rozsądną poradą.

Jeśli konfigurujesz głośnik, który został przywrócony do ustawień fabrycznych lub nigdy nie był połączony z siecią Wi-Fi, nie potrzebujesz do tego aplikacji SoundTouch. Podczas konfiguracji głośnik udostępnia własny punkt dostępu (Access Point); połączenie z nim otwiera stronę internetową, na której możesz bezpośrednio wprowadzić dane uwierzytelniające Wi-Fi.


#### Jak to właściwie działa

Twój głośnik SoundTouch posiada plik konfiguracyjny, w którym znajdują się adresy URL serwerów, do których dzwoni z prośbą o różne funkcje — wyszukiwanie w TuneIn, zarządzanie kontem (wewnętrznie określane jako „Marge”), aktualizacje oprogramowania („BMX”) i tak dalej. Fabrycznie wszystkie te adresy wskazują na `*.bose.com`.

Migracja przepisuje te adresy URL tak, aby wskazywały na twoją instancję AfterTouch. Od tego momentu, po naciśnięciu przycisku programowalnego 1, głośnik pyta Twój serwer, co ma odtwarzać. AfterTouch sprawdza, co skonfigurowałeś dla pozycji 1, i mówi głośnikowi, aby to przesłał strumieniowo. Głośnik pobiera dźwięk bezpośrednio ze stacji radiowej. Bose jest całkowicie poza grą.

Jedyną rzeczą, która opuszcza twoją sieć domową, jest sam strumień audio, trafiający prosto na serwery stacji – tak samo, jak zawsze to robił.


### Krok 3: Znajdź adresy URL stacji

Po migracji miejsca na pozycje są puste. Do każdego przycisku przypisujesz adres URL streamu (strumienia). To jest naprawdę uwalniająca część: nie jesteś już ograniczony do tego, co zawierała starannie dobrana lista usług Bose. Każdy publicznie dostępny strumień audio działa.

**Opcja A: Bezpośrednie adresy URL streamu (zalecane)**

Większość stacji radiowych publikuje surowy adres URL transmisji strumieniowej na swojej własnej stronie internetowej — poszukaj opcji „Słuchaj na żywo” lub „Stream”, często zakopanej w stopce — lub za pośrednictwem [radio-browser.info](https://www.radio-browser.info), katalogu utrzymywanego przez społeczność, obejmującego dziesiątki tysięcy stacji na całym świecie. Adresy URL transmisji strumieniowej zwykle kończą się na `.mp3`, `.aac` lub `/stream`.

To jest najbardziej trwała opcja, ponieważ nie ma nic pomiędzy Tobą a stacją. Jeśli stacja kontynuuje nadawanie, URL wciąż działa. Bez Bose, bez TuneIn, nic pomiędzy.

**Opcja B: Identyfikatory stacji TuneIn**

AfterTouch zawiera warstwę emulacji TuneIn. W moich testach zarówno bezpośrednie adresy URL streamu, jak i identyfikatory stacji TuneIn działały niezawodnie. Aby użyć stacji TuneIn, wyciągnij identyfikator z adresu URL stacji:

```
https://tunein.com/radio/Example-FM-s112738/
```

`s112738` na końcu to ID stacji. Przekaż go za pomocą `--source TUNEIN`, jak pokazano w kroku 4. Biorąc to pod uwagę, sam TuneIn jest usługą z własnym ryzykiem dotyczącym długoterminowego istnienia, więc jeśli tylko możesz, używaj bezpośrednich adresów URL transmisji strumieniowej.

### Krok 4: Zaprogramuj przyciski

AfterTouch jest dostarczany wraz z programem `soundtouch-cli` służącym do lokalnego sterowania głośnikiem. Będziesz potrzebować [zainstalowanego Go](https://go.dev/dl/), aby go uzyskać, lub pobrać gotowy plik binarny bezpośrednio z [strony wydań](https://github.com/gesellix/Bose-SoundTouch/releases) dla Linuksa, macOS lub Windows.

**Instalacja z użyciem Go:**

```sh
go install github.com/gesellix/bose-soundtouch/cmd/soundtouch-cli@latest
```

Znajdź IP swojego głośnika w interfejsie internetowym AfterTouch lub na liście urządzeń routera, a następnie:

**Odkryj swoje urządzenie:**

```sh
soundtouch-cli discover devices
```

**Zaprogramuj stację — bezpośredni adres URL streamu:**

```sh
soundtouch-cli --host 192.168.1.50 preset store \
  --slot 1 \
  --source LOCAL_INTERNET_RADIO \
  --location "http://stream.example.com/live.mp3" \
  --name "Example Radio"
```

**Zaprogramuj stację — identyfikator stacji TuneIn:**

```sh
soundtouch-cli --host 192.168.1.50 preset store \
  --slot 2 \
  --source TUNEIN \
  --location "/v1/playback/station/s112738" \
  --name "Example FM"
```

**Sprawdź, czy wszystko zostało zapisane:**

```sh
soundtouch-cli --host 192.168.1.50 preset list
```

Wciśnij przycisk 1 na fizycznym głośniku. Odtwarzanie powinno się rozpocząć w ciągu kilku sekund.

Pełne informacje o CLI — strefy multiroom, skrypty, integracje inteligentnego domu — znajdziesz pod adresem [gesellix.github.io/Bose-SoundTouch](https://gesellix.github.io/Bose-SoundTouch/).


## Home Assistant i Inteligentny Dom

Jeśli miałeś już SoundTouch w Home Assistant i korzystałeś z integracji UPnP, powinno to nadal działać bez żadnych zmian. UPnP działało lokalnie tak samo jak wcześniej.

## Inne opcje

AfterTouch nie jest jedynym projektem, który z tego wyrósł. [ÜberBöse](https://github.com/julius-d/ueberboese-api) — po niemiecku „najwyższe zło”, co jest trafne — oferuje natywną obsługę uwierzytelniania Spotify OAuth i posiada [aplikację na Androida na F-Droid](https://f-droid.org/packages/io.github.juliusd.ueberboese.app/). Zanim Bose odłączył zasilanie, istniało wiele działających zamienników. Społeczność wyprzedziła ten ostateczny termin.

## Szerszy kontekst

Sprzęt działa. Oprogramowanie działa. Tym, co zawiodło, była nieujawniona, celowa zależność od zdalnego serwera w zakresie tak podstawowym, jak wywoływanie ustawień (presetów) — zależność, w której nigdy nie zapewniono lokalnego wsparcia zapasowego, której nigdy nie ujawniono kupującym i która ostatecznie została zakończona z kilkumiesięcznym wyprzedzeniem.

Debata nad prawem do naprawy tradycyjnie koncentrowała się na możliwościach naprawy sprzętu: prawie do otwarcia urządzenia, wymiany części, czy pozyskiwania komponentów. Jednak ta sama zasada dotyczy oprogramowania. Jeśli urządzenie jest sprawnym sprzętem z działającym oprogramowaniem sprzętowym, konsumenci powinni mieć istotne prawo do dalszego korzystania z niego, nawet po tym, jak producent uzna, że koszty utrzymania serwera nie są tego warte. To, co Bose zrobił w tym przypadku — wbudowanie ukrytej zależności od chmury, sprzedawanie produktu przez dziesięć lat, a następnie wyłączenie serwerów — jest programowym odpowiednikiem budowy samochodu, którego komponent przestaje działać w momencie, gdy zamyka się salon samochodowy.

Społeczność naprawiła ten problem. Garstka programistów w swoim wolnym czasie dokonała inżynierii wstecznej protokołu chmury i stworzyła działające zamienniki jeszcze przed upływem terminu. To dobry wynik. Jednak nie powinno to być w ogóle konieczne.

Jeśli chcesz śledzić więcej takich przypadków, [Consumer Rights Wiki](https://consumerrights.wiki) śledzi ten schemat w całej branży – sprzęt zależny od chmury, planowane starzenie się urządzeń oraz firmy, które za tym stoją.
