通过 Demo‑Slap API 将 Demo 转换为 CS2 高光片段和 Fragmovie,支持可选的Leetify 集成,若无记录则回退使用 Demo‑Slap 赛史进行选择
Demo-Slap Highlight Skill.是一项面向实际任务的技能,主要用于Generate MP4 演示中的亮点和 fragmovies. 此技能是为OpenClaw 环境设计的,其中背景工作,本地助手脚本,以及聊天意识。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
从 CS2 录像(demo)中生成 MP4 高光片段与精彩集锦(fragmovie)。
该技能专为 OpenClaw 环境设计,支持后台任务、本地辅助脚本及上下文感知的聊天消息交付。使用 Python 3 编写的脚本,并通过 requests 包调用 HTTP API。
预期运行时输入参数:
DEMOSLAP_API_KEYLEETIFY_API_KEYDEMO_SLAP_WATCHDOG_JOB_ID所有脚本均需相对于技能根目录执行,通常位于 scripts/ 目录下。
| 脚本 | 用途 |
|---|---|
demo_slap_matches.py |
列出 Demo-Slap /public-api/matches 接口返回的近期对局 |
demo_slap_resolve.py |
根据索引尝试从 Demo-Slap 对局历史中解析回放/录像 URL;若 API 仅返回 jobId 则明确报错 |
demo_slap_match_pick.py |
按索引选取一条 Demo-Slap 对局,返回结构化对局信息(含 jobId) |
demo_slap_analyze.py |
提交 demo 进行分析,轮询直至完成,输出高光片段 JSON 数据 |
demo_slap_render.py |
渲染一个或多个高光片段,轮询直至完成,输出视频片段 URL |
demo_slap_common.py |
共享工具模块(配置管理、API 调用、状态维护等) |
| 脚本 | 用途 |
|---|---|
leetify/leetify_matches.py |
列出近期对局 |
leetify/leetify_resolve.py |
根据用户名 + 对局索引解析回放 URL |
leetify/leetify_save_id.py |
保存用户名 → Steam64 ID 映射关系 |
leetify/leetify_common.py |
Leetify 共享工具模块 |
LEETIFY_API_KEY 可用时,优先使用 Leetify 发现近期对局。LEETIFY_API_KEY,但 DEMOSLAP_API_KEY 可用,则使用 Demo-Slap 的 /public-api/matches 接口获取对局历史。https://api-doc.demo-slap.net/以下文件可作为可选的本地运行时状态,在执行过程中使用:
data/state.jsondata/highlights.jsondata/history.logdata/steam_ids.jsondata/config.json这些文件仅为本地运行提供辅助支持,非理解或检查技能包本身所必需。
state.json 用于追踪当前操作状态:
{
"status": "idle|analyzing|rendering|done|error",
"job_id": "...",
"render_job_id": "...",
"chat_id": "telegram:182314856",
"clip_urls": {"highlight_id": "https://..."},
"progress": "polling 3/30",
"last_completed_op": "analyze|render",
"notification": {
"sent": false,
"sent_at": null,
"last_attempt_at": null,
"error": null
},
"updated_at": "ISO timestamp"
}
当 LEETIFY_API_KEY 可用时的首选路径:
python3 scripts/leetify/leetify_matches.py[--limit 10]
当缺少 LEETIFY_API_KEY 但 DEMOSLAP_API_KEY 可用时的兜底路径:
python3 scripts/demo_slap_matches.py [] [--limit 10]
/public-api/matches 接口https://api-doc.demo-slap.net/ 且已建立映射,则尽可能按该玩家的 Steam ID 过滤对局python3 scripts/demo_slap_match_pick.py [] --match-index
jobId 视为后续所有 Demo-Slap 操作的主要标识符使用 Leetify 时的首选路径:
python3 scripts/leetify/leetify_resolve.py--match-index
使用 Demo-Slap 兜底路径时:
python3 scripts/demo_slap_match_pick.py [] --match-index
jobId 作为选定对局的唯一标识demoUrl,仍可继续使用基于 URL 的分析流程demoUrl 字段,则跳过 URL 解析步骤,直接调用支持已有 jobId 的分析接口GET /public-api/analyze/{jobId}/status 和 GET /public-api/analyze/{jobId}/data 查询已存在的高光片段jobId 启动渲染python3 -u scripts/demo_slap_analyze.py --url '' --username --chat-id
需配合 exec(background: true) 执行,并保留返回的进程/会话 ID。
OpenClaw 环境中可选的、部署特定的看门狗(watchdog)模式:
cron 工具创建或启用看门狗,须将其作用域限定于当前运行周期,并在终端交付完成后立即禁用。scripts/demo_slap_watchdog.sh status|tail|job 仅作为本地辅助工具,用于检查运行时状态、日志或部署特定的任务引用。data/state.json 和 data/highlights.json 为准作为事实来源。智能体(Agent)工作流:
LEETIFY_API_KEY,则选用 LeetifyLEETIFY_API_KEY 但存在 DEMOSLAP_API_KEY,则选用 Demo-Slap /public-api/matchesjobIdjobId 继续流程,无需强制执行基于 URL 的分析# 单个高光片段 python3 -u scripts/demo_slap_render.py--chat-id # 精彩集锦(fragmovie) python3 -u scripts/demo_slap_render.py ... --fragmovie --chat-id
需配合 exec(background: true) 执行,并保留返回的进程/会话 ID。
OpenClaw 环境中可选的、部署特定的看门狗(watchdog)模式:
cron 工具创建或启用看门狗,须将其作用域限定于当前运行周期,并在终端交付完成后立即禁用。scripts/demo_slap_watchdog.sh status|tail|job 仅作为本地辅助工具,用于检查运行时状态、日志或部署特定的任务引用。data/state.json 和 data/highlights.json 为准作为事实来源。智能体(Agent)工作流:
Estimated finish: 行内容;若存在,向用户告知预估完成时间(ETA)关键提示:请从原始请求的入站元数据中提取 。硬编码的聊天标识符仅作本地示例参考,不可作为可复用的默认值。
读取 data/state.json 文件即可。
python3 scripts/leetify/leetify_save_id.py
推荐使用环境变量方式配置:
DEMOSLAP_API_KEY — 必需LEETIFY_API_KEY — 可选,仅用于 Leetify 支持的对局发现DEMO_SLAP_WATCHDOG_JOB_ID — 可选,仅用于部署级看门狗检测脚本的辅助参数数据源选择规则:
LEETIFY_API_KEY,则使用 Leetify 发现对局。LEETIFY_API_KEY 但存在 DEMOSLAP_API_KEY,则使用 Demo-Slap /public-api/matches 发现对局。DEMOSLAP_API_KEY 始终为分析/渲染所必需。对于受控的自托管部署,可选的本地兜底方案:将密钥写入 data/config.json 文件。
如需访问权限或技术支持,请加入我们的 Discord 社区:https://discord.gg/8nfh26W9wQ
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习