home-music

🏠 一键掌控全屋音乐场景

基于 AppleScript 的 macOS 全屋音乐场景控制器,整合 Spotify 与 Airfoil 实现一键切换晨间/派对/放松模式,让多房间音响管理化繁为简。

收藏
2.8k
安装
608
版本
v1.0.0
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

Home Music 是一款专为 macOS 设计的全屋音乐场景自动化工具,通过整合 Spotify 桌面应用与 Airfoil 音频路由软件,实现"一句话控制全屋音响"的体验。用户只需输入 home-music morninghome-music partyhome-music chill` 等简单命令,即可自动完成播放列表切换、目标扬声器选择、音量调节等一系列操作。

该技能采用 Bash 脚本 + AppleScript 的混合架构,底层通过 osascript 与 Airfoil 应用通信,控制音频源选择和扬声器连接,同时调用 spotify-applescript 技能管理 Spotify 的播放状态。预设场景包括:晨间模式(Sonos Move 单音箱、40% 音量、咖啡氛围)、派对模式(全屋所有音箱、70% 音量、摇滚歌单)、放松模式(单音箱、30% 音量、 lounge 音乐)以及静音模式。

显著优点

1. 极致简化操作:将原本需要 10+ 次点击的多步骤操作压缩为单一命令,大幅降低全屋音乐系统的使用门槛。
2. 场景化设计:预设模式覆盖常见生活场景,用户无需记忆复杂的设备名称和音量参数。

3. 高度可定制:支持修改播放列表 URI、添加自定义场景(如健身、晚餐)、配置任意 AirPlay 音箱,满足个性化需求。

4. 文档完善:从安装配置到故障排查,SKILL.md 提供了详尽的指导,包括直接可用的 AppleScript 代码片段供高级用户手动调试。

5. 本地优先:所有控制均在本地完成,无网络依赖,响应速度快且隐私风险极低。

潜在缺点与局限性

1. 平台锁定严重:仅支持 macOS,Windows 和 Linux 用户无法使用;依赖 AppleScript 这一苹果专有技术。
2. 外部依赖复杂:必须同时安装并运行 Spotify 桌面应用、Airfoil 商业软件以及 spotify-applescript 技能,任一环节故障都会导致整体失效。

3. 硬件成本:Airfoil 为付费软件(Rogue Amoeba 出品),且需要支持 AirPlay 的音箱设备,入门门槛较高。

4. 无远程控制能力:纯本地架构意味着无法通过手机 App 或网络远程触发场景,必须在 Mac 终端或配合 Clawdbot 使用。

5. 错误处理有限:虽然使用了 set -euo pipefail,但部分 AppleScript 调用失败时仅静默忽略(|| true),可能导致场景"部分生效"而用户无感知。

适合的目标群体

  • macOS 重度用户:已深度融入苹果生态,拥有多台 AirPlay 音箱的家庭。
  • 智能家居爱好者:追求自动化体验,愿意通过终端/语音助手控制家居环境的技术早期采用者。
  • Spotify + Airfoil 现有用户:已购买并配置好相关软件,希望进一步提升使用效率的人群。
  • 开发者/极客:具备 Bash 和 AppleScript 基础,能够根据文档自行扩展自定义场景的用户。

使用风险

1. 依赖项失效风险:Spotify 或 Airfoil 的更新可能破坏 AppleScript 接口兼容性,导致技能突然失效。
2. 音箱连接不稳定:AirPlay 设备在网络波动时可能出现连接失败,脚本虽会尝试重连但无持久化状态管理。

3. 音量突变风险:场景切换时音量可能从 30% 跳变至 70%,若用户未预期可能造成惊吓或扰民。

4. 权限累积:长期使用 osascript 控制应用可能导致系统积累大量辅助功能权限,存在潜在的权限管理混乱风险。

安全解读

核心用法

Home Music 是一款 macOS 专属的智能音乐场景管理工具,通过单一命令协调 Spotify 播放与 Airfoil 扬声器路由,实现全屋音乐一键切换。

基础命令结构:

  • home-music morning — 晨起模式(Sonos Move,40%,轻柔歌单)
  • home-music party — 派对模式(全扬声器,70%,摇滚歌单)
  • home-music chill — 放松模式(单扬声器,30%,氛围歌单)
  • home-music off — 静音模式(暂停播放,断开所有扬声器)
  • home-music status — 查看当前播放状态

工作原理: 脚本底层调用 osascript 执行 AppleScript,控制 Airfoil 连接特定 AirPlay 扬声器并调节音量,同时通过 spotify-applescript 技能触发对应 Spotify 播放列表。

显著优点

1. 操作极简:将原本需 10+ 步的操作(打开 Airfoil → 选择音源 → 连接扬声器 → 调音量 → 切歌单)压缩为单次命令
2. 场景化设计:预设三种常用模式,覆盖 80% 日常用例

3. 高度可扩展:支持自定义播放列表 URI、新增场景(如 workout、dinner)、添加任意 AirPlay 扬声器

4. 零网络依赖:纯本地执行,无云端服务,响应即时

5. 开源可审计:MIT 许可,代码透明

潜在缺点与局限性

| 限制 | 说明 |
|------|------|
| **平台锁定** | 仅限 macOS,依赖 AppleScript 与 Airfoil($35 付费软件) |
| **硬编码路径** | `SPOTIFY_CMD` 使用绝对路径 `/Users/asteinberger/...`,其他环境需手动修改 |
| **前置依赖多** | 需同时运行 Spotify 桌面版、Airfoil 及 spotify-applescript 技能 |
| **无错误恢复** | 扬声器连接失败时仅输出提示,不自动重试或降级 |
| **Spotify 限制** | 需 Premium 订阅才能通过 AppleScript 控制播放 |

适合人群

  • macOS 智能家居用户:已部署 AirPlay 扬声器网络
  • Spotify 重度用户:习惯用桌面端而非手机控制
  • 终端/自动化爱好者:追求命令行效率,愿意配置脚本
  • 派对/场景化需求者:频繁切换音乐氛围

不适合: Windows/Linux 用户、仅使用 Spotify 移动端者、无 AirPlay 设备者。

常规风险

  • 权限要求:需 chmod +xsudo ln -sf 安装,新手可能误操作
  • AppleScript 脆弱性:Airfoil 更新可能导致 AppleScript 接口变更,脚本失效
  • 扬声器名称敏感:AirPlay 设备名区分大小写,手动输入易出错
  • 音量突变风险:场景切换时若前序音量过高,可能出现瞬间爆音
  • 无播放状态校验:若 Spotify 未运行,脚本尝试执行可能报错

home-music 内容

手动下载zip · 5.4 kB
home-music.shtext/x-shellscript
请选择文件