Install
openclaw skills install @jackchew7143/linkdigest-xhs-note-ocr小红书图文笔记提取,连图片里的字一起 OCR。用户发来小红书笔记链接或分享文案(xiaohongshu.com、xhslink.com),要提取笔记正文、图片上的文字、每张图的描述、要点、点赞收藏数或话题标签时使用。图文笔记的正文常写在图片里,直接抓网页拿不到。通过 LinkDigest API 读取,不需要小红书账号或 Cookie。需要 LINKDIGEST_API_KEY,按量计费:6 张图以内 1 积分(约 ¥0.14),注册送 10 积分。
openclaw skills install @jackchew7143/linkdigest-xhs-note-ocr小红书图文笔记的正文经常写在图片里:标题一句话,干货全在图上。直接抓网页只能拿到标题、几行正文和反复出现的「打开App查看更多」。这个技能把笔记链接交给 LinkDigest,返回正文、每张图的描述和图上的文字(OCR)、要点、点赞收藏数和话题标签,按图片顺序排好。
实测同一条图文笔记(公开结果页:https://linkdigest.dev/d/5d0e7837ec2742ea4ae07806d979f0ce ):
No video formats found(它只认视频笔记);linkdigest-video-transcript 技能。ld_live_ 开头)。新账户送 10 积分,只送一次,不用绑卡。export LINKDIGEST_API_KEY=ld_live_...
也可以写进 OpenClaw 配置(~/.openclaw/openclaw.json)里这个技能的 env:
{ skills: { entries: { "linkdigest-xhs-note-ocr": { env: { LINKDIGEST_API_KEY: "ld_live_..." } } } } }
Key 只放在环境变量或配置里,不要贴进对话、代码或提交记录。
推荐用自带脚本。它只用 Python 3.8+ 标准库,已经处理好 202 排队和轮询:
python3 {baseDir}/scripts/linkdigest.py "<笔记链接或整段分享文案>"
--format json(脚本会省略和其他字段重复的 raw_markdown)。printf '%s' "$SHARE_TEXT" | python3 {baseDir}/scripts/linkdigest.py -xsec_token);整段分享文案也可以,服务端会从里面取出链接。--max-credits 2,这条笔记超过 2 积分就不读、不扣费(返回 402)。--job-id 接着取)。提交:
curl -sS -X POST https://linkdigest.dev/api/v1/digest \
-H "Authorization: Bearer $LINKDIGEST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.xiaohongshu.com/explore/<笔记ID>?xsec_token=<...>", "format": "json"}'
200:结果 JSON,字段见下文。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)。用 curl 传分享文案时,注意把里面的引号和换行按 JSON 转义。
可以直接运行的 bash/zsh 版本(提交 + 轮询,最多约 15 分钟):
API=https://linkdigest.dev/api/v1/digest
AUTH="Authorization: Bearer $LINKDIGEST_API_KEY"
LINK='https://www.xiaohongshu.com/explore/<笔记ID>?xsec_token=<...>'
res=$(curl -sS -w '\n%{http_code}' -X POST "$API" -H "$AUTH" \
-H "Content-Type: application/json" -d "{\"url\": \"$LINK\", \"format\": \"json\"}")
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"
| 字段 | 内容 |
|---|---|
title / author / posted_at | 标题、作者、发布日期 |
caption | 笔记正文(文字部分) |
images[] | 按图片顺序,每张一个 {description, ocr}:description 是模型写的画面描述,ocr 是图上的文字 |
ocr_text[] | 所有图片里读出的文字片段汇总成一个列表(同样的字只出现一次);要按图对应,用 images[].ocr |
key_points[] | 要点,用原文语言 |
stats | likes 点赞、comments 评论、collects 收藏、shares 分享;是读取当天平台给的数,as_of 是日期,拿不到的是 null |
tags[] | 话题标签 |
raw_markdown | 整条内容的 Markdown:## Caption、## Key points、## Images(每张图是「Image N. 描述」,下面引用块里是图上文字) |
credits / cached | 本次扣了几个积分;读过的链接 cached=true,0 积分 |
degraded[] | 处理中没做完的部分的说明,正常为空 |
caption,再按顺序给每张图的 ocr,标明「图 1」「图 2」。原样给出,不改写、不总结,除非用户要求。caption、ocr、stats、tags 来自笔记本身;images[].description 和 key_points 是模型写的。转述时分清楚。credits,缓存命中是 0)。按加量包 ¥36 = 250 积分折算,1 积分约 ¥0.144。
| 内容 | 积分 | 约合 |
|---|---|---|
| 图文笔记,6 张图以内 | 1 | ¥0.14 |
| 7–12 张图 | 2 | ¥0.29 |
| 13–18 张图 | 3 | ¥0.43 |
加爆款拆解(--breakdown) | +1 | +¥0.14 |
加译文(--translate-to en 等) | +1 | +¥0.14 |
| 任何人读过的链接(缓存) | 0 | 0 |
| 读不出内容 | 0 | 0 |
注册送 10 积分(每个账户一次,不按月补)。加量包 $5 = 250 积分,可用支付宝付款(按 ¥36 结算),不过期;或 Dev 月付 $9 = 每月 500 积分(银行卡)。价格以 https://linkdigest.dev/zh/docs 为准。
linkdigest-video-transcript。scripts/linkdigest.py 只读环境变量 LINKDIGEST_API_KEY,只连 linkdigest.dev,不读写本地文件。https://linkdigest.dev/mcp,请求头 Authorization: Bearer <key>,工具 digest_url。Claude Code:
claude mcp add --transport http linkdigest https://linkdigest.dev/mcp --header "Authorization: Bearer <key>"npx mcp-remote https://linkdigest.dev/mcp --header "Authorization: Bearer <key>"jcaiagent7143-ui/linkdigestLinkDigest 由独立开发者 Jack(GitHub jcaiagent7143-ui)开发和维护。问题和反馈:support@linkdigest.dev