gesellix/Bose-SoundTouch

GitHub: gesellix/Bose-SoundTouch

为即将关闭云服务的 Bose SoundTouch 设备提供本地替代服务器和完整控制工具链,使设备在脱离官方云端后仍可正常使用。

Stars: 103 | Forks: 7

# Bose SoundTouch 工具包 [![Go 参考](https://pkg.go.dev/badge/github.com/gesellix/bose-soundtouch.svg)](https://pkg.go.dev/github.com/gesellix/bose-soundtouch) [![Go 报告卡](https://goreportcard.com/badge/github.com/gesellix/bose-soundtouch)](https://goreportcard.com/report/github.com/gesellix/bose-soundtouch) [![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ## 背景:云服务关闭 Bose 将在 **2026 年 5 月 6 日** 关闭 SoundTouch 云服务。在此之后,音乐服务浏览、预设同步以及官方 SoundTouch 应用都将停止工作。本工具包能让您的扬声器继续保持完整的功能。 有关完整详情,请参阅[生存指南](https://gesellix.github.io/Bose-SoundTouch/guides/SURVIVAL-GUIDE.html)。 ## 工具 ### soundtouch-service — AfterTouch 一个用于替代 Bose 云的本地服务器(“AfterTouch”)。一旦您的扬声器被重定向至该服务器,您将获得完全的控制权,而不再依赖任何 Bose 云服务。内置的 Web UI(位于 `http://localhost:8000`)可处理所有设置——无需任何配置文件即可开始使用。 如果您想为此运行一个服务器——没问题。该服务非常小巧,甚至可以直接在 SoundTouch 设备上运行。有关操作说明,请参阅[设备端安装程序](./scripts/on-device-install/README.md)。 **两种场景:** **关闭前 — 迁移现有设置** 在 Bose 云仍在运行时,使用 `soundtouch-backup` 保存您的账户数据。本地服务的 Web UI 将协助您进行迁移,以便您的扬声器保留其预设和凭据。 **关闭后或恢复出厂设置后 — 全新开始** 创建一个本地账户,配置您的扬声器,并立即开始使用。无需任何 Bose 基础设施。 **重定向您的扬声器** 该服务需要在您的本地网络上拥有一个稳定的地址(例如 `soundtouch.fritz.box` 或 `soundtouch.local`)。然后必须重定向扬声器,使其将 Bose 云主机名解析为该地址。支持以下两种方法: | 方法 | 工作原理 | 备注 | |--------------|-------------------------------------|--------------------------------------------------------------| | XML 重定向 | 通过 Web API 上传配置 XML | 精准控制;仅覆盖已注册的 endpoint;最适合测试 | | DNS/DHCP | 在您的网络上提供自定义 DNS | 一次覆盖所有设备;需要端口 53 和 TLS | Web UI 会引导您完成每种方法的配置。DNS 重定向需要 HTTPS——该服务会管理其自身的 CA 证书,Web UI 会指导您如何在每台扬声器上信任该证书。 **通过 U 盘启用 SSH** 某些设置步骤需要对扬声器进行 SSH 访问。每台设备只需启用一次:在 FAT 格式的 USB 闪存驱动器上创建一个名为 `remote_services` 的文件(该驱动器可能需要设置可启动标志——请参阅 [SoundCork issue #172](https://github.com/deborahgu/soundcork/issues/172)),并在扬声器开机时插入。重启后,即可使用无密码的 root SSH 访问。 有关分步说明,请参阅[设备初始设置](https://gesellix.github.io/Bose-SoundTouch/guides/DEVICE-INITIAL-SETUP.html)和[迁移指南](https://gesellix.github.io/Bose-SoundTouch/guides/MIGRATION-GUIDE.html)。 ### soundtouch-backup 在云服务关闭之前,备份您的 Bose 云账户(预设、已配对设备、音乐源)以及每台扬声器的本地状态。运行 `soundtouch-backup all` 即可一步捕获所有数据;它会先通过 Bose 云进行身份验证,然后通过本地网络轮询每台已配对的扬声器。 有关用法请参阅 [soundtouch-backup README](cmd/soundtouch-backup/README.md)。 ### soundtouch-cli 用于控制任何 SoundTouch 设备的命令行工具:播放/暂停/音量、预设、音源选择、多房间区域、设备发现等。完全通过本地网络运行——不依赖云服务。非常适合脚本编写和家庭自动化。 有关完整用法请参阅 [CLI 参考](https://gesellix.github.io/Bose-SoundTouch/guides/CLI-REFERENCE.html)。 ### soundtouch-web 一个用于设备控制的独立 Web UI——播放、暂停、音量、预设选择、实时状态——由本地 Go 二进制文件提供服务。当您想要一个独立于设置/管理 UI 的专用设备控制界面时,它可以作为 `soundtouch-service` 的补充。 有关用法请参阅 [soundtouch-web README](cmd/soundtouch-web/README.md)。 ### Go 库 `pkg/client` 为所有 SoundTouch 设备 endpoint 提供了一个 Go API:媒体控制、音量、预设、音源、区域、实时 WebSocket 事件以及设备发现。使用它来构建您自己的集成。 ``` go get github.com/gesellix/bose-soundtouch ``` 有关文档,请参阅 [API 参考](https://gesellix.github.io/Bose-SoundTouch/reference/API-ENDPOINTS.html)和 [pkg.go.dev](https://pkg.go.dev/github.com/gesellix/bose-soundtouch)。 ## 文档 - [入门指南](https://gesellix.github.io/Bose-SoundTouch/guides/GETTING-STARTED.html) - [生存指南](https://gesellix.github.io/Bose-SoundTouch/guides/SURVIVAL-GUIDE.html) - [迁移指南](https://gesellix.github.io/Bose-SoundTouch/guides/MIGRATION-GUIDE.html) - [设备初始设置](https://gesellix.github.io/Bose-SoundTouch/guides/DEVICE-INITIAL-SETUP.html) - [迁移与安全指南](https://gesellix.github.io/Bose-SoundTouch/guides/MIGRATION-SAFETY.html) - [CLI 参考](https://gesellix.github.io/Bose-SoundTouch/guides/CLI-REFERENCE.html) - [SoundTouch 服务指南](https://gesellix.github.io/Bose-SoundTouch/guides/SOUNDTOUCH-SERVICE.html) - [HTTPS 与 CA 设置](https://gesellix.github.io/Bose-SoundTouch/guides/HTTPS-SETUP.html) - [API 参考](https://gesellix.github.io/Bose-SoundTouch/reference/API-ENDPOINTS.html) ## 相关项目 - **[SoundCork](https://github.com/deborahgu/soundcork)** (Deborah Kaplan 等人) — Python 服务拦截;开创了本项目所基于的云仿真方法 - **[SoundCork 斯德哥尔摩应用](https://github.com/krahl/soundcork-stockholm-app)** — SoundCork 的配套应用 - **[SoundTouch Plus](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus)** (Todd Lucas) — Home Assistant 集成;包含大量未公开的 API 文档 - **[ÜberBöse API](https://github.com/julius-d/ueberboese-api)** (Julius) — API 研究与高级 endpoint 发现 - **[Bose SoundTouch Hook](https://github.com/CodeFinder2/bose-soundtouch-hook)** (Adrian Böckenkamp) — 用于逆向工程设备内部结构的 `LD_PRELOAD` hooking ## 支持 - 错误报告:[GitHub Issues](https://github.com/gesellix/bose-soundtouch/issues/new) - 问题与讨论:[GitHub Discussions](https://github.com/gesellix/bose-soundtouch/discussions) 如果您觉得这个项目有用,请给它 **加星** ⭐! ## 许可证 MIT — 详见 [LICENSE](LICENSE)。 SoundTouch 是 Bose Corporation 的商标。
标签:Bose, EVTX分析, Go语言, IoT管理, MIT许可, SoundTouch, 云端替代, 内存分配, 家庭音响系统, 局域网控制, 底层编程, 开源, 数据保存, 日志审计, 智能家居, 智能家居自动化, 服务迁移, 本地服务器, 物联网, 物联网设备控制, 程序破解, 网络设备重定向, 设备备份, 音频设备