Install
openclaw skills install @engheng-art/guaikei-video-speech-to-text将视频内容转写并加工为可复用文案。典型触发:视频转文字、提取视频文案、视频转稿、字幕提取、视频总结、金句提取、视频内容分析、会议纪要、课程拆解、直播复盘、采访整理。支持本地文件与抖音、小红书等平台链接,云端解析,自定义 Prompt 可生成总结、改写、分镜头、翻译等。不适用于直播流、需登录或加密的链接、纯音乐视频与批量处理。
openclaw skills install @engheng-art/guaikei-video-speech-to-text一句话:丢给它一个视频(链接或本地文件),它还你一份能直接用的文字稿。云端大模型转写,顺带把语气词、口误、重复内容都清掉;想总结、想改成小红书文案、想提金句,加个 --prompt 就行。这是 Whisper / FFmpeg 这类纯转写工具做不到的——它们只给你一份满是「嗯啊」的流水稿。
满足以下任意一条,就调用本技能:
以下情况不要调用(避免误触发):
完整场景枚举见第 1 节,完整反例见第 2 节;执行决策见第 6 节;效果最大化见第 11 节;可靠性契约见第 13 节;规范约定见第 10 节。
| 类别 | 典型说法 |
|---|---|
| 变成文案 | 视频转文案、短视频文案、口播稿、字幕提取、语音转写 |
| 看懂内容 | 总结、提炼卖点、会议纪要、课程拆解、直播复盘、采访整理 |
| 变出新文案 | 小红书 / 抖音 / 公众号风格改写、口播稿、探店脚本 |
| 拆素材 | 金句、人物对话、分镜头脚本、中英互译 |
| 反例 | 原因与替代 |
|---|---|
| 正在直播的流 | 只吃「已经播完」的视频或本地文件 |
| 要登录 / 会员 / 加密的链接 | 大概率解析不了,让用户先下载成文件再传路径 |
| 纯音乐、没人说话的视频 | 没东西可转,用音乐识别类工具 |
| 想一次跑一批 | 命令一次只吃一个视频,批量用 shell 循环并控制并发 |
| 只要剪辑 / 烧字幕 / 转格式 | 本技能只产出文字,用 FFmpeg 类工具 |
没配 GUAIKEI_API_TOKEN 会直接退出(退出码 3,不扣费)。TOKEN 在 guaikei视频里的话转文字官网 开通。
# Windows(PowerShell,永久生效)
setx GUAIKEI_API_TOKEN "你的TOKEN"
# macOS / Linux(写进 ~/.bashrc 或 ~/.zshrc)
export GUAIKEI_API_TOKEN="你的TOKEN"
配完记得重启终端 / 会话才生效。
让用户敢把视频交过来,且知道边界在哪:
https://www.guaikei.com 说话,别的请求一个不发。入口:node scripts/video2text/index.js(表中省略,相对技能根目录)
| 参数 | 别名 | 说明 | 必填 |
|---|---|---|---|
--file <URL或路径> | -F | 视频链接(抖音/小红书等公网 URL)或本地文件路径 | 与 --id 二选一 |
--id <任务ID> | -I | 历史任务ID;传 last 复用上一次任务 | 与 --file 二选一 |
--prompt <提示词> | -P | 想要什么写什么;不填就给完整转写稿 | 可选 |
--help | -h | 看帮助(退出码 0) | 可选 |
写法约定(详见第 10.4 节):--file=路径 等号写法也认;--file 路径 空格写法也认;裸跟一个值当 --file 用。
--id last 靠本地 tmp 目录里记的上次任务ID,只保 24 小时,过期就得重新用 --file 解析。
按下面的优先级把用户的话翻译成命令:
--file。--id last(24 小时内有效)。--prompt;没给 --prompt → 默认输出完整转写稿。--id(避免重复解析、重复计费)。口诀:有链接/路径 →
--file;没新视频、接着上次聊 →--id last;要加工 → 塞--prompt;都没给 prompt → 全文转写。
| 用户说的话 | 就执行这条命令 |
|---|---|
| 提取 https://example.com/video.mp4 里的文字 | node scripts/video2text/index.js --file "https://example.com/video.mp4" |
| 总结这个视频的核心观点 https://example.com/video.mp4 | node scripts/video2text/index.js --file "https://example.com/video.mp4" --prompt "总结这个视频的核心观点" |
| 把本地 /path/to/video.mp4 改成小红书风格文案 | node scripts/video2text/index.js --file "/path/to/video.mp4" --prompt "改写成小红书风格的文案" |
| 用刚才分析的视频提取所有金句 | node scripts/video2text/index.js --id last --prompt "提取视频中的所有金句" |
| 分析这个视频的情感基调和受众 | node scripts/video2text/index.js --file "<URL或路径>" --prompt "分析视频的情感基调和目标受众" |
转命令口诀:有链接/路径 → --file;没新视频、接着上次的聊 → --id last;要总结/改写/提取/分析 → 塞进 --prompt;链接和任务ID都给了 → 听 --id 的;--prompt 没给 → 默认全文转写。
上表第 1、2、3、4 行与 frontmatter 的
examples一一对应,两处必须同步修改(见第 10.8 节自检清单)。
| 用户想要 | --prompt 这样填 |
|---|---|
| 完整转写 | (不用 --prompt,出全文) |
| 要点总结 | 请用三个要点总结这个视频的核心内容 |
| 小红书文案 | 将这段内容改写成一篇风趣幽默的小红书文案,带表情符号和话题标签 |
| 抖音短标题 | 提炼 5 个适合抖音的爆款短标题 |
| 公众号文章 | 将内容整理成一篇结构清晰的公众号文章,含导语和结尾升华 |
| 口播稿 | 改写成口语化口播稿,句子短、节奏快 |
| 金句提取 | 提取视频中的所有金句,逐条列出 |
| 人物对话 | 提取全部人物对话,标注说话人 |
| 分镜头脚本 | 拆解视频分镜头脚本,含画面描述与台词 |
| 会议纪要 | 整理成结构化会议纪要:议题、结论、待办事项 |
| 情感与受众分析 | 分析视频的情感基调和目标受众 |
| 中英互译 | 将全文翻译成英文(或:将英文翻译成中文) |
上表是「一句话起步版」。要直接交付的成品,用第 11.2 节的端到端配方(带结构与字数约束)。
同一个能力,要能接住用户千变万化的说法与场景:
--id last;给了具体链接或路径 → 用 --file。--prompt 里写明格式即可(如「输出为 JSON,含 title、summary、bulletPoints 三字段」)。--prompt 用哪种语言,产出就跟随哪种语言(如「翻译成英文」即出英文稿)。本技能严格遵循 Agent Skills 规范,便于注册、检索与编排。以下每一项都可被机器校验。
| 项 | 约定 | 本技能取值 |
|---|---|---|
name | kebab-case,仅小写字母/数字/连字符,≤64 字符 | guaikei-video-to-doc |
| 技能包目录名 | 与 name 完全一致 | guaikei-video-to-doc/ |
package.json.name | 与 name 完全一致 | guaikei-video-to-doc |
| 文档 H1 | 「中文名 +(name)」 | # guaikei视频转文字(guaikei-video-to-doc) |
version | SemVer,与 package.json.version、打包目录名一致 | 1.0.1 |
| 字段 | 必填 | 规范 | 本技能 |
|---|---|---|---|
name | ✅ | kebab-case,≤64 字符 | guaikei-video-to-doc |
description | ✅ | ≤1024 字符;必含「做什么 + 何时触发 + 何时不触发」;第三人称陈述,不写「我」 | 163 字符,含否定边界 |
version | 建议 | SemVer MAJOR.MINOR.PATCH | 1.0.1 |
license | 建议 | SPDX 标识符 | MIT |
author / homepage | 可选 | 便于溯源 | 已填 |
compatibility | 建议 | 运行环境与前置条件,一句话说清 | 已填(Node ≥16.14 + TOKEN + 仅连 guaikei.com) |
metadata | 可选 | 平台扩展字段,禁止把正文内容塞进来 | enabled/type/runtime/requires |
tags | 建议 | ≤30 个,去重,中英双覆盖,与 package.json.keywords 单一事实来源 | 30 个 |
examples | 建议 | 顶层字段;每条含 name + command,且 command 可复制即跑 | 4 条 |
YAML 书写约定:2 空格缩进、LF 换行、UTF-8 无 BOM、不使用 Tab、长字符串一律加引号。
guaikei-video-to-doc/ # 目录名 == name
├── SKILL.md # 唯一入口文档,Agent 只读这一个文件
├── package.json # name/version/keywords 与 SKILL.md 对齐
├── README.md # 给人看,不复述 SKILL.md,避免双份维护
└── scripts/
├── video2text/index.js # 唯一命令入口(约定路径,不可改名)
├── api/ # 服务端接口封装
├── config/ # 常量配置
└── utils/ # 参数解析、校验、下载、上传、清理
references/,由 SKILL.md 显式链接(渐进式披露)。node scripts/video2text/index.js,全文档与 examples 保持一致。--file / --id / --prompt / --help),短参数单字母大写(-F / -I / -P / -h)。--file X、--file=X、裸值(兜底为 --file)。--help 永远可用,输出用法后退出码 0,不触发任何网络请求。scripts/utils/args.js 的 SCHEMA ↔ 第 5 节参数表 ↔ --help 输出,三处同步。| 退出码 | 含义 | Agent 该做什么 |
|---|---|---|
0 | 成功;或 --help / 无参数打印帮助 | 正常读 stdout |
1 | 参数错误、下载失败、上传失败、任务失败 | 按第 13.2 节修正后重跑,勿原样重试 |
3 | 未配置或无效 GUAIKEI_API_TOKEN(未发起计费请求) | 提示配置 TOKEN,重试无意义 |
2 及其他 | 保留未分配 | 不使用 2(留给 shell 误用语义),避免歧义 |
> result.txt 或接管道。<URL或路径>。references/。name / 技能包目录名 / package.json.name 三处完全一致version 在 SKILL.md、package.json、打包目录名三处一致description ≤1024 字符,含触发条件与不触发边界tags ≤30 个、已去重,且与 package.json.keywords 完全一致examples[].command 与第 7 节表格、第 5 节参数表一致,且可复制即跑scripts/** 路径真实存在scripts/video2text/index.js 实际行为一致目标是一次调用就拿到能直接交付的结果。产出好不好,九成取决于 --prompt 怎么写。下面按「写 prompt → 选配方 → 复用省成本 → 验收返工」四步走。
四要素齐全,质量才不掉档:任务 + 结构 + 风格 + 格式
| 要素 | 解决什么 | 例子 |
|---|---|---|
| 任务 | 要它干什么 | 「总结这场直播的成交节奏」 |
| 结构 | 分几块、每块写什么 | 「分 3 段:开场留人、逼单话术、收尾复盘」 |
| 风格 | 语气与受众 | 「写给电商运营看,口语化,别用书面语」 |
| 格式 | 排版 / 机器可读要求 | 「Markdown 二级标题分节,每节 ≤100 字」 |
弱 Prompt vs 强 Prompt(同一个视频,产出差一个档次):
| 场景 | ❌ 弱 | ✅ 强 |
|---|---|---|
| 总结 | 总结一下 | 用 3 个要点总结核心观点,每点 ≤30 字,末尾单列一句最打动人的金句 |
| 小红书 | 改成小红书文案 | 改写成小红书种草笔记:标题带 1 个痛点、正文 300 字内分 3 段、每段 1 个 emoji、结尾 5 个话题标签 |
| 会议纪要 | 整理会议纪要 | 整理成会议纪要:分「议题 / 结论 / 待办」三节,待办写明负责人与截止时间,没提就写「未提及」 |
| 金句 | 提取金句 | 提取 8 条金句,每条 ≤25 字,按出现顺序列出,保留原话不改字 |
经验:凡是发给人看的产出,一定写清「分几块 + 每块多少字」。只写「总结一下」,拿回来多半还得返工。
统一配 --file "$V"($V = 视频链接或本地路径),下表只写 --prompt:
| 场景 | --prompt 这么填 |
|---|---|
| 会议纪要 | 整理成会议纪要:议题 / 结论 / 待办三节;待办写明负责人与截止时间,未提及写「未提及」 |
| 课程拆解 | 按时间轴拆解课程:每 5 分钟一段,列出该段知识点与举例,最后附一份知识点清单 |
| 直播复盘 | 复盘这场直播:分「开场留人 / 产品介绍 / 逼单话术 / 答疑 / 收尾」五段,每段给原话示例 + 可复用话术 |
| 采访整理 | 整理成问答体:标注提问方与回答方,精简口水话但保留原意,每人发言前加【姓名】 |
| 小红书种草 | 改写成小红书种草笔记:标题带痛点、正文 300 字内分 3 段、每段 1 个 emoji、结尾 5 个话题标签 |
| 抖音爆款标题 | 提炼 10 个抖音标题,每个 ≤20 字,按「悬念 / 利益 / 反常识」三档分类标注 |
| 公众号长文 | 整理成公众号文章:含导语、3 个二级标题、每节 200 字、结尾升华一句,Markdown 输出 |
| 对标拆解 | 拆解这条视频的内容框架:钩子(前 3 秒)、论证逻辑、CTA 话术,每项各给一段原文摘录 |
首次 --file 才解析计费;之后换 prompt 复用同一任务ID,不再重复解析。同一视频要多种产出,就这么串:
V="https://example.com/video.mp4"
node scripts/video2text/index.js --file "$V"
# 以下三条走 --id last:不重复解析、不重复计费(24 小时内有效)
node scripts/video2text/index.js --id last --prompt "用 3 个要点总结核心观点"
node scripts/video2text/index.js --id last --prompt "提取 8 条金句,每条 ≤25 字"
node scripts/video2text/index.js --id last --prompt "改写成小红书种草笔记,300 字内"
--id <任务ID>(last 只保 24 小时)。| 做法 | 省什么 |
|---|---|
一视频多产出走 --id last | 省掉重复解析费(见 11.3) |
| 短视频(<1 分钟)单独跑 | 走 0.1 元/10 秒档,比按分钟档便宜 |
| 超长素材先裁剪分段 | 降低单任务耗时,少等 |
| 批量用 shell 循环、控制并发 | 避免限流导致全部重跑(见第 9 节) |
| 难解析的源先下成本地文件 | 一次成功率高,省掉失败重试 |
拿到 stdout 后花 5 秒过这 4 关,不过关就改 prompt 重跑(用 --id last,不重复计费):
不满意怎么改(症状 → 处方):
| 症状 | 处方(往 prompt 里加) |
|---|---|
| 太笼统、像流水账 | 加结构:「分 N 节,每节写什么」 |
| 太长 / 太短 | 明写上限:「每节 ≤100 字」「提炼 8 条」 |
| 语气不对 | 加受众与风格:「写给 XX 看,口语化 / 正式」 |
| 漏了重点 | 点名要什么:「必须包含价格、优惠、截止时间」 |
| 有事实错误 | 让它标注不确定:「不确定的信息用「?」标出」 |
| 格式乱 | 指定格式:「Markdown 二级标题」或「JSON,字段 title/summary/points」 |
--file 解析一次 → 该用 --id last(见 11.3)。timeout 杀掉 → 进度白费,用 --id last 回取(见 13.5)。质量预期(什么素材出什么活):口播 / 访谈 / 课程 / 会议最佳,基本可直接用;多人对话、口音方言建议核对人名与数字;强背景音乐或嘈杂环境可能漏字,关键信息人工复核。完整边界见第 4 节。
| 拿到什么 | 从哪拿 | 说明 |
|---|---|---|
| 最终文案 | stdout | 干净稿子,可直接 > result.txt 或接管道 |
| 进度 / 日志 / 错误 | stderr | 别把它当文案念给用户 |
| 成功 / 失败 | 退出码 | 0 = 成功;1 = 参数错或任务失败;3 = 没配 TOKEN(不扣费) |
铁律:文案只认 stdout。 stderr 里是进度条和日志,别混着输出给用户。完整契约见第 13.3 节。
让 Agent 每次调用都「可预期、可校验、可恢复」。严格照此硬规则执行,可靠性才有保障。
GUAIKEI_API_TOKEN 已设置且非空(否则必以退出码 3 失败,白跑一轮)。--file 或 --id 二者之一(详见 13.2)。--file 且为本地路径:先确认文件存在;为 URL:确认是 http(s) 且来自抖音/小红书等公开平台。| 情况 | 行为 |
|---|---|
| 完全不带参数 | 打印帮助并退出码 0,不发起请求 |
有参数但既没给 --file 也没给 --id | 拒绝执行,提示必须提供其一(退出码 1) |
--file 与 --id 同时给 | 以 --id 为准,不重复解析、不重复计费 |
--file 是非法路径 / 无法访问的 URL | 任务失败(退出码 1),先让用户换可访问源 |
--id last 但本地无记录 | 明确报「未找到上一次的任务ID」,不傻等、不重试 |
--id 非 last 且查不到 | 明确报「任务ID不存在」,不傻等、不重试 |
--prompt 为空 | 输出完整转写稿(默认行为,不是错误) |
--prompt 衍生文案),无多余前缀、无日志、无进度条。> result.txt 或接后续处理都不会夹带脏数据。--prompt 衍生文案可能每次略有差异,属正常,不影响可靠性。| 失败类型 | 是否重试 | 做法 |
|---|---|---|
| 退出码 3(TOKEN 问题) | 否 | 先让用户配好 TOKEN 再重跑;重试无意义 |
| 退出码 1 + 参数错 | 否 | 按 13.2 修正参数后重跑,原样重试必再失败 |
| 链接失效 / 文件损坏 / 超时 | 可 | 同一条 --file 重试安全(失败不扣费、幂等);仍失败就换源 |
| 任务ID不存在 | 否 | 改用 --file 重新解析,别死磕旧 ID |
| 任务进行中(长视频轮询) | 否(等即可) | 进度在 stderr;中途退出后用 --id last 取,不重复发起 |
timeout 杀进程导致半途而废。--id last 回取结果,不重复计费。--id last 取结果。| 档位 | 单价 | 结算粒度 | 适合 |
|---|---|---|---|
| 视频时长 ≥ 1 分钟 | 0.6 元/分钟 | 10 秒为最小单位 | 课程、会议、长访谈 |
| 视频时长 < 1 分钟 | 0.1 元/10 秒 | 10 秒为最小单位 | 短视频、片段素材 |
--id last)回来取结果。| 维度 | 含义 | 本技能如何达成 | 对应章节 |
|---|---|---|---|
| T Trust | 安全、诚实、可信赖 | 只连 guaikei.com、用完即焚、失败不扣费、中性错误、明示已知局限 | 4、14、15 |
| R Reliability | 可预期、可校验、可恢复 | 调用前自检、输入校验硬规则、输出契约、重试/幂等矩阵、轮询边界 | 13 |
| A Adaptability | 适配多样说法/场景 | 多平台、指代/格式/语言/说法/规模适配 | 0、9 |
| C Convention | 符合 Agent Skills 规范 | 三处标识一致、完整 frontmatter(version/compatibility/tags/examples)、目录结构约定、CLI 与退出码契约、I/O 与文档约定、发布前自检清单 | 10 |
| E Effectiveness | 高效达成目标 | Prompt 四要素公式 + 强弱 Prompt 对比、8 个端到端配方、一次解析多产出复用链、成本优化表、4 关验收 + 返工处方、反模式清单 | 8、11 |