Social URL to LLM Text — Xiaohongshu, Douyin, YouTube, X
Pricing
from $20.00 / 1,000 link digesteds
Social URL to LLM Text — Xiaohongshu, Douyin, YouTube, X
Turn a Xiaohongshu, Douyin, YouTube or X link into text an LLM can read: transcript, on-screen text, image descriptions, caption and metadata.
Pricing
from $20.00 / 1,000 link digesteds
Rating
5.0
(1)
Developer
Programming with Jack Chew
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Social URL to LLM Text
Paste a Xiaohongshu, Douyin, YouTube or X link and get back text a language model can actually read: transcript, on-screen text, image descriptions, caption and metadata.
Official website: linkdigest.dev — powered by LinkDigest, which also offers this as an MCP server and a REST API.
The problem this solves
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. There is nothing in the page to parse.
$ curl -s 'https://xhslink.com/o/1WiQ1QI6Uc0' | grep -o '<title>.*</title>'<title>小红书</title>
That is the whole page. No caption, no images, no text.
This Actor returns the post instead:
{"platform": "douyin","author": "逸蒙的赛博空间","title": "这只丑萌AI竟然月售100万美金!","posted_at": "2026-08-27","key_points": ["该AI产品名为 Tolen,主打「记住你」的核心功能","商业模式为订阅制,提供免费体验,付费解锁更长时间的聊天服务"],"transcript": [{ "t": 0, "text": "谁能想到,就这么一个丑萌小玩意儿…" }],"transcript_source": "asr","images": [{ "description": "…", "ocr": "…" }],"ocr_text": ["…"],"credits": 7}
Platforms
Every row below was checked against a real post, not a documentation page.
| Platform | Status |
|---|---|
| Xiaohongshu 小红书 | Works — including image notes, with every image described and OCR'd |
| Douyin 抖音 | Works — video transcribed |
| YouTube | Works — native captions where available, ASR otherwise |
| X | Works |
| Web pages / articles | Works |
| TikTok | Not supported. TikTok blocks our servers' IP range |
| Bilibili | Not supported. Returns HTTP 412 to our servers |
| Instagram, Facebook | Not supported |
The two unsupported rows are listed on purpose. Finding out after you have wired something in is worse than knowing now.
Input
| Field | Type | Notes |
|---|---|---|
urls | array of strings | Required. Share links work as-is. |
format | json or markdown | json gives separate fields; markdown gives one ready-to-paste document per link. |
maxItems | integer | Optional ceiling so a long list cannot cost more than expected. |
Output
One dataset item per link. In json mode:
platform, author, title, posted_at, caption, transcript ({t, text}),
ocr_text, images ({description, ocr}), key_points, source_url,
transcript_source (native_captions | asr | none), degraded, cached,
credits.
A link that cannot be read still produces an item, carrying url and error.
Nothing is silently dropped — a short dataset is the worst way to discover that
three of your fifty links failed.
Pricing
| Event | Price |
|---|---|
digest-completed | $0.02 per link successfully read |
extra-credit | $0.01 per credit beyond the first |
Credits track the two things that actually cost money: images to describe and minutes of media to transcribe. One base credit covers a typical post and its first six images; each further six images adds one, and each minute of audio or video adds two.
| Example | Price |
|---|---|
| A web article or short text post | $0.02 |
| A Xiaohongshu note with 17 images | $0.04 |
| A 2.5-minute Douyin video | $0.08 |
| A 19-minute YouTube video | $0.40 |
A link that fails is never charged. Neither is a run that fails because of a problem on our side.
How long it takes
Real measurements, not estimates:
- Already-digested link: about 1 second (anything anyone has run before is cached)
- Xiaohongshu note with images: 1–2 minutes
- YouTube video with captions: about 2.5 minutes
Links are processed four at a time.
Notes
- The heavy work runs on our servers, not on Apify. That is deliberate: the platforms above refuse datacenter IP ranges, so fetching from inside a cloud Actor is exactly what does not work.
- Chinese text is returned as-is, not translated.
Also available at linkdigest.dev
The same service runs at linkdigest.dev, where you can use it three other ways:
- MCP server — inside Claude Code or Cursor, so an agent can read a link
mid-conversation:
claude mcp add --transport http linkdigest \https://linkdigest.dev/mcp \--header "Authorization: Bearer ld_live_..."
- REST API —
POST https://linkdigest.dev/api/v1/digest - Web app — paste a link and read the result in the browser
Three digests free, no card. Questions or a link that should work but doesn't: linkdigest.dev.