個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Xiaohongshu (RedNote) & Douyin links to text for AI agents: image-note OCR, transcripts + on-screen text, viral breakdown with verbatim-checked quotes. Hosted MCP + API, Python SDK/CLI. | 给 AI Agent 用的小红书 / 抖音链接读取器:图文笔记图片 OCR、口播逐字稿 + 画面文字、爆款拆解(引用逐字核对)。
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
中文文档:README.zh-CN.md — 抖音、小红书链接转文本,MCP / Python SDK / 命令行,价格以人民币标注。 Turn a social media link into text a language model can read — transcript, on-screen text, image descriptions, caption and metadata. Hosted, remote (streamable HTTP). Nothing to install or run. For stdio-only clients and scripts, python/ adds a zero-dependency Python SDK, a linkdigest command line and a linkdigest-mcp stdio server that forwards to the hosted endpoint.檢視完整 README ↗
中文文档:README.zh-CN.md — 抖音、小红书链接转文本,MCP / Python SDK / 命令行,价格以人民币标注。
The social media reading layer for AI agents: turn a social media link into text a language model can read — transcript, on-screen text, image descriptions, caption and metadata, with quotes checked against the post.
A Chinese social media API for AI agents: Xiaohongshu (RedNote, 小红书), Douyin (抖音), Weibo (微博), WeChat Official Account articles (公众号), Bilibili and 小宇宙 / Apple Podcasts episodes — plus TikTok, YouTube, X and Instagram — read into timed transcripts, OCR of every image and frame, top comments and key points with checked quotes. No Chinese phone number, account or cookies. Not read today: Zhihu, Kuaishou. Overview: linkdigest.dev/china-social-media-api.
# A Douyin video's spoken script (文案), 1 credit per started 2 minutes
curl -X POST https://linkdigest.dev/api/v1/digest -H "Authorization: Bearer ld_live_..." \
-H "Content-Type: application/json" -d '{"url": "https://v.douyin.com/xxxxxxx/", "depth": "script"}'
Hosted, remote (streamable HTTP). Nothing to install or run. For stdio-only clients and scripts,
python/ adds a zero-dependency Python SDK, a linkdigest command line and a
linkdigest-mcp stdio server that forwards to the hosted endpoint.
Website: linkdigest.dev · Registry: dev.linkdigest/linkdigest
Every digest comes with a receipt — how much was read, and a checked quote behind each key point. Works from Muse, Grok Bot, Manus Cue, Hermes, OpenClaw, Claude Code and Cursor: see linkdigest.dev/connect. No key needed for a first look.
The open parts: the Python SDK, the linkdigest command line and the linkdigest-mcp stdio server
(python/, MIT), the Dify plugin source (dify/), the agent skill
(skills/), examples, and the official MCP registry entry (server.json).
The hosted service behind https://linkdigest.dev/mcp and the API is operated by LinkDigest; its
reading engine is not open source.
Fetching a social link yourself returns nothing useful. Share URLs are tokenised
(xsec_token, app_code_link), the content lives in video and images rather
than HTML, and the server sends an app-download shell or a login wall instead of
the post.
$ curl -sL 'https://xhslink.com/o/1WiQ1QI6Uc0' | grep -o '<title>.*</title>'
<title>小红书 - 你的生活兴趣社区</title>
That title belongs to a 36 KB app shell (checked 2026-10-04). No caption, no images, no text of the note.
Claude Code
claude mcp add --transport http linkdigest \
https://linkdigest.dev/mcp \
--header "Authorization: Bearer ld_live_..."
Cursor, as a plugin — this repo is a Cursor plugin (.cursor-plugin/plugin.json + mcp.json + skills/).
Install it from cursor.directory, then set the key once in your shell:
export LINKDIGEST_API_KEY=ld_live_...
The plugin's mcp.json reads ${LINKDIGEST_API_KEY}; no key is stored in the repo. Without it,
the tool still lists and tools/call returns a 401 that says where to get one.
Cursor, by hand — ~/.cursor/mcp.json
{
"mcpServers": {
"linkdigest": {
"url": "https://linkdigest.dev/mcp",
"headers": { "Authorization": "Bearer ld_live_..." }
}
}
}
stdio-only clients — through mcp-remote (Node.js):
{
"mcpServers": {
"linkdigest": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://linkdigest.dev/mcp", "--header", "Authorization:${AUTH_HEADER}"],
"env": { "AUTH_HEADER": "Bearer ld_live_..." }
}
}
}
or through the Python server, published on PyPI as linkdigest-mcp
(built and uploaded by this repo's release workflow, with attestations; needs uv):
{
"mcpServers": {
"linkdigest": {
"command": "uvx",
"args": ["linkdigest-mcp"],
"env": { "LINKDIGEST_API_KEY": "ld_live_..." }
}
}
}
A key is issued at linkdigest.dev/app/keys. 10 free credits to start, once per account, no card. A post is one credit; video adds one per started minute; a viral breakdown or a translation adds one each. Then $5 once for 250 credits (Alipay accepted, settled as ¥36) or $9 a month for 500 (card).
Eleven ready-made skills live in skills/. Each is one job, a SKILL.md plus one script that uses only the Python standard library. No key needed for a first look: without LINKDIGEST_API_KEY the script gives one free summary a day; with a key (10 free credits on sign-up, no card) it returns the full transcript and per-image text.
| Skill | Job |
|---|---|
xiaohongshu-note-to-text | 小红书笔记转文字: a Xiaohongshu note, the text in every image, caption, stats |
douyin-video-to-text | 抖音视频转文字: a Douyin video's spoken words, on-screen text, chapters |
douyin-search-to-text | 抖音搜索转文字: search Douyin by topic (free), then read the videos you pick |
tiktok-transcript | A TikTok video's transcript with timestamps and captions |
long-video-transcript | 长视频转文字: lectures and podcasts up to 2 h, 1 credit per 2 minutes |
linkdigest-xhs-note-ocr | Xiaohongshu image notes, with the text inside every image |
linkdigest-video-transcript | Douyin / Xiaohongshu video to transcript and on-screen text |
linkdigest-wechat-article-reader | WeChat 公众号 articles: full text and every image's text |
linkdigest-youtube-summary | YouTube summary and timed transcript, translated to Chinese on request |
linkdigest-xiaohongshu-douyin-reader | Read Xiaohongshu / Douyin posts in English |
linkdigest-viral-breakdown | How a viral post is built, with quotes checked against the source |
linkdigest-script-rewrite | Extract a reference video's script and structure, then write your own |
xiaohongshu-pain-point-radar | 痛点雷达: a category on Xiaohongshu + Douyin → pain points, needs and blockers counted per post by code (N/M), search demand from Baidu/Taobao/Bing suggestions, and gaps nobody answers; quotes checked word for word |
overseas-pain-points | 出海痛点: the same for overseas buyers on YouTube + TikTok, report in Chinese with the English originals |
Pain-Point Radar (2026-11-07) is one REST call: POST https://linkdigest.dev/api/v1/radar with {"topic": "robot vacuum", "market": "global"} (or "cn" for Xiaohongshu + Douyin), then poll GET /api/v1/radar/{id}; a 12-post run is ~41–47 credits and takes 10–20 minutes. Public, weekly-refreshed examples: 国内品类 · 出海品类.
# Any agent the skills CLI supports (Claude Code, Cursor, Codex, OpenClaw, Trae, Qwen Code, ...)
npx skills add jcaiagent7143-ui/linkdigest-mcp --skill xiaohongshu-note-to-text
# Hermes Agent
hermes skills install jcaiagent7143-ui/linkdigest-mcp/skills/xiaohongshu-note-to-text
hermes skills install clawhub/linkdigest-xhs-note-ocr # or from ClawHub
# OpenClaw (ClawHub)
clawhub install jackchew7143/linkdigest-xhs-note-ocr
digest_url(url, format, job_id, translate_to, breakdown, ask, partial_ok, depth) — only url is required.
| Argument | Notes |
|---|---|
url | The post URL, including any share tokens. |
format | markdown (default, best for reading) or json (structured). |
job_id | Collect a digest already running. Pass this instead of url — re-sending the url would start the work again. |
breakdown | true adds a viral breakdown (爆款拆解): the hook in its first seconds, the structure as timed beats, the title formula, cover text, call to action, audience and a reusable template. Quotes are checked word for word against the post; engagement and hashtags come from the platform. +1 credit. |
translate_to | An ISO 639-1 code (en, ja, zh-CN): adds a translation beside the original, and writes the breakdown in that language. +1 credit. |
ask | A question to answer from the post ("what products and prices does it recommend?", "does the speaker say X?"). The answer comes with the quotes it rests on, each checked word for word against the post; found is false when the post does not say, and nothing is invented. +1 credit. |
partial_ok | true reads the opening minutes the budget affords instead of refusing a long video. |
You do not call it yourself. The tool description tells the agent to reach for it whenever it meets a social link it cannot read, so it happens mid-task without being asked.
A long video may not finish inside one call. When that happens the result names a
job id; call the tool again with that job_id and no url to collect it.
platform, author, title, posted_at, caption, transcript ({t, text}),
ocr_text, on_screen ({t, text}), images ({description, ocr}), key_points, stats
(likes, comments, saves, shares, plays), tags, raw_markdown, source_url, transcript_source,
degraded — plus breakdown and translation when asked for.
Two are worth knowing about:
transcript_source — native_captions, asr, gemini_video or none. Captions the
platform already published are exact; speech recognition is not. gemini_video
means a YouTube video without captions was watched by Gemini, which wrote the
transcript and its times. Treating them
identically eventually quotes a mis-heard number back at someone as fact.degraded — what did not fully work, in plain words, plus notes on how a
complete read was obtained (e.g. "read via oEmbed", "read by Gemini watching the
video directly").
It exists because a digest once returned a well-formed, completely empty result
during a provider outage and was cached for thirty days.Checked against real posts, not documentation.
| Platform | Status |
|---|---|
| Xiaohongshu 小红书 | Works — image notes and video notes, no login needed |
| Douyin 抖音 | Works — video posts and image notes (图文), through Douyin's own embed player |
| Weibo 微博 | Works (since 2026-11-01) — text, photos, video, counts, top comments, through Weibo's own visitor page; posts only followers can see are refused, not charged |
| WeChat 公众号 articles | Works — the full article, every image read |
| Bilibili | Works (since 2026-10-24) — videos and b23.tv short links, through Bilibili's own embed player |
| 小宇宙 / Apple Podcasts | Works (since 2026-10-29) — episode transcripts |
| TikTok | Works — short links resolve. Rate-limits under load |
| YouTube | Works — native captions where published, otherwise a watched transcript |
| X | Works — posts with video or images |
| Works (since 2026-10-24) — reels, and photo posts through Instagram's embed page (a carousel reads its first slide) | |
| Web pages / articles | Works — readable article text, title, author, date |
| Zhihu, Kuaishou | Not read yet |
| Not supported. Serves no post content to logged-out requests |
The rows that do not work are listed on purpose. Finding out after you have wired something in is worse than knowing now.
Measured, not estimated:
transcript is [{t, text}]. Platform captions are timed per line. Speech
recognition currently returns one segment per ~170 s of audio (a single
segment at t: 0 for a shorter clip); on_screen carries approximate,
keyframe-level times.In python/: MIT, Python 3.10+, standard library only.
pip install linkdigest-mcp # PyPI; or from this repo: pip install "git+https://github.com/jcaiagent7143-ui/linkdigest-mcp#subdirectory=python"
export LINKDIGEST_API_KEY=ld_live_...
linkdigest "https://v.douyin.com/xxxx/" --breakdown # Markdown to stdout
linkdigest capture ./video.mp4 --url "<link>" # a video you already have: sound + frames extracted here, never uploaded
from linkdigest import LinkDigest
d = LinkDigest().digest("https://xhslink.com/o/xxxx", translate_to="en")
print(d.title, d.credits, d.cached)
print(d.markdown)
Long jobs are collected for you (GET /api/v1/digest/{jobId}?wait=20); errors are typed
(PaymentRequiredError carries buy_url). Examples — Dify, OpenAPI import for Coze-style
platforms, Feishu Bitable, links to CSV — are in examples/ (Chinese).
The same tool as a Dify plugin lives in dify/ — source, manifest and privacy policy. Install it from the Dify Marketplace and paste your API key into the provider credential.
A REST API (POST https://linkdigest.dev/api/v1/digest), a web app, and Apify
Store actors for bulk runs. See linkdigest.dev.
MIT — see LICENSE. Changes are listed in CHANGELOG.md.