linkdigest-social-link-reader – Marketing & SEO skill for AI agents
Read one public Xiaohongshu, Douyin, TikTok, YouTube, X or WeChat article link into text an agent can use (transcript, image text, key points) via the LinkDigest API or MCP server.
Install the linkdigest-social-link-reader skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/linkdigest-social-link-reader-5ae8b.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /linkdigest-social-link-reader – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/linkdigest-social-link-reader-5ae8b.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $linkdigest-social-link-reader – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/linkdigest-social-link-reader-5ae8b.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /linkdigest-social-link-reader – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/linkdigest-social-link-reader-5ae8b.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /linkdigest-social-link-reader – then describe the task you want done.
SKILL.md content
LinkDigest Social Link Reader
Overview
A plain fetch of a Xiaohongshu, Douyin or TikTok link returns an app-download page or a login wall, and the content is inside the images and the speech anyway. This skill hands one public post link to LinkDigest and gets back text: the caption, the spoken transcript, the text written on screen or inside images, key points with quotes checked word for word against the source, and a coverage receipt that says what was read and what was not.
It works through either the REST API (POST https://linkdigest.dev/api/v1/digest) or the hosted MCP server (https://linkdigest.dev/mcp, one read-only tool digest_url). The user brings their own LINKDIGEST_API_KEY; the service is pay as you go after 10 free credits.
When to Use
- Use when the user pastes a Xiaohongshu / RedNote (
xiaohongshu.com,xhslink.com,rednote.com), Douyin (douyin.com,v.douyin.com), TikTok, YouTube, X or WeChat 公众号 (mp.weixin.qq.com) link and asks what it says, wants a summary, a translation, or the text for research. - Use when you already tried to fetch such a link and got an app shell, a login wall, or a page with a title and no body.
- Use when the content of a post is inside the images (Xiaohongshu image notes, WeChat long images) or inside the speech (Douyin, TikTok, YouTube) and you need it as text.
- Use when the user wants to learn how a post is built (optional breakdown: hook, timed beats, title formula, call to action, reusable template).
Do not use it for an ordinary article that fetches fine; read that directly, it is faster and free.
Setup
1. The user creates an API key at https://linkdigest.dev/app/keys (sign in with Google or an email link). The key starts with ld_live_. New accounts get 10 free credits once; no card is needed.
2. The user puts the key in the environment of the shell or agent config:
export LINKDIGEST_API_KEY=the_key_the_user_created # starts with ld_live_Keep the key in an environment variable or the agent's config. Never paste it into the conversation, a file that is committed, or a log.
Docs: https://linkdigest.dev/docs (English) and https://linkdigest.dev/zh/docs (中文).
How It Works
Step 1: Pick the transport
- REST API: one
curlor oneurllibcall. Use it from scripts and from agents without MCP. - MCP server: add the remote server once and the agent calls
digest_urlitself when it meets a link it cannot read. Streamable HTTP, headerAuthorization: Bearer <key>. - Python SDK / CLI (a separately reviewed SDK installation (not installed by this skill), standard library only) if the user prefers a typed client. It also ships
linkdigest-mcp, a stdio MCP server that forwards to the hosted endpoint.
Step 2: Read the link (REST)
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/<note-id>", "format": "json", "max_credits": 1}'Request fields (only url is required):
| Field | Meaning |
| --- | --- |
| url | The post link, including any share tokens. The whole share text copied from the app also works; the link is picked out server side. |
| format | json (structured fields plus the whole digest as markdown) or markdown. |
| translate_to | A language code (en, ja, zh-CN): adds a translation beside the original. +1 credit. |
| breakdown | true: adds the structure breakdown. +1 credit. |
| depth | transcript for long videos: full transcript with few frames, 1 credit per 2 minutes. |
| max_credits | Your own ceiling for this link. Over it the API answers 402 and spends nothing. |
| partial_ok | true: read the opening minutes a budget allows instead of refusing a long video. |
Step 3: Collect a long job
A short post or a cached link returns 200 with the digest. A long video returns 202 with a jobId. Poll with the job id; do not resend the url, that starts the work again and charges twice.
curl -sS "https://linkdigest.dev/api/v1/digest/<jobId>?format=json&wait=20" \
-H "Authorization: Bearer $LINKDIGEST_API_KEY"wait=20 holds the request open up to 20 seconds; poll with bounded retries until200 or a terminal error/deadline; do not loop indefinitely. Read coverage and degraded before quoting anything.
Step 4: Or use the MCP server instead
Claude Code:
claude mcp add --transport http linkdigest https://linkdigest.dev/mcp \
--header "Authorization: Bearer $LINKDIGEST_API_KEY"Cursor or any client that reads an mcp.json:
{
"mcpServers": {
"linkdigest": {
"type": "streamable-http",
"url": "https://linkdigest.dev/mcp",
"headers": { "Authorization": "Bearer ${LINKDIGEST_API_KEY}" }
}
}
}The server exposes one tool, digest_url(url, format, job_id, translate_to, breakdown, partial_ok). When a long video returns a job id, call the tool again with job_id and no url. The server is listed in the official MCP registry as dev.linkdigest/linkdigest.
What comes back
With format: json: platform, author, title, posted_at, caption, transcript ([{t, text}]), on_screen ([{t, text}]), ocr_text, images ([{description, ocr}]), key_points (each with a quote checked word for word against the source), stats (likes, comments, saves, shares, plays as the platform reported them), tags, links (links and QR codes the post points to; listed, never opened), coverage (what was read and what was not), degraded (what did not fully work), transcript_source (native_captions, asr, gemini_video or none), credits, cached, markdown, plus breakdown and translation when asked for.
Per platform:
- Xiaohongshu / RedNote image notes: caption plus the text inside every image, up to 60 images; video notes: transcript and on-screen text.
- Douyin: transcript, on-screen text with times, the post's own chapters and category when Douyin provides them.
- TikTok: transcript and on-screen text.
- YouTube: published captions where they exist, otherwise a model watches the video and writes the transcript (
transcript_source: gemini_video). - X: posts with video or images.
- WeChat 公众号 articles: full text plus every image's text, and the links the article points to.
- Ordinary web pages: readable article text, title, author, date.
Examples
Example 1: Summarise a Xiaohongshu note in English
curl -sS -X POST "https://linkdigest.dev/api/v1/digest" \
-H "Authorization: Bearer $LINKDIGEST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://xhslink.com/o/<share-id>", "format": "json", "translate_to": "en", "max_credits": 3}'Then answer from key_points and translation, and tell the user what coverage says was not read (for example images past the budget).
Example 2: Transcript of a Douyin video, capped at 5 credits
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/<short-id>/", "format": "markdown", "max_credits": 5}'If the answer is 402, the video would cost more than 5 credits; nothing was spent. Ask the user before raising the cap, or add "partial_ok": true to read the opening minutes.
Example 3: Python, standard library only
import json, os, urllib.request
req = urllib.request.Request(
"https://linkdigest.dev/api/v1/digest",
data=json.dumps({"url": "https://mp.weixin.qq.com/s/<article-id>", "format": "json", "max_credits": 1}).encode(),
headers={
"Authorization": "Bearer " + os.environ["LINKDIGEST_API_KEY"],
"Content-Type": "application/json",
},
)
with urllib.request.urlopen(req, timeout=120) as r:
body = json.load(r)
if r.status == 202:
print("long job, poll /api/v1/digest/" + body["jobId"])
else:
print(body["title"], body["credits"], body["cached"])
print(body["markdown"])Pricing
Stated so the agent can tell the user before spending:
- 10 free credits on sign-up, once.
- Then $5 for 250 credits (1 credit is about $0.02; Alipay accepted, settled as ¥36) or Dev $9/month for 500 credits. See
https://linkdigest.dev/pricing. - An image post of up to 6 images: 1 credit. A video: 1 credit plus 1 per started minute. Breakdown or translation: +1 each. Long videos in transcript mode: 1 credit per 2 minutes.
- Links already read by anyone are cached and free (
cached: true,credits: 0). - HTTP 402 (out of credits or over
max_credits) and 422 (unreadable post) spend nothing.
Best Practices
- ✅ Set
max_creditson every call and tell the user the cost before reading a long video. - ✅ Quote only from
transcript,ocr_text,images[].ocrorkey_points; say which, and checktranscript_sourcefi
… (full content is in the download package)
Related skills
- linkedin-profile-optimizer – High-intent expert for LinkedIn profile checks and SEO optimization. Silently audits and…
- x-twitter-growth – X/Twitter growth engine for building audience, crafting viral content, and analyzing…
- local-seo-audit-checklist – Local SEO Audit Checklist. Use when working with business type, location and profile or…
- lognorm – Work a site's SEO and AI-visibility (GEO) backlog through the hosted LogNorm MCP server…
- mailtrap-sending-emails – Configure or troubleshoot Mailtrap live email sending with Email API, SMTP…
- marketing-ideas – Provide proven marketing strategies and growth ideas for SaaS and software products…
- marketing-mindset – Use when a user asks how to win first customers, whether doing X will produce Y, how to…
- marketing-plan – When the user needs a comprehensive marketing plan for a client, a company they advise…