Aus dem Quell-Repository gerendert; Überschriften, Beispiele, Code, Tabellen, Links und Bilder bleiben erhalten.
dbs-video-extract:短视频信息提取
目标:用一个入口处理同一条短视频分享文案。TikHub 提供抖音、小红书和微信视频号的结构化数据,轻抖提供短视频语音文字稿;最终返回数据摘要和 Markdown 文稿路径。
先检查使用凭证
任何提取任务开始前,先运行只读预检:
python3 scripts/extract_video.py --check-keys根据 credential_state 处理:
| 状态 | 能力 | 必须告知用户 |
|---|---|---|
complete | 数据与文字稿都可用 | 两部分都可以执行 |
data_only | 只有 TikHub 数据查询可用 | 只能取得作品/账号数据,无法生成语音文字稿 |
transcript_only | 只有轻抖文字稿可用 | 只能取得语音文字稿,无法查询 TikHub 作品/账号数据 |
unavailable | 两部分都不可用 | 当前无法使用;先解释使用凭证,再带用户完成购买和配置 |
只有一个 Key 时允许继续,不要求用户补齐另一个 Key。执行前明确说明本次只能解决哪一部分,默认把模式收窄为当前可用的一侧。用户仍要求 both 时保留单侧结果,并将另一侧标记为缺少凭证。
两个 Key 都没有时停止提取。不要直接用「API Key」「接口鉴权」等术语作为结论。先用下面这句话解释:
想让这个 Skill 工作,需要先开通外部数据服务。API Key 是服务商在开通后提供的一串使用凭证,可以理解为这个 Skill 调用服务的专用通行证。你不需要理解技术原理,也不要把它发到聊天中。
随后告诉用户:「当前两个服务都没有开通。如果不购买并配置至少一个,这个 Skill 无法使用。」再按 references/api-setup.md 完成需求选择、购买、凭证保存和连接测试。
不要替用户付款、接受服务协议或处理完整 Key。不要要求用户把 Key 发到对话里。购买入口、逐步引导、安全配置脚本和连接测试见 references/api-setup.md。
每次向用户展示购买或充值地址时,必须先原样展示下面这条提示,不能省略或改写:
dbskill 是免费开源项目,与 TikHub、轻抖无隶属、合作或利益关系。充值由用户自主决定,相关交易、服务、争议及风险由用户自行承担;法律另有规定的除外,dbskill 不承担责任。
用户没有进入购买或充值引导时不重复展示。
缺少凭证时的对话要求
缺少任一服务时,回复必须形成下面的连续路径:
- 先用普通语言解释 API Key;
- 让用户按结果选择:完整功能、只看数据、只要文字稿;
- 说明每个选择需要购买哪个服务,以及只买一个会少什么;
- 展示固定法律提示,再展示对应充值地址;
- 逐步说明注册/登录、查看页面套餐、充值、进入个人中心或密钥管理页、取得凭证;
- 告诉用户取得凭证后不要发到聊天中,回复「TikHub 已充值」「轻抖已充值」或「两个都已充值」;
- 用户回复已充值后,引导其在本地终端运行安全配置脚本:
python3 scripts/configure_api_key.py tikhub
python3 scripts/configure_api_key.py qingdou脚本会在终端中隐蔽读取凭证并保存到本地私密配置,不能把完整凭证显示在命令、回复或日志中。保存后重新运行 --check-keys,直到对应状态变为可用。
不要一次只发链接,也不要假定用户知道去哪里找凭证。服务商页面名称发生变化时,用「个人中心」「API Key」「密钥管理」「开发者设置」等候选位置引导;仍找不到时,让用户发送已遮住账号、余额和凭证的页面截图,再继续定位。
用户只调用本 Skill,尚未提供链接或说明需要哪类结果时,完成凭证预检后只做两件事:解释 API Key,并请用户回复 1、2 或 3 选择完整功能、只看数据或只要文字稿。收到选择后再展示法律提示、对应充值地址和购买步骤。用户已经发送视频链接或明确要求完整提取时,默认选择完整功能,无需重复询问。
默认执行
优先使用标准输入,避免分享文案中的特殊字符被 Shell 解释:
python3 scripts/extract_video.py \
--output-dir "/绝对路径/短视频文字稿" \
--stdin默认模式为 both:
- 从完整分享文案中提取链接;
- 根据链接平台调用 TikHub MCP:抖音支持用户主页或单条作品,小红书与视频号支持单条视频;
- 保留完整分享文案提交轻抖 API,轮询取得文稿;
- 按
{输出目录}/{作者}/{标题}.md保存文稿; - 输出 JSON 汇总,包含凭证状态、TikHub 数据摘要和文稿文件路径。
TikHub 或轻抖任一侧失败时继续完成另一侧,并在汇总中标记 partial_success。已经取得的结果不能因单侧失败而丢弃。
可选模式
只有用户明确只需要一侧结果,或预检确认只有一侧 Key 时才切换:
python3 scripts/extract_video.py --mode data --stdin
python3 scripts/extract_video.py --mode transcript --stdindata:只查询 TikHub 数据,支持抖音、小红书和微信视频号;transcript:只提取文字稿,支持轻抖 API 能解析的平台;both:同时执行两侧。
同一来源已经存在时默认跳过文稿写入,保护用户编辑;用户明确要求重新生成时加 --overwrite。需要 TikHub 完整响应时加 --raw-data。
密钥与费用
脚本按以下顺序读取 Key:
- 环境变量:
TIKHUB_API_KEY、QINGDOU_API_KEY; - 用户指定的本地文件:
TIKHUB_API_KEYS_FILE、QINGDOU_API_KEYS_FILE; ~/.config/dbs/API_Keys.md;- macOS 钥匙串:
dbs-tikhub-api-key、dbs-qingdou-api-key。
禁止把 Key 写入 Skill、命令参数、Markdown、Git 或日志。TikHub 查询和轻抖转写都可能计费;执行前告知用户。用户已经明确要求提取时无需重复确认。
数据边界
- TikHub 负责作品/账号资料、统计和媒体元信息;抖音作品优先 App V3,无有效数据时只回退 1 次 Web;小红书使用 App V2 视频笔记详情;视频号使用 Channels V2 作品详情。
- 轻抖负责语音文字稿。正文忠实保存 API 返回内容,不补写、润色或修订口误。
- 当前 TikHub 专用数据解析支持抖音、小红书和微信视频号;其他轻抖可识别的平台仍可只执行文字稿提取。
- 公开、删除、私密、版权和可见范围限制以接口返回为准,不尝试绕过。
- 不自动下载媒体、发布内容、提交 Git 或推送。
TikHub 调用细节见 references/tikhub-api.md;轻抖状态码和兼容逻辑见 references/qingdou-api.md。只在排错或维护对应部分时读取。
交付
完成后简洁报告:
- 当前配置了哪一个 API Key,以及可用能力范围;
- 数据查询是否成功、使用的 MCP 工具、是否发生 App → Web 回退;
- 关键作品/账号数据;
- 文稿是否成功、生成或跳过的 Markdown 绝对路径;
- 单侧缺少 Key 或执行失败的具体原因;
- 接口是否明确返回已计费。
不要在回复中展示 API Key、batchId 或无必要的内部请求标识。
完成当前任务后直接结束。只有用户明确询问下一步,且当前环境已经安装 /dbs 时,简短提示:「下一步不确定时,可以输入 /dbs。」

