Sobre el proyecto
Bose cerró la nube de SoundTouch, dejando a los altavoces con Bluetooth, AUX, AirPlay y zonas multihabitación, pero sin radio por internet, presets, navegación ni Alexa. Este repositorio es una habilidad de Claude Code que guía al propietario para apuntar sus altavoces a un servicio de reemplazo autoalojado y recuperar la radio y los presets. Asume un usuario no técnico: la habilidad pregunta en lugar de instruir, lee libremente y requiere confirmación antes de cambiar cualquier cosa en un altavoz.
El servicio de reemplazo es AfterTouch de gesellix (Bose-SoundTouch), al que la habilidad acredita como fuente de verdad; este repositorio es una habilidad, no un fork, e instala la imagen de contenedor publicada. Los requisitos son uno o más altavoces SoundTouch en la red local, una máquina con Docker en la misma red (NAS, Raspberry Pi, pequeña caja Linux) con una dirección estable, además de Python 3.11+, uv y Docker con el plugin de compose. El primer paso de la habilidad comprueba esto por sí mismo e informa de lo que falta con líneas de instalación.
La instalación se realiza mediante el marketplace de plugins de Claude Code:
/plugin marketplace add bitranox/soundtouch-decloud
/plugin install soundtouch-decloud
También se puede activar describiendo el problema en palabras simples, o invocándola por nombre. El flujo de trabajo se ejecuta en fases con comprobaciones: verificación de requisitos y ayuda de instalación, descubrimiento de altavoces, puesta en marcha del servicio, copia de seguridad de cada altavoz antes de cualquier cambio, reescritura de las cuatro URLs de servicio, espera de fuentes de radio, recuperación y verificación de estaciones, escritura de presets y, finalmente, prueba de reproducción escuchando en lugar de contando.
La habilidad incluye cinco archivos de referencia y cuatro scripts. Cada script imprime un sobre JSON y usa códigos de salida consistentes (0 sí, 1 no, 2 no se pudo determinar); cualquier cosa que cambie un altavoz requiere un --confirm explícito, por lo que las operaciones de solo lectura son siempre seguras. Los scripts cubren comprobaciones previas, validación de Docker/compose y salud del servicio, descubrimiento de red, incorporación a través del puerto SSH de diagnóstico con reescritura de URL y reinicio, y copia de seguridad/cosecha/validación/comprobación/restauración/relativización de presets.
La documentación señala modos de fallo fáciles de diagnosticar erróneamente: el networking bridge parece instalado pero no descubre nada (se requiere networking de host); reescribir solo la URL de cuenta produce un altavoz que se registra y sincroniza pero no reproduce nada; el orden de escritura de URL es crítico porque persistir antes de escribir guarda valores antiguos mientras los comandos responden OK; las URLs de flujo crudas en presets se aceptan pero nunca se reproducen, por lo que los presets usan la forma relativa de AfterTouch; un servicio copiado mantiene la dirección antigua mediante server_url en settings.json; y una dirección de servicio asignada por DHCP rompe todos los altavoces a la vez más tarde.
La recuperación de estaciones es un proceso de cuatro pasos: cosechar URLs de flujo de presets pre-migración (el servicio no las conserva, por lo que la copia de seguridad se ejecuta primero), preguntar al propietario si aún se quiere la lista de estaciones antigua, investigar las estaciones restantes para endpoints de flujo directo actuales y validar desde el host del servicio. La validación informa por botón: audio, playlist, hls, no-audio, muerto o faltante. Los documentos señalan que las estaciones se mueven y mueren, y que las playlists .m3u pueden pasar una comprobación de audio ingenua sin contener audio.
Para la operación continua, la habilidad añade una instantánea fuera del servicio de los presets de cada altavoz, una restauración única y una comprobación de solo lectura adecuada para alarmas programadas. Deliberadamente no instala nada que escriba por sí solo, ya que AfterTouch v0.137.0 comparte presets entre altavoces en una cuenta. Los documentos citan datos medidos: un bucle de restauración de dos minutos durante 18,7 días hizo 11692 ejecuciones y escribió presets una vez, y un altavoz WiFi dormido produjo 1303 lecturas ilegibles sin quedarse nunca sin presets. La alarma distingue presets faltantes de un altavoz que no responde.
Los scripts usan solo la biblioteca estándar para que se ejecuten en una máquina sin nada instalado; pytest es la única dependencia de prueba. Un verificador de convenciones del repositorio valida manifiestos, frontmatter de habilidades, cobertura de pruebas de los scripts incluidos y finales de línea, con CI en Linux, Windows y macOS. Licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.