linkdigest-viral-breakdown Skill
爆款拆解:把一条抖音、小红书、TikTok 或 YouTube 内容拆成开头钩子、带时间的结构节拍、标题公式、封面文字、行动号召和可复用模板。引用的原话逐字核对原文,对不上的删掉并写明删了几条;点赞收藏和话题标签取自平台数据,不由模型编写。用户要拆解爆款、分析对标账号、学习内容结构或准备仿写时使用。通过 LinkDigest API 读取,不需要平台账号或 Cookie。需要 LINKDIGEST_API_KEY;在读取费用上加 1 积分(约 ¥0.14),6 张图以内的图文笔记加拆解共 2 积分。
安装方式:把技能目录放入 ~/.claude/skills/(Claude Code)或在 claude.ai 设置中启用;也可复制右侧安装命令一键添加。
技能指令原文(SKILL.md)
爆款拆解(引用逐字核对原文)
脚本路径 scripts/linkdigest.py 相对于本技能目录。
给一条抖音、小红书、TikTok 或 YouTube 链接,先读出逐字稿、画面文字、图片文字和互动数据,再分析这条内容是怎么做出来的:开头怎么留人、每一步讲什么、标题怎么写、结尾怎么引导,最后给一个可以套用的模板。
和让模型「看完写个拆解」的区别在于:拆解里每一句标成原话的引用,都会和读出来的原文逐字比对,找不到的直接删掉,并在 missing 里写明删了几条。点赞、评论、收藏、话题标签直接取自平台数据,不让模型写。
实测例子
一条 15:42 的抖音剪辑教程(https://www.douyin.com/video/7515405363630443830 ),要求用英文写拆解(translate_to: "en"):
- 得到 10 个带时间的结构节拍;
- 模型写出的引用里有 7 条在视频里找不到原话,被删掉,
missing里写着7 quote(s) removed: not found word for word in the post; - 留下的引用保持中文原话,例如(节选):
{"t": 24, "label": "Demonstration of Problem",
"summary": "Shows a basic linear keyframe animation that looks boring and uniform, establishing the baseline problem.",
"quote": "可以看到它的这个运动是不是比较的无聊,是一个比较匀速平稳的缩放"}
什么时候用
- 「拆解这条爆款」「分析一下这个视频为什么火」「这篇笔记的结构是什么」「帮我仿写这条」。
- 研究对标账号:一条一条拆,对比钩子、节拍和行动号召。
- 写脚本前找结构参考。
什么时候不用
- 只要文案或图片文字:用
linkdigest-video-transcript或linkdigest-xhs-note-ocr,少花 1 积分。 - 要账号整体诊断、流量预测或「保证爆」:这个技能只拆单条内容,不预测效果。
- B站链接:不支持。私密、已删除、需要登录才能看的内容也读不了(返回 422,不扣费)。
准备(一次)
- 打开 https://linkdigest.dev/app/keys ,用 Google 或邮箱登录(邮箱会收到一封登录链接),创建 API Key(
ld_live_开头)。新账户送 10 积分,只送一次,不用绑卡。 - 设置环境变量:
export LINKDIGEST_API_KEY=ld_live_...
也可以写进 OpenClaw 配置(~/.openclaw/openclaw.json)里这个技能的 env:
{ skills: { entries: { "linkdigest-viral-breakdown": { env: { LINKDIGEST_API_KEY: "ld_live_..." } } } } }
Key 只放在环境变量或配置里,不要贴进对话、代码或提交记录。
用法
推荐用自带脚本(Python 3.8+ 标准库,已经处理好 202 排队和轮询):
python3 scripts/linkdigest.py "<链接或整段分享文案>" --breakdown
python3 scripts/linkdigest.py "<链接>" --breakdown --format json
python3 scripts/linkdigest.py "<英文 TikTok 链接>" --breakdown --translate-to zh-CN # 拆解用中文写,再 +1 积分
- 拆解默认用这条内容本身的语言写;加
--translate-to就用指定语言写,并附整条内容的译文(再 +1 积分),引用仍是原文。 - 分享文案里有引号或换行时,从标准输入传:
printf '%s' "$SHARE_TEXT" | python3 scripts/linkdigest.py - --breakdown - 视频较长时会先返回 202,脚本自动轮询(默认最多等 900 秒,
--timeout可改);超时就按提示用--job-id接着取,同一个 jobId 只扣一次费。 --max-credits 5:这条超过 5 积分就不读、不扣费(返回 402)。- 退出码:0 成功;2 参数错误或没设 Key;3 Key 无效(401);4 积分不够或视频超长(402,未扣费);5 链接读不了(422);6 调用太频繁,或这个 Key 在 /app/keys 设的 30 天积分上限已用完(429,未扣费);7 等待超时。
直接调 HTTP(没有 Python 时)
curl -sS -X POST https://linkdigest.dev/api/v1/digest \
-H "Authorization: Bearer $LINKDIGEST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://v.douyin.com/<短链>/", "format": "json", "breakdown": true}'
200:结果 JSON,拆解在breakdown字段里。202:{"pending":true,"jobId":"…","poll":"/api/v1/digest/…","retryAfter":15}。用 jobId 取,不要重新提交:
curl -sS "https://linkdigest.dev/api/v1/digest/<jobId>?wait=20" \
-H "Authorization: Bearer $LINKDIGEST_API_KEY"
wait=20 让服务端最多等 20 秒再回复;仍是 202 就再取一次,直到 200。要 Markdown 时,提交用 "format": "markdown",取结果加 &format=markdown(202 响应始终是 JSON)。breakdown 必须是布尔值 true,写成 "yes" 会返回 400。
可以直接运行的 bash/zsh 版本(提交 + 轮询,最多约 15 分钟):
API=https://linkdigest.dev/api/v1/digest
AUTH="Authorization: Bearer $LINKDIGEST_API_KEY"
LINK='https://v.douyin.com/<短链>/'
res=$(curl -sS -w '\n%{http_code}' -X POST "$API" -H "$AUTH" \
-H "Content-Type: application/json" -d "{\"url\": \"$LINK\", \"format\": \"json\", \"breakdown\": true}")
code=${res##*$'\n'}; body=${res%$'\n'*}
n=0
while [ "$code" = 202 ] && [ $n -lt 45 ]; do
n=$((n+1))
job=$(printf '%s' "$body" | sed -n 's/.*"jobId":"\([^"]*\)".*/\1/p')
res=$(curl -sS -w '\n%{http_code}' "$API/$job?wait=20" -H "$AUTH")
code=${res##*$'\n'}; body=${res%$'\n'*}
done
echo "HTTP $code" >&2
printf '%s\n' "$body"
返回字段
breakdown 里:
| 字段 | 内容 |
| --- | --- |
| language / format | 拆解用的语言;内容形式(如教程、口播) |
| hook | 开头怎么留人:spoken 说的话(原话)、on_screen 屏幕上的字(原话)、visual 画面、why 为什么有效 |
| beats[] | 最多 10 个结构节拍:视频是 t(秒,大致时间),图文是 image(第几张图);label 标签、summary 摘要、quote 一句原话 |
| title_formula | 标题公式,例如「数字 + 结果 + 人群」 |
| cover_text / cta | 封面文字、行动号召(原话) |
| audience | 目标人群 |
| tags / engagement | 话题标签;点赞、评论、收藏、分享(as_of 是读取日期)。直接取自平台数据 |
| template[] | 可复用模板,最多 8 步,用 [产品]、[痛点] 这样的占位 |
| remix_ideas[] | 二创方向,最多 3 个 |
| missing[] | 这次拆解看不到或删掉的东西:没有语音、只读了一部分、删了几条对不上原文的引用等 |
同一个响应里还有完整的读取结果:transcript、on_screen、images、caption、key_points、stats、credits、cached 等(字段说明见另外两个技能)。raw_markdown 里拆解在原文之后,单独一节。
引用怎么核对
- 被核对的字段:
hook.spoken、hook.on_screen、beats[].quote、cover_text、cta。 - 核对对象:这条内容读出来的文字,包括标题、正文、逐字稿、画面文字、图片文字和图片描述。比较时忽略空格、标点和大小写。
- 找不到的引用置空,
missing里加一条:中文拆解写「删除了 N 处无法在原文中逐字找到的引用」,英文拆解写N quote(s) removed: not found word for word in the post。 - 局限:核对的是读出来的文字,不是音频本身。语音识别听错的字,引用里也会是同样的错字。
visual、why、summary、title_formula、template、remix_ideas是模型的分析,不是原话,不做核对。 - 视频节拍的
t是大致时间,误差可能有几秒到几十秒,引用请以quote的文字为准。
把结果交给用户时
- 标成原话的内容(
hook.spoken、hook.on_screen、quote、cover_text、cta)原样给出,带上时间或图号。不要自己补写「原话」,也不要改写后仍标成原话。 - 用户要仿写时,新写的内容明确标为新写的,和原文引用分开。
- 把
missing告诉用户,尤其是删了几条引用、只读了一部分视频、没有语音这几种。 - 互动数据带上
as_of日期,说明是读取当天的数。 - 模板是结构参考,不要承诺照做就能火。
- 告诉用户这次用了几个积分(
credits)。
费用
拆解在读取费用上加 1 积分。按加量包 ¥36 = 250 积分折算,1 积分约 ¥0.144。
| 内容 | 积分 | 约合 |
| --- | --- | --- |
| 图文笔记(6 张图以内)+ 拆解 | 2 | ¥0.29 |
| 1 分钟以内的视频 + 拆解 | 3 | ¥0.43 |
| 3 分钟视频 + 拆解 | 5 | ¥0.72 |
| 10 分钟视频 + 拆解 | 12 | ¥1.73 |
| 再加译文 / 用其他语言写拆解(--translate-to) | +1 | +¥0.14 |
| 同一链接的拆解已被读过(缓存) | 0 | 0 |
| 读不出内容 | 0 | 0 |
图文每多 6 张图 +1 积分;视频每开始的 1 分钟 +1 积分。这条链接之前被读过、只是没拆解过时,原文走缓存,通常只收拆解的 1 积分,以返回的 credits 为准。
注册送 10 积分(每个账户一次,不按月补)。加量包 $5 = 250 积分,可用支付宝付款(按 ¥36 结算),不过期;或 Dev 月付 $9 = 每月 500 积分(银行卡)。价格以 https://linkdigest.dev/zh/docs 为准。
限制
- 不支持 B站:哔哩哔哩对我们服务器的地址直接返回 HTTP 412。
- 单条视频长度上限:免费账户和只买了加量包的账户 10 分钟,Dev 月付 30 分钟;超过返回 402(
media_too_long),不扣费。免费账户和加量包账户可加--partial-ok只拆开头,missing里会写明只读了一部分。 - 拆解只看这一条内容,看不到账号粉丝数、投流、发布时间段这些背景,
missing里通常会写出来。 - 互动数据是读取当天的快照;缓存里的结果保留第一次读取那天的数。
- 每个账户每小时最多 60 次 API 调用。
隐私
- 只把你给的链接发给 linkdigest.dev,不需要也不会读取你的平台账号或 Cookie。
- 视频、音频、图片只在处理时放在临时目录,返回前删除,不保存、不转发。
- 文字结果(包括拆解)按链接缓存(所以同一链接再读免费),可能提供给请求同一公开链接的其他用户。不要提交私密内容的链接。
- 读取和拆解会用到第三方模型服务,详见 https://linkdigest.dev/privacy 。
scripts/linkdigest.py只读环境变量LINKDIGEST_API_KEY,只连linkdigest.dev,不读写本地文件。
其他接入方式
- 远程 MCP(Streamable HTTP):
https://linkdigest.dev/mcp,请求头Authorization: Bearer,工具digest_url,参数breakdown: true。Claude Code:
claude mcp add --transport http linkdigest https://linkdigest.dev/mcp --header "Authorization: Bearer "
- 只支持本地(stdio)MCP 的客户端:
npx mcp-remote https://linkdigest.dev/mcp --header "Authorization: Bearer " - Dify 插件市场:
jcaiagent7143-ui/linkdigest - OpenAPI:https://linkdigest.dev/openapi.json
- 开源客户端与接入示例:https://github.com/jcaiagent7143-ui/linkdigest-mcp
- 中文文档:https://linkdigest.dev/zh/docs
LinkDigest 由独立开发者 Jack(GitHub jcaiagent7143-ui)开发和维护。问题和反馈:support@linkdigest.dev