The social media reading layer for AI agents

Send it a Xiaohongshu or Douyin link.
Get the whole post back — with a receipt.

One call turns a Xiaohongshu, Douyin, YouTube, TikTok or X link into text: transcript, on-screen text, image descriptions and metadata — read by us, so no cookie or account of yours is ever involved. Add breakdown for the hook, the beats and a reusable template. Markdown for reading, JSON for pipelines. $0.02 an image post, $0.02 per minute of video, 10 free on sign-up.

Runs inClaude CodeCursorDifyCoze 扣子Hermes / OpenClawMeta MuseManus CueListed onMCP RegistryPyPIClawHubDify MarketplaceApifyGitHubReads小红书抖音TikTokYouTubeX微信公众号web pages

Reading the post…

A real digest of a 17-image Xiaohongshu post — 381 on-screen text fragments. Replayed; the actual run took 119s. The 30-day median for Xiaohongshu is 26 s.

why linkdigest

What a fetch, a scraper or a chatbot won't give you

Reads the words inside images and video

Xiaohongshu puts whole articles inside pictures; Douyin and TikTok say it out loud. We OCR every image, transcribe the speech with timecodes, and read on-screen text with when it appeared.

One link: a plain fetch got 860 characters. LinkDigest returned 35,059.

What each platform returns →

Your account never touches it

No cookies to export, no login to keep alive, no account of yours at risk of a ban. We do the reading; you send a link.

Works from a server, an agent or a script — nothing to install but one MCP line.

API and MCP docs →

Why a post works — viral breakdown

Tick viral breakdown and get the hook, the structure as timed beats, the title formula, the call to action and a reusable template.

Every quote is checked word for word against the post; engagement and hashtags come from the platform, not the model.

breakdown: true →

Wherever you already work

Claude Code and Cursor over MCP, a REST call, batches of 50 with a signed webhook, Dify and Apify — and an OpenAPI spec (/openapi.json) for Coze and other tool builders.

10 free credits to start. Links anyone has already read cost nothing, and a read that finds nothing is not charged.

Pricing →

try it

Paste a link. Any link.

One free digest, no account. The examples below run instantly because someone has already digested them — cached links are always free.

digest console
resolvefetchreaddigest

Try an example below, or paste your own link.

try

real output

Read one yourself

Four public digests, one per platform. Every line came out of the engine.

the problem

Fetching the URL gives you nothing

Both sides below are real output for the same Xiaohongshu post. On the left, what your agent gets today. On the right, what it gets through LinkDigest.

curl the link
$ curl 'xiaohongshu.com/discovery/item/6a8d764b…' <!doctype html> <html><head> <title>小红书</title> </head><body> <div id="app"></div> <script src="/vendor.js"></script> </body></html> # no caption. no images. no text.
POST /api/v1/digest

platformxiaohongshu

author周星星

title从 Agent Team 到 Agent Swarm(下篇)

images · 17 described and read

  • 文章封面,绿色背景上画着一群蚂蚁围着一片叶子,下方是文章标题元数据。
  • 第一版架构图,展示四个平等的 Agent 共同读写一个中央 Coordination File。

ocr_text · 381 fragments

  • Multi-Agent · 工程实践
  • 2026.8.4
  • 1.4 万字

key_points · 13

  • 文章探讨了多智能体系统从平级协作向递归蜂群架构演进的工程实践,重点解决大规模并发下的冲突与协调问题。

how it works

Three things happen

Resolve

Short links are expanded and tracking parameters stripped, so two people sharing the same post hit one cached result instead of paying twice.

Read

Captions are used where a platform publishes them. Otherwise the audio is transcribed and frames are sampled for burned-in text — never the whole file, and never stored.

Return

One structured object: transcript with timecodes, on-screen text, image descriptions, key points, and the whole thing pre-rendered as Markdown.

coverage

What works today

Fetching other people’s platforms breaks, so this table is kept honest rather than aspirational. When a platform blocks us, LinkDigest says so instead of returning a confident description of an error page.

PlatformStateNotes
xiaohongshu 小红书liveImage notes (up to 60 images) and video notes. No login needed.
douyin 抖音liveVideo posts and image notes, including 图文. Long videos can be read transcript-first.
youtubeliveRead by Gemini watching the video, since YouTube blocks datacenter IPs.
tiktokliveShort links resolve. Speech is read from the video itself, not the sound track.
xliveVideo posts in full. Image posts: every photo described. Long-form articles: the lead image.
wechat 公众号livePublic-account articles (mp.weixin.qq.com). No login needed.
web pagesliveArticle text and metadata.
bilibiliblockedBilibili refuses our server's address (HTTP 412). Needs a proxy.
instagramsoonWired, not yet verified end to end.

what you don’t have to do

The parts that are our problem, not yours

Each of these is something that was built, checked against a real link, and is written down in the coverage table or the docs.

No cookies or login for Xiaohongshu.

Image notes and video notes are read with no account at all, so there is nothing of yours to get banned.

Cookie rot is ours.

Douyin refuses anonymous requests, so it runs on our session cookies. When they lapse, that is our pager, not your incident.

YouTube read from a datacenter IP.

YouTube blocks datacenter address ranges, so a server-side fetch fails wherever it is deployed. Here a model watches the video instead.

Image notes read in full.

Every image in a Xiaohongshu note is described and read for on-screen text — the 17-image example on the homepage came back with all 17.

degraded names what failed.

A digest that is thinner than the post says so in plain words, in a field your code can branch on, instead of returning a confident description of less.

A digest that read nothing costs nothing.

If no transcript, text or image came back, the digest is not charged and is retried within the hour instead of being cached for a month.

Cached links are free.

Anything anyone has already digested comes back instantly and never counts against you.

install

One line, then forget about it

The agent calls digest_url by itself when it meets a social link. You don’t have to ask.

MCP · Claude Code

claude mcp add --transport http linkdigest \
  https://linkdigest.dev/mcp \
  --header "Authorization: Bearer ld_live_..."

REST

curl -X POST https://linkdigest.dev/api/v1/digest \
  -H "Authorization: Bearer ld_live_..." \
  -d '{"url": "https://v.douyin.com/..."}'

before you trust it

What you can check yourself

No company behind this, so here is the evidence instead of a logo wall.

The last 30 days, counted

116 reads by users, 58% came back whole; a whole read took 27 s at the median. Failures on our side count against us; our own accounts are left out; per-platform figures are recomputed hourly.

per platform →

Listed in the official MCP Registry

Published as dev.linkdigest/linkdigest. The registry only grants a domain namespace to whoever controls the domain's DNS, and the proof is public.

registry entry →

Open source, with signed builds

The SDK, CLI and skills are MIT on GitHub. Releases are built by GitHub Actions and carry a build attestation you can verify with `gh attestation verify`.

release v1.0.5 →

You never hand over an account

A call is a link, nothing else. No cookies, no passwords, no phone number; the reading happens on our servers, so nothing can get your account flagged.

API reference →

Not a downloader

Media is read and discarded. We never store, serve or redistribute the video or images behind a link; comments and private posts are not read.

privacy →

Payment through Stripe

Cards and Alipay are handled by Stripe. Card numbers never touch our servers, and the 250-credit pack is a one-off, not a subscription.

pricing →

A person answers

Run by one developer in Malaysia. Mail support@linkdigest.dev and a person replies, usually the same day. Domain ownership proof is published too.

domain proof →

pricing

10 free credits, then $5 once or $9 a month

Digests are cached and shared, so a link someone already read comes back instantly and never counts against you.

Free

$0

10 credits when you sign up — once, they do not renew. Every platform, full output, no card. Then $5 once for 250 credits, no subscription.

Dev

$9/month

500 credits a month — about 500 minutes of video, or that many posts.

Every plan includes the REST API and the MCP server — the free plan too.

questions

Questions people actually ask

Why can't my agent just fetch the link itself?
Share URLs are tokenised and the content is video or images rather than text. Fetching one returns an app-download shell or a login wall, not the post. There is nothing in the HTML to read.
How do I get a Xiaohongshu post into Claude Code?
Add the LinkDigest MCP server, then paste the link. The agent calls digest_url on its own and gets the note's images, on-screen text and caption back as Markdown. Share links with xsec_token work exactly as you copied them.
Does it transcribe Chinese speech?
Yes. Where a platform already publishes captions those are used — they are free and more accurate. Otherwise speech is transcribed with OpenAI's gpt-4o-mini-transcribe, which returns punctuated Chinese. The transcript comes back as sentences; each sentence's start time is estimated from its place in the audio (marked approx), and on-screen text carries its own approximate times.
Do you store the videos or images?
No. Media is processed in a temporary directory deleted before the request returns. Only the resulting text digest is stored, so a link someone already digested costs nothing to serve again.
What exactly comes back?
platform, author, title, posted_at, caption, transcript with timecodes, on-screen text with times, images with descriptions, key_points, engagement counts and hashtags, the video's chapters, category and soundtrack as the platform gives them, the links the post points to (from its text, its QR codes and WeChat's 阅读原文 — listed, never opened), and raw_markdown — plus a breakdown (hook, timed beats, reusable template) when you ask for one. Markdown for reading, JSON for pipelines.