mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-21 18:16:14 +00:00
Introduces a standalone `soundtouch-backup` CLI with three subcommands: - `all`: authenticates with the Bose cloud, backs up account data, then reads device IPs from devices.xml and backs up each reachable speaker - `cloud`: fetches account profile, devices, sources, presets, and full endpoint from streaming.bose.com - `local`: backs up each speaker via HTTP API (12 endpoints) and optionally via SSH (individual files + /opt/Bose/etc/ and /mnt/nv/BoseApp-Persistence/1/ directories) Also centralises pkg/service/ssh → pkg/ssh so both the service and the backup tool share the same SSH client; adds ReadFile and ReadDir methods, and handles the firmware quirk where cat exits 1 on empty files. Output is a single dated .tar.gz or .zip archive. Example flow: ```shell gesellix@Mac Bose-SoundTouch % go run ./cmd/soundtouch-backup all --output _/cloud-backup --email user@example.com Password: Authenticating as user@example.com... ✓ Authenticated (account ID: 1234567) ✓ email address (107 bytes) ✓ devices (1492 bytes) ✓ sources (1111 bytes) ✓ presets (2585 bytes) ✓ full account (55037 bytes) Found 2 device(s) in cloud account, attempting local backup... ✓ ST20: 12 files via HTTP ⚠ ST20: SSH skipped /etc/remote_services (Process exited with status 1) ⚠ ST20: SSH empty file /mnt/nv/remote_services ✓ ST20: 64 files via SSH ✓ ST10: 12 files via HTTP ⚠ ST10: SSH empty file /etc/remote_services ⚠ ST10: SSH skipped /mnt/nv/remote_services (Process exited with status 1) ✓ ST10: 48 files via SSH Archive written: _/cloud-backup/soundtouch-backup-2026-05-02.tar.gz (141 files) ``` --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
4.5 KiB
4.5 KiB
Table of Contents
User Guides
- Cloud Shutdown Survival Guide
- Self-Hosting AfterTouch
- Connecting Music Services
- Migration & Safety Guide
- CLI Reference
- Backup Tool
- Getting Started
- SoundTouch Service
- Initial Device Setup
- Device Setup Flow
- MAC Address Mapping
- HTTPS Setup
- Deployment
- Raspberry Pi Guide
- Troubleshooting
- IoT Implementation Guide
- Migration Guide
- MQTT Integration Design
- Useful Links
Useful Links
Technical Reference
- API Cookbook
- API Endpoints
- Spotify Account Addition
- Cloud API Emulation
- System Endpoints
- Speaker Endpoint
- WebSocket Events
- Discovery
- Zone Management
- Preset Management
- Source Selection
- Volume Controls
- RadioBrowser
- Bass Controls
- Key Controls
- Feature Mapping
Concepts
Analysis & Research
- API Coverage Analysis
- Supported URLs
- Upstream URLs
- Anonymization Summary
- Device Redirect Methods
- Wiki API Comparison
- IoT Config Summary
- IoT Configuration Analysis
- Bose Lab Runbook
- Missing Routes Spotify
- Bose App ADB Emulator
- Community Tools
Parity Analysis
Appendix (Other Documents)
- External Services Abstraction
- API Navigation Reference
- Claude Instructions
- Content Selection Implementation
- Device Customization Setup
- Device Logging
- Feature History
- Host/Port Parsing
- Manual Network Discovery
- Navigation Guide
- Official API Verification
- Preset Quickstart
- Project Patterns
- Service Availability Implementation
- SoundTouch Service Announcement
- Undocumented Community Features
- Unimplemented Endpoints
- Preset Store
- SCMUDC Enrichment Implementation
- Device Lifecycle and Power On Enhancement
- Device Lifecycle Summary
- Power On Implementation Guide
- SCMUDC Events Analysis
- Parity Improvements
- Parity SoundCork