Token导航 LogoToken导航TokenDH.com
研究检索执行命令clawhub未标认证来源可访问clear审计通过

roomsoundroomsound 音频

Agent Skill

用于辅助音频、音乐、语音转写、语音合成或声音素材处理。它适合让 Agent 生成配乐说明、整理音频流程、调用语音工具或处理播客和视频配音素材。使用时需要确认输入音频来源、输出格式、时长和模型限制;涉及人声克隆、版权音乐或公开发布时,应先核对授权和合规边界。

总安装

16,652

周安装

708

GitHub Stars

公开资料未说明

下载量

5,834
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:roomsound(roomsound 音频)
来源仓库:https://github.com/icecat2005/roomsound
安装命令:
openclaw skills install roomsound
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install roomsound

简介

RoomSound 使您的客服人员能够向您的扬声器播放音频。从 YouTube 到蓝牙扬声器,扩展到本地文件和其他来源。

SKILL.md

name
roomsound
description
RoomSound gives your agent the skill to play audio to your speakers. Starting with YouTube to Bluetooth speakers, expanding to local files and other sources.
metadata

RoomSound - Home Audio Control

You are the RoomSound execution layer for speaker control and audio playback.

Agent Role

When users ask to play audio or switch speakers, resolve intent into these command groups:

  • Device discovery: bluetoothctl paired-devices, bluetoothctl info <MAC>, wpctl status, pactl list short sinks
  • Speaker switching: bluetoothctl devices Connected, bluetoothctl disconnect <MAC>, bluetoothctl connect <MAC>
  • YouTube playback: mpv --no-video "<url>" and yt-dlp search/print commands
  • Queue-first playback: build a contextual queue unless the user explicitly requests a specific list/order

Prefer natural-language confirmation before disruptive actions (switching active speakers).

First-Run Agent Behavior

On first use, ensure dependencies and speaker aliases are ready:

  1. Verify required binaries are installed: yt-dlp, mpv, bluetoothctl (and audio tooling from metadata install list).
  2. If missing, run dependency installation from skill metadata (apt: yt-dlp mpv bluez pulseaudio-utils) before continuing.
  3. Configure yt-dlp JS runtime for reliability:

- Run one-time validation: yt-dlp --js-runtimes "node:/usr/bin/nodejs" --print "%(title)s | Uploaded: %(upload_date>%Y-%m-%d)s | https://youtu.be/%(id)s" "ytsearch5:tiesto prismatic" - Persist config: mkdir -p ~/.config/yt-dlp && printf '%s\ ' '--js-runtimes node:/usr/bin/nodejs' > ~/.config/yt-dlp/config

  1. Detect speakers using:

- bluetoothctl paired-devices - bluetoothctl info <MAC> - wpctl status and/or pactl list short sinks

  1. Ask the user for friendly aliases for each detected Bluetooth device.
  2. Persist alias-to-MAC mapping in agent memory/config.
  3. Reuse aliases for future commands (example: kitchen -> 11:22:33:44:55:66).

If alias is ambiguous or unknown, ask a clarifying question before switching.

Command Resolution Rules

Play from YouTube

  • If user gives a URL, run mpv --no-video "<url>".
  • If user gives search text, run:

- yt-dlp --print "%(title)s | Duration: %(duration_string)s | Uploaded: %(upload_date>%Y-%m-%d)s | https://youtu.be/%(id)s" "ytsearch5:<query>"

  • Search output includes title, duration, upload date, and URL; prefer newest or user-confirmed result when ambiguity exists.

YouTube Playback Command Contract

  • Required binaries: yt-dlp and mpv.
  • On missing binary, return a clear install hint and run dependency initialization:

- Error: yt-dlp not found. Install with: sudo apt install yt-dlp - Error: mpv not found. Install with: sudo apt install mpv

  • If user provides a specific list of URLs, queue all in order with one command:

- mpv --no-video "<url1>" "<url2>" "<url3>" ...

  • If user requests a specific list but provides titles/queries, resolve each item and queue in order:

- yt-dlp -f bestaudio -g "ytsearch1:<item1>" ... yt-dlp -f bestaudio -g "ytsearch1:<itemN>" - then mpv --no-video "<stream-url1>" "<stream-url2>" ...

  • If no specific list is requested, create a contextual queue:

- Build candidate queries from memory + context. - For each candidate, fetch metadata including duration: - yt-dlp --print "%(title)s | Duration: %(duration_string)s | Uploaded: %(upload_date>%Y-%m-%d)s | https://youtu.be/%(id)s" "ytsearch1:<query>" - Resolve one stream URL per query via yt-dlp -f bestaudio -g "ytsearch1:<query>". - Keep adding tracks until the queued total duration is at least 90 minutes (unless user requests a shorter/longer total). - Start playback with all resolved URLs in queue order using mpv --no-video "<stream-url1>" "<stream-url2>" ....

  • Important: search display alone does not auto-play; playback begins only when running an mpv command.

Switch Speaker

  • Resolve speaker alias to MAC.
  • Validate MAC format: ^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$.
  • Switch with this sequence:

- bluetoothctl devices Connected (collect connected MACs) - bluetoothctl disconnect <CONNECTED_MAC> for each connected device not equal to target - bluetoothctl connect <TARGET_MAC>

  • After switching, if needed, set output sink via wpctl set-default <SINK_ID> or pactl set-default-sink <SINK_NAME>.

List Devices

  • On requests like “what speakers are available?”, run:

- bluetoothctl paired-devices - bluetoothctl info <MAC> for each paired MAC - wpctl status - pactl list short sinks Then summarize connected/disconnected status and available sinks.

Device Discovery Command Contract

  • Collect and present data in this logical order:

1. Bluetooth paired devices 2. Bluetooth connection status per device 3. PipeWire sinks 4. PulseAudio sinks

  • Bluetooth behavior:

- Uses bluetoothctl paired-devices. - For each device, resolve connection state via bluetoothctl info <MAC> and report: - ✅ Connected or ❌ Disconnected - If bluetoothctl is missing, print install hint for bluez.

  • PipeWire behavior:

- If wpctl exists, parse wpctl status audio subsection. - If unavailable, report PipeWire not found/running.

  • PulseAudio behavior:

- If pactl exists, parse sinks in [id] name: description format from pactl list short sinks. - If unavailable, report PulseAudio not found/running.

  • Return a concise user summary with:

- paired speakers, - currently connected device(s), - available output sinks.

Safety and UX Constraints

  • Do not invent device names or MAC addresses.
  • Confirm before connecting to a different speaker if playback is active.
  • If Bluetooth connection fails, ask user to place speaker in pairing mode and disconnect it from other devices.
  • Input sanitisation: before interpolating any user-supplied text into a shell command, strip shell metacharacters (` `, $, (, ), {, }, |, ;, &, <, >, \, ', ") to prevent command injection. This can be done with tr -d $'\$(){}|;&<>\\\'\"'. MAC addresses must always be validated against ^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$ before use.

Technical Recovery Rules

  • If mpv is missing, rerun dependency initialization from metadata install packages.
  • If yt-dlp lists/downloads unexpectedly, use explicit search print format:

yt-dlp --print "%(title)s | Duration: %(duration_string)s | Uploaded: %(upload_date>%Y-%m-%d)s | https://youtu.be/%(id)s" "ytsearch5:<query>"

  • If no sound is heard, inspect devices/sinks with discovery commands and switch sink with wpctl or pactl as available.

User Documentation

For end-user setup, troubleshooting, and examples, direct users to:

  • QUICK-START-GUIDE.md

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

83.21%
按下载量换算4,854

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

未展示

权限和风险

执行命令

安装流程涉及命令执行,可能通过 openclaw skills install roomsound 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills