Install
openclaw skills install @huacius/sonos-netease-playbackPortable Sonos + Netease playback skill for OpenClaw environments. Use when an agent needs a standard reusable workflow to search and play a specific song to a Sonos room, preserve Sonos App metadata display, bootstrap the Python SoCo dependency, or restore the environment after migration. Suitable for packaging or sharing because it avoids machine-specific hardcoded paths and uses environment variables for workspace, wrapper, script, and venv resolution.
openclaw skills install @huacius/sonos-netease-playbackDeprecated: this skill has been superseded by
sonos-music-playback, which covers both 网易云音乐 and QQ音乐. Prefer the newer skill for fresh installs and future updates.
Use this skill as the portable, shareable version of the Sonos 网易云点播 workflow.
This skill assumes:
sonos CLI is installed and available in PATHThis skill should be designed toward simple installation:
This skill avoids machine-specific hardcoded paths by resolving from:
OPENCLAW_WORKSPACE_DIROPENCLAW_SONOS_VENVOPENCLAW_SONOS_WRAPPEROPENCLAW_SONOS_SCRIPTDefault behavior should remain simple:
$HOME/.openclaw/venvs/soco-sonos./scripts/sonos_netease_play.sh under the workspace./scripts/sonos_netease_play.py under the workspacePreferred simple install:
./skills/sonos-netease-playback-market/scripts/install.sh
Manual flow if needed:
./skills/sonos-netease-playback-market/scripts/check_env.sh
If the check fails, run bootstrap:
./skills/sonos-netease-playback-market/scripts/bootstrap_env.sh
Then use the standard playback entrypoint, for example:
./scripts/sonos_netease_play.sh --room 'Living Room' '至少还有你'
Prefer scripts/install.sh when:
Run scripts/check_env.sh when:
Run scripts/bootstrap_env.sh when:
soco is missingBootstrap will:
soco if missingBootstrap does not install the sonos CLI. If sonos is missing, install or restore it separately.
Do not call the Python playback file with system python3.
Prefer the wrapper because it pins the correct Python venv and avoids interpreter drift.
When implementing or patching the playback logic, do not replace queue playback with a direct play_uri(...) rewrite.
Correct pattern:
add_to_queue(...)play_from_queue(...)This preserves Sonos App metadata such as:
Netease search results through Sonos may contain:
Prefer a two-stage selection strategy:
First suspect linked service authorization state in Sonos App.
A reliable recovery path is usually:
First inspect whether the playback path regressed to play_uri(...).
Inspect the actual queue metadata returned by Sonos. If the search source itself does not return the desired original version, this is a source-quality limitation, not necessarily a scoring bug.
Before publishing or distributing this skill, verify:
scripts/check_env.sh returns ready=yes in a representative environmentscripts/bootstrap_env.sh can create the venv and install soco when missingPLAYINGnowPlaying.title is non-empty after playback startsscripts/install.sh
scripts/check_env.sh
scripts/bootstrap_env.sh
soco, and can generate a default playback wrapper when absent