核心用法
WiiM CLI 是一款针对 WiiM 和 LinkPlay 生态的轻量级命令行控制工具,主要面向局域网内的音频设备管理。核心功能覆盖四大场景:
1. 设备发现:通过 SSDP/UPnP 协议自动扫描局域网内的 WiiM/LinkPlay 设备,支持单设备自动识别或多设备手动指定(--host 参数)。
2. 播放控制:完整的媒体控制指令集,包括播放/暂停/停止、上一曲/下一曲、进度跳转(seek)、随机播放(shuffle)及实时状态查询。
3. 音量管理:音量查询、精确设置(0-100%)及静音切换。
4. 媒体播放:支持直接播放网络音频 URL(MP3、FLAC、M3U 流媒体等),以及调用设备本地预设(play-preset)。
显著优点
- 零配置体验:单设备环境下无需手动输入 IP,自动发现即开即用
- 跨平台轻量:基于 Python 3.11+,通过
uv工具链实现秒级安装,无 GUI 依赖 - 协议原生支持:直接对接设备 UPnP 接口,响应延迟低,不依赖厂商云服务
- 流媒体友好:
play-url支持传统广播流、自建音乐服务器等场景,补足官方 App 的短板
潜在缺点与局限性
- 网络受限:SSDP discovery 无法跨子网/VLAN,复杂网络拓扑下需手动指定 IP
- 服务边界:仅控制设备本地播放状态,无法发起 Spotify、AirPlay 等串流(需先在对应 App 中投射)
- 生态封闭:仅限 WiiM/LinkPlay 硬件,不支持 Sonos、Denon 等其他品牌
- 无持久化配置:每次命令独立执行,无设备别名管理或配置文件支持
适合人群
- 智能家居自动化爱好者(可集成 Home Assistant、cron 定时任务)
- 自建音频流媒体的极客用户(配合 M3U/网络电台使用)
- 多房间音响系统的快捷控制需求者
- 偏好终端效率、反感官方 App 冗余功能的进阶用户
常规风险
- 网络暴露风险:UPnP 控制端口若被错误映射至公网,可能导致未授权设备操控(虽概率极低)
- URL 注入隐患:
play-url若接收不可信输入,可能触发设备访问恶意地址(建议过滤输入源) - 状态同步延迟:快速连续命令可能因设备响应延迟导致状态不一致