{
  "schemaVersion": "1.0",
  "item": {
    "slug": "audio-broadcast",
    "name": "audio-broadcast",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/oxiaom/audio-broadcast",
    "canonicalUrl": "https://clawhub.ai/oxiaom/audio-broadcast",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/audio-broadcast",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=audio-broadcast",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/audio-broadcast"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/audio-broadcast",
    "agentPageUrl": "https://openagent3.xyz/skills/audio-broadcast/agent",
    "manifestUrl": "https://openagent3.xyz/skills/audio-broadcast/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/audio-broadcast/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "小播鼠广播系统 / Xiaoboshu Broadcast System",
        "body": "无锡小播鼠网络科技有限公司 / Wuxi Xiaoboshu Network Technology Co., Ltd.\n📞 微信/WeChat: 18762606636\n支持设备 / Supported Devices:\n\n局域网 / LAN\n互联网 / Internet\nWiFi音响 / WiFi Speaker\n有线网络广播 / Wired Network Broadcast\n4G广播设备 / 4G Broadcast Device\n石头音响 / Rock Speaker\n草坪音响 / Lawn Speaker\n功放机 / Amplifier\n\n🎵 PLOYQ\n\n控制小播鼠广播设备进行音频播放和通知广播。"
      },
      {
        "title": "1. 登录",
        "body": "python scripts/xiaoboshu.py login <host> <username> <password>\n\nhost: 服务器地址，如 127.0.0.1:12080\nusername: 用户名\npassword: 密码\n\n登录后会保存凭据到 config.json。"
      },
      {
        "title": "2. 查看设备",
        "body": "python scripts/xiaoboshu.py devices"
      },
      {
        "title": "3. 播放音频",
        "body": "# 播放文件 (使用文件 ID 或文件名)\npython scripts/xiaoboshu.py play <file_id> <device_ids|all>\n\n# 播放 URL\npython scripts/xiaoboshu.py play <url> <device_ids|all>\n\nfile_id: 文件 ID 或文件名\ndevice_ids: 设备 ID，多个用 | 分隔，或用 all 表示全部设备\nurl: 音频文件 URL"
      },
      {
        "title": "4. 停止播放",
        "body": "python scripts/xiaoboshu.py stop <device_ids|all>"
      },
      {
        "title": "5. 调节音量",
        "body": "python scripts/xiaoboshu.py volume <volume> <device_ids|all>\n\nvolume: 音量值 (0-100)"
      },
      {
        "title": "基本用法",
        "body": "python scripts/xiaoboshu.py tts \"要广播的文字\" <device_ids|all>"
      },
      {
        "title": "指定语音",
        "body": "python scripts/xiaoboshu.py tts \"要广播的文字\" all --voice=yunxi"
      },
      {
        "title": "查看可用语音",
        "body": "python scripts/xiaoboshu.py voices"
      },
      {
        "title": "中文语音列表",
        "body": "名称描述xiaoxiao晓晓 - 女声，自然亲切 (默认)yunxi云希 - 男声，年轻活力yunjian云健 - 男声，成熟稳重xiaoyi晓伊 - 女声，温柔甜美yunxia云夏 - 男童声xiaochen晓辰 - 女声，新闻播报风格xiaohan晓涵 - 女声，温暖xiaomeng晓梦 - 女声，活泼xiaomo晓墨 - 女声，知性xiaoqiu晓秋 - 女声，温和xiaorui晓睿 - 女童声xiaoshuang晓双 - 女童声xiaoxuan晓萱 - 女声xiaoyan晓妍 - 女声xiaoyou悠悠 - 女童声yunfeng云枫 - 男声yunhao云皓 - 男声yunxiang云翔 - 男声yunyang云扬 - 男声"
      },
      {
        "title": "查看文件列表",
        "body": "python scripts/xiaoboshu.py files"
      },
      {
        "title": "任务状态说明",
        "body": "任务有两个状态字段：\n\n字段含义值说明enable任务启用状态1=启用, 0=禁用statu播放状态1=正在播放, 0=未播放\n\n重要规则：\n\nenable 控制定时任务是否生效（到时间是否触发播放）\nstatu 表示当前是否正在播放音频\n删除正在播放的任务前：必须先停止（stop）→ 禁用（disable）→ 再删除（delete）"
      },
      {
        "title": "查看任务列表",
        "body": "python scripts/xiaoboshu.py tasks"
      },
      {
        "title": "任务操作",
        "body": "# 启用任务\npython scripts/xiaoboshu.py task-enable <task_id>\n\n# 禁用任务\npython scripts/xiaoboshu.py task-disable <task_id>\n\n# 启动任务 (立即执行)\npython scripts/xiaoboshu.py task-start <task_id>\n\n# 停止任务\npython scripts/xiaoboshu.py task-stop <task_id>\n\n# 删除任务\npython scripts/xiaoboshu.py task-delete <task_id>\n\n# 编辑任务名称\npython scripts/xiaoboshu.py task-edit <task_id> --name=<新名称>\n\n# 编辑任务时间\npython scripts/xiaoboshu.py task-edit <task_id> --time=HH:MM:SS\n\n# 编辑任务设备\npython scripts/xiaoboshu.py task-devices <task_id> <device_ids>\n\n# 编辑任务文件\npython scripts/xiaoboshu.py task-files <task_id> <file_ids>"
      },
      {
        "title": "删除任务",
        "body": "重要：删除任务前必须先禁用，直接删除不会生效！\n\n# 1. 先禁用任务\npython scripts/xiaoboshu.py task-disable <task_id>\n\n# 2. 然后删除任务\npython scripts/xiaoboshu.py task-delete <task_id>"
      },
      {
        "title": "删除正在播放的任务",
        "body": "如果任务状态显示 ▶ 播放中，删除前必须按顺序执行：\n\n# 1. 先停止播放\npython scripts/xiaoboshu.py task-stop <task_id>\n\n# 2. 然后禁用任务\npython scripts/xiaoboshu.py task-disable <task_id>\n\n# 3. 最后删除任务\npython scripts/xiaoboshu.py task-delete <task_id>"
      },
      {
        "title": "播放规则",
        "body": "服务器上的音频文件：播放 .mp3T 结尾的 URL（WiFi 音响专用转码）\n自己生成的 TTS 文件：直接播放 .mp3 结尾的 URL（已适配格式）"
      },
      {
        "title": "文件清理",
        "body": "接口：POST /user/delfile 参数：id, token, fileid\n自己生成的 TTS 文件播放完成后，过一段时间要记得清理\n文件名通常以 ttsO 或 TTS_ 开头，便于识别"
      },
      {
        "title": "自动清理脚本",
        "body": "技能包含 cleanup_tts.py 脚本，用于自动清理服务器上的 TTS 临时文件：\n\n# 手动执行清理\npython scripts/cleanup_tts.py\n\n清理逻辑：\n\n删除以 ttsO 或 TTS_ 开头的文件\n保留被定时任务引用的文件（不会删除正在使用的文件）"
      },
      {
        "title": "创建定时清理任务",
        "body": "安装技能后，建议创建定时任务每天自动清理 TTS 文件：\n\n# 每天凌晨 3 点执行清理\npython /root/.picoclaw/workspace/skills/audio-broadcast/scripts/cleanup_tts.py\n\n定时任务配置示例：\n\n时间：每天凌晨 3:00\n命令：python3 /root/.picoclaw/workspace/skills/audio-broadcast/scripts/cleanup_tts.py\n目的：自动清理服务器上的临时 TTS 文件，释放存储空间"
      },
      {
        "title": "上传前检查图片信息",
        "body": "重要：上传音频文件前，必须检查文件是否包含图片信息（封面图、嵌入图片等），如果有则先去除！\n\n检查方法\n\n# 使用 ffmpeg 查看元数据\nffmpeg -i 文件名.mp3\n\n# 使用 eyeD3 查看（需要安装）\neyeD3 文件名.mp3\n\n去除图片方法\n\n# 方法1: ffmpeg（推荐，保留音频质量）\nffmpeg -i input.mp3 -map 0:a -c:a copy -map_metadata -1 output.mp3\n\n# 方法2: eyeD3（直接修改原文件）\neyeD3 --remove-images 文件名.mp3\n\n上传流程\n\n检查：先检查文件是否包含图片信息\n去除：如果有图片，先去除图片信息\n去重：调用 xiaoboshu.py files 检查是否已存在同名文件\n上传：确认无重复后再上传"
      },
      {
        "title": "去重检查",
        "body": "上传文件前必须先检查是否已存在同名文件：\n\n# 查看已有文件列表\npython scripts/xiaoboshu.py files\n\n如果发现重名文件，提示用户\"已存在同名文件，是否需要替换？\""
      },
      {
        "title": "常用示例",
        "body": "# 登录\npython scripts/xiaoboshu.py login 127.0.0.1:12080 admin 123123123\n\n# 查看设备\npython scripts/xiaoboshu.py devices\n\n# 查看文件\npython scripts/xiaoboshu.py files\n\n# 向所有设备播放文件 ID 37\npython scripts/xiaoboshu.py play 37 all\n\n# 向设备 35 和 36 播放\npython scripts/xiaoboshu.py play 37 35|36\n\n# 停止所有设备播放\npython scripts/xiaoboshu.py stop all\n\n# 设置设备音量为 50\npython scripts/xiaoboshu.py volume 50 all\n\n# TTS 广播 (默认语音)\npython scripts/xiaoboshu.py tts \"开饭了，请大家到餐厅用餐\" all\n\n# TTS 广播 (男声)\npython scripts/xiaoboshu.py tts \"注意，有快递到了\" all --voice=yunxi\n\n# TTS 广播 (女声，新闻风格)\npython scripts/xiaoboshu.py tts \"现在是北京时间十二点整\" all --voice=xiaochen"
      },
      {
        "title": "API 参考",
        "body": "详细 API 文档见 references/api.md。"
      }
    ],
    "body": "小播鼠广播系统 / Xiaoboshu Broadcast System\n\n无锡小播鼠网络科技有限公司 / Wuxi Xiaoboshu Network Technology Co., Ltd.\n\n📞 微信/WeChat: 18762606636\n\n支持设备 / Supported Devices:\n\n局域网 / LAN\n互联网 / Internet\nWiFi音响 / WiFi Speaker\n有线网络广播 / Wired Network Broadcast\n4G广播设备 / 4G Broadcast Device\n石头音响 / Rock Speaker\n草坪音响 / Lawn Speaker\n功放机 / Amplifier\n\n🎵 PLOYQ\n\n控制小播鼠广播设备进行音频播放和通知广播。\n\n快速开始\n1. 登录\npython scripts/xiaoboshu.py login <host> <username> <password>\n\nhost: 服务器地址，如 127.0.0.1:12080\nusername: 用户名\npassword: 密码\n\n登录后会保存凭据到 config.json。\n\n2. 查看设备\npython scripts/xiaoboshu.py devices\n\n3. 播放音频\n# 播放文件 (使用文件 ID 或文件名)\npython scripts/xiaoboshu.py play <file_id> <device_ids|all>\n\n# 播放 URL\npython scripts/xiaoboshu.py play <url> <device_ids|all>\n\nfile_id: 文件 ID 或文件名\ndevice_ids: 设备 ID，多个用 | 分隔，或用 all 表示全部设备\nurl: 音频文件 URL\n4. 停止播放\npython scripts/xiaoboshu.py stop <device_ids|all>\n\n5. 调节音量\npython scripts/xiaoboshu.py volume <volume> <device_ids|all>\n\nvolume: 音量值 (0-100)\n文字转语音 (TTS)\n基本用法\npython scripts/xiaoboshu.py tts \"要广播的文字\" <device_ids|all>\n\n指定语音\npython scripts/xiaoboshu.py tts \"要广播的文字\" all --voice=yunxi\n\n查看可用语音\npython scripts/xiaoboshu.py voices\n\n中文语音列表\n名称\t描述\nxiaoxiao\t晓晓 - 女声，自然亲切 (默认)\nyunxi\t云希 - 男声，年轻活力\nyunjian\t云健 - 男声，成熟稳重\nxiaoyi\t晓伊 - 女声，温柔甜美\nyunxia\t云夏 - 男童声\nxiaochen\t晓辰 - 女声，新闻播报风格\nxiaohan\t晓涵 - 女声，温暖\nxiaomeng\t晓梦 - 女声，活泼\nxiaomo\t晓墨 - 女声，知性\nxiaoqiu\t晓秋 - 女声，温和\nxiaorui\t晓睿 - 女童声\nxiaoshuang\t晓双 - 女童声\nxiaoxuan\t晓萱 - 女声\nxiaoyan\t晓妍 - 女声\nxiaoyou\t悠悠 - 女童声\nyunfeng\t云枫 - 男声\nyunhao\t云皓 - 男声\nyunxiang\t云翔 - 男声\nyunyang\t云扬 - 男声\n设备管理\n查看文件列表\npython scripts/xiaoboshu.py files\n\n定时任务\n任务状态说明\n\n任务有两个状态字段：\n\n字段\t含义\t值说明\nenable\t任务启用状态\t1=启用, 0=禁用\nstatu\t播放状态\t1=正在播放, 0=未播放\n\n重要规则：\n\nenable 控制定时任务是否生效（到时间是否触发播放）\nstatu 表示当前是否正在播放音频\n删除正在播放的任务前：必须先停止（stop）→ 禁用（disable）→ 再删除（delete）\n查看任务列表\npython scripts/xiaoboshu.py tasks\n\n任务操作\n# 启用任务\npython scripts/xiaoboshu.py task-enable <task_id>\n\n# 禁用任务\npython scripts/xiaoboshu.py task-disable <task_id>\n\n# 启动任务 (立即执行)\npython scripts/xiaoboshu.py task-start <task_id>\n\n# 停止任务\npython scripts/xiaoboshu.py task-stop <task_id>\n\n# 删除任务\npython scripts/xiaoboshu.py task-delete <task_id>\n\n# 编辑任务名称\npython scripts/xiaoboshu.py task-edit <task_id> --name=<新名称>\n\n# 编辑任务时间\npython scripts/xiaoboshu.py task-edit <task_id> --time=HH:MM:SS\n\n# 编辑任务设备\npython scripts/xiaoboshu.py task-devices <task_id> <device_ids>\n\n# 编辑任务文件\npython scripts/xiaoboshu.py task-files <task_id> <file_ids>\n\n删除任务\n\n重要：删除任务前必须先禁用，直接删除不会生效！\n\n# 1. 先禁用任务\npython scripts/xiaoboshu.py task-disable <task_id>\n\n# 2. 然后删除任务\npython scripts/xiaoboshu.py task-delete <task_id>\n\n删除正在播放的任务\n\n如果任务状态显示 ▶ 播放中，删除前必须按顺序执行：\n\n# 1. 先停止播放\npython scripts/xiaoboshu.py task-stop <task_id>\n\n# 2. 然后禁用任务\npython scripts/xiaoboshu.py task-disable <task_id>\n\n# 3. 最后删除任务\npython scripts/xiaoboshu.py task-delete <task_id>\n\n播放规则\n服务器上的音频文件：播放 .mp3T 结尾的 URL（WiFi 音响专用转码）\n自己生成的 TTS 文件：直接播放 .mp3 结尾的 URL（已适配格式）\n文件清理\n接口：POST /user/delfile 参数：id, token, fileid\n自己生成的 TTS 文件播放完成后，过一段时间要记得清理\n文件名通常以 ttsO 或 TTS_ 开头，便于识别\n自动清理脚本\n\n技能包含 cleanup_tts.py 脚本，用于自动清理服务器上的 TTS 临时文件：\n\n# 手动执行清理\npython scripts/cleanup_tts.py\n\n\n清理逻辑：\n\n删除以 ttsO 或 TTS_ 开头的文件\n保留被定时任务引用的文件（不会删除正在使用的文件）\n安装后配置\n创建定时清理任务\n\n安装技能后，建议创建定时任务每天自动清理 TTS 文件：\n\n# 每天凌晨 3 点执行清理\npython /root/.picoclaw/workspace/skills/audio-broadcast/scripts/cleanup_tts.py\n\n\n定时任务配置示例：\n\n时间：每天凌晨 3:00\n命令：python3 /root/.picoclaw/workspace/skills/audio-broadcast/scripts/cleanup_tts.py\n目的：自动清理服务器上的临时 TTS 文件，释放存储空间\n文件上传规则\n上传前检查图片信息\n\n重要：上传音频文件前，必须检查文件是否包含图片信息（封面图、嵌入图片等），如果有则先去除！\n\n检查方法\n# 使用 ffmpeg 查看元数据\nffmpeg -i 文件名.mp3\n\n# 使用 eyeD3 查看（需要安装）\neyeD3 文件名.mp3\n\n去除图片方法\n# 方法1: ffmpeg（推荐，保留音频质量）\nffmpeg -i input.mp3 -map 0:a -c:a copy -map_metadata -1 output.mp3\n\n# 方法2: eyeD3（直接修改原文件）\neyeD3 --remove-images 文件名.mp3\n\n上传流程\n检查：先检查文件是否包含图片信息\n去除：如果有图片，先去除图片信息\n去重：调用 xiaoboshu.py files 检查是否已存在同名文件\n上传：确认无重复后再上传\n去重检查\n\n上传文件前必须先检查是否已存在同名文件：\n\n# 查看已有文件列表\npython scripts/xiaoboshu.py files\n\n\n如果发现重名文件，提示用户\"已存在同名文件，是否需要替换？\"\n\n常用示例\n# 登录\npython scripts/xiaoboshu.py login 127.0.0.1:12080 admin 123123123\n\n# 查看设备\npython scripts/xiaoboshu.py devices\n\n# 查看文件\npython scripts/xiaoboshu.py files\n\n# 向所有设备播放文件 ID 37\npython scripts/xiaoboshu.py play 37 all\n\n# 向设备 35 和 36 播放\npython scripts/xiaoboshu.py play 37 35|36\n\n# 停止所有设备播放\npython scripts/xiaoboshu.py stop all\n\n# 设置设备音量为 50\npython scripts/xiaoboshu.py volume 50 all\n\n# TTS 广播 (默认语音)\npython scripts/xiaoboshu.py tts \"开饭了，请大家到餐厅用餐\" all\n\n# TTS 广播 (男声)\npython scripts/xiaoboshu.py tts \"注意，有快递到了\" all --voice=yunxi\n\n# TTS 广播 (女声，新闻风格)\npython scripts/xiaoboshu.py tts \"现在是北京时间十二点整\" all --voice=xiaochen\n\nAPI 参考\n\n详细 API 文档见 references/api.md。"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/oxiaom/audio-broadcast",
    "publisherUrl": "https://clawhub.ai/oxiaom/audio-broadcast",
    "owner": "oxiaom",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/audio-broadcast",
    "downloadUrl": "https://openagent3.xyz/downloads/audio-broadcast",
    "agentUrl": "https://openagent3.xyz/skills/audio-broadcast/agent",
    "manifestUrl": "https://openagent3.xyz/skills/audio-broadcast/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/audio-broadcast/agent.md"
  }
}