Douyin, Xiaohongshu, TikTok, YouTube, X links to text: transcript, screen text, viral breakdown
Call this server's tools from your browser. Nothing to install.
Bearer token — an API key issued at https://linkdigest.dev/app/keys
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
How many credits this API key has left, what each kind of read costs, and where to buy more (links need no sign-in; the credit pack takes Alipay). Without a key it returns the prices and how to get a key. Call it before a batch of reads, or when digest_url says credits ran out.
This tool takes no arguments.
How many credits this API key has left, what each kind of read costs, and where to buy more (links need no sign-in; the credit pack takes Alipay). Without a key it returns the prices and how to get a key. Call it before a batch of reads, or when digest_url says credits ran out.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Read a set of Xiaohongshu, Douyin, TikTok, YouTube or X links as one batch and write one comparison over them (批量综合): the themes, hooks, formats and claims they share, the objections readers raise and the gaps none of them cover, every example naming which link it came from and checked against it word for word. The first call starts the batch and returns a batch id; call again with batch_id to collect. Needs an API key. Each link is read at its usual price (cached links are free); the comparison is 1 credit per 10 links. Example: urls=["https://xhslink.com/o/a", "https://xhslink.com/o/b"]. After the browser extension's “Digest the notes on this page” button, call list_batches and pass the newest batch_id here.
| Argument | Type | Description |
|---|---|---|
| urls | array | The post links, 1 to 20. Required unless batch_id is given. |
| insight | boolean | Also draw every post's consumer insight (消费者洞察) and compare on it. +1 credit a link. |
| batch_id | string | Collect a batch still running, instead of urls (re-sending the urls would start it again). |
| breakdown | boolean | Also take every post apart (爆款拆解) so the comparison sees each hook and format. +1 credit a link. |
| translate_to | string | Write the comparison (and each digest) in this language, e.g. en. +1 credit a link. |
{
"type": "object",
"required": [],
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"description": "The post links, 1 to 20. Required unless batch_id is given."
},
"insight": {
"type": "boolean",
"description": "Also draw every post's consumer insight (消费者洞察) and compare on it. +1 credit a link."
},
"batch_id": {
"type": "string",
"description": "Collect a batch still running, instead of urls (re-sending the urls would start it again)."
},
"breakdown": {
"type": "boolean",
"description": "Also take every post apart (爆款拆解) so the comparison sees each hook and format. +1 credit a link."
},
"translate_to": {
"type": "string",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"description": "Write the comparison (and each digest) in this language, e.g. en. +1 credit a link."
}
}
}Read what a social media link actually says. Works on Xiaohongshu, Douyin, TikTok, YouTube, X and ordinary web pages. Returns the post's transcript with times, on-screen text, the text in every image, caption and counts, key points each backed by a quote checked against the post (`key_point_support` in json), and a receipt of what was read (`coverage` in json). Bilibili, Instagram and Facebook are not supported. Works without an API key for a first look (a summary, two a day per address); the full output needs a key — see check_balance. If the result names a job id, call again with job_id only. Example: url="https://v.douyin.com/abc/", ask="推荐了什么产品、多少钱?".
| Argument | Type | Description |
|---|---|---|
| ask | string | A question to answer from the post, e.g. "what products and prices does it recommend?". Returns answer, found and the quotes it rests on, checked against the post; found is false when the post does not say — nothing is invented. +1 credit. |
| url | string | The post link, or the share text that contains it. Required unless job_id is given. |
| depth | string | full (default), or transcript for a long video: the whole transcript with a frame a minute, 1 credit per started 2 minutes and a longer length cap. YouTube is always read in full. |
| format | string | markdown (default) or json (structured: `coverage`, `key_point_support`, `answer`, and `links` — the links the post points to, with kind; None is opened). |
| job_id | string | Collect a digest still running, instead of url (re-sending the url would start it again). |
The last batches on this API key, newest first — including the ones the browser extension's “Digest the notes on this page” button started from the user's own Xiaohongshu or Douyin tab. Each line: batch_id, label, created, status done/total, credits, synthesis (ready, pending, failed or none). Pass a batch_id to compare_links to read the comparison. Starts nothing, costs nothing. Needs an API key.
| Argument | Type | Description |
|---|---|---|
| label | string | Only batches with this name — the query of a search_links handoff to the user's own browser. |
| limit | integer | How many, 1 to 10 (default 10). |
{
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 80,
"description": "Only batches with this name — the query of a search_links handoff to the user's own browser."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many, 1 to 10 (default 10)."
}
},
"additionalProperties": false
}Find posts on a topic on xiaohongshu, douyin, youtube, x, web (web search scoped to the platform, filtered to links digest_url can read). A search that finds posts costs 2 credits on douyin and xiaohongshu, 1 elsewhere; nothing found is free; 10 searches an hour per key. Returns a numbered list; pass digest: true to read them as one batch and compare them (then compare_links with the batch_id). xiaohongshu returns the notes the web has indexed, read from their public pages (no login, no session); for the user's own feed or a search the web has not seen, they press the extension's “Digest the notes on this page” button on the page they see, then list_batches. douyin returns the video pages the web has indexed, each read through Douyin's own embed player like a pasted link; Chinese words find the most. Needs an API key. Example: query="护肤 早C晚A", platform="xiaohongshu", limit=5.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many links, 1 to 10 (default 5). |
| query* | string | The topic, in any language. |
| digest | boolean | Also read the results as one batch with a comparison (批量综合); returns the batch_id for compare_links. |
| insight | boolean | With digest: draw every post's consumer insight (消费者洞察), +1 credit a link. |
| platform* | string | Where to look: xiaohongshu, douyin, youtube, x, web. |
| insight | boolean | Consumer insight (消费者洞察): audience, claims, objections, purchase-intent cues, products/prices, questions — each a quote checked against the post and its top comments. +1 credit. |
| breakdown | boolean | Also take the post apart (爆款拆解): hook, timed beats, title formula, call to action, reusable template; quotes checked against the post. +1 credit. |
| partial_ok | boolean | Read the opening minutes the budget affords instead of refusing a long video; the digest then carries `partial`. Default false: a long video is refused for free. |
| translate_to | string | Also translate into this language (en, ja, zh-CN); the original text is kept. +1 credit. |
{
"type": "object",
"required": [],
"properties": {
"ask": {
"type": "string",
"maxLength": 300,
"description": "A question to answer from the post, e.g. \"what products and prices does it recommend?\". Returns answer, found and the quotes it rests on, checked against the post; found is false when the post does not say — nothing is invented. +1 credit."
},
"url": {
"type": "string",
"description": "The post link, or the share text that contains it. Required unless job_id is given."
},
"depth": {
"enum": [
"full",
"transcript"
],
"type": "string",
"description": "full (default), or transcript for a long video: the whole transcript with a frame a minute, 1 credit per started 2 minutes and a longer length cap. YouTube is always read in full."
},
"format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"description": "markdown (default) or json (structured: `coverage`, `key_point_support`, `answer`, and `links` — the links the post points to, with kind; None is opened)."
},
"job_id": {
"type": "string",
"description": "Collect a digest still running, instead of url (re-sending the url would start it again)."
},
"insight": {
"type": "boolean",
"description": "Consumer insight (消费者洞察): audience, claims, objections, purchase-intent cues, products/prices, questions — each a quote checked against the post and its top comments. +1 credit."
},
"breakdown": {
"type": "boolean",
"description": "Also take the post apart (爆款拆解): hook, timed beats, title formula, call to action, reusable template; quotes checked against the post. +1 credit."
},
"partial_ok": {
"type": "boolean",
"description": "Read the opening minutes the budget affords instead of refusing a long video; the digest then carries `partial`. Default false: a long video is refused for free."
},
"translate_to": {
"type": "string",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"description": "Also translate into this language (en, ja, zh-CN); the original text is kept. +1 credit."
}
}
}| breakdown |
| boolean |
| With digest: take every post apart (爆款拆解), +1 credit a link. |
{
"type": "object",
"required": [
"query",
"platform"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many links, 1 to 10 (default 5)."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "The topic, in any language."
},
"digest": {
"type": "boolean",
"description": "Also read the results as one batch with a comparison (批量综合); returns the batch_id for compare_links."
},
"insight": {
"type": "boolean",
"description": "With digest: draw every post's consumer insight (消费者洞察), +1 credit a link."
},
"platform": {
"enum": [
"xiaohongshu",
"douyin",
"youtube",
"x",
"web"
],
"type": "string",
"description": "Where to look: xiaohongshu, douyin, youtube, x, web."
},
"breakdown": {
"type": "boolean",
"description": "With digest: take every post apart (爆款拆解), +1 credit a link."
}
},
"additionalProperties": false
}