LinkDigest — Xiaohongshu, Douyin, TikTok, YouTube to text
Server Details
Douyin, Xiaohongshu, TikTok, YouTube, X links to text: transcript, screen text, viral breakdown
- Status
- Healthy
- Uptime
- 100.0% over 58 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- jcaiagent7143-ui/linkdigest-mcp
- GitHub Stars
- 2
- Server Listing
- LinkDigest
TDQS
Scored across 5 tools
Each tool has a distinct role: balance check, single-link read, batch comparison, batch listing, and search. The main overlap is that search_links can read results as a batch (digest: true), which intersects with compare_links, but the descriptions explicitly explain the handoff, so an agent can follow the chain.
All five tools follow a strict verb_noun snake_case pattern: check_balance, compare_links, digest_url, list_batches, search_links. No style mixing or vague verb-only names.
Five tools is well-scoped for a link-to-text service: search, single read, batch read/compare, batch history, and credit check each cover a needed step. Nothing appears redundant or missing at the count level.
The surface covers discovery (search), reading (digest_url), multi-link synthesis (compare_links), batch tracking (list_batches), and cost awareness (check_balance) — a coherent lifecycle. Minor gaps: no way to cancel or delete a batch, and no tool to revisit an individual link's stored result outside a batch.
Available Tools
5 toolscheck_balanceCredits left and what a read costsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, non-open-world behavior, so the bar is lower. The description adds non-obvious behavior the annotations cannot convey: it works without a key and then returns pricing plus key-acquisition instructions, and it discloses the Alipay payment path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what is returned, then appends the no-key behavior and the invocation timing. Two sentences with little waste, though the payment-method and sign-in details are slightly dense parenthetical material.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the return-value burden and does so adequately: credits remaining, per-read pricing, purchase links, and no-key fallback. Good enough for an agent to call and interpret it, though it does not sketch the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate; the 0-param baseline applies. The description correctly focuses on output instead of inventing input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise resource and what it reports: remaining credits for the API key, per-read costs, and purchase links. The reference to digest_url makes it clearly distinguishable from its only sibling without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger conditions — call before a batch of reads, or after digest_url reports exhausted credits. Covers when to use it well, though it does not state any case in which it should be skipped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_linksCompare a set of posts in one pageARead-onlyInspect
Read a set of Xiaohongshu, Douyin, Weibo, 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.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | No | The post links, 1 to 20. Required unless batch_id is given. | |
| insight | No | Also draw every post's consumer insight (消费者洞察) and compare on it. +1 credit a link. | |
| batch_id | No | Collect a batch still running, instead of urls (re-sending the urls would start it again). | |
| breakdown | No | Also take every post apart (爆款拆解) so the comparison sees each hook and format. +1 credit a link. | |
| translate_to | No | Write the comparison (and each digest) in this language, e.g. en. +1 credit a link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, openWorld, non-idempotent, non-destructive), the description discloses the things an agent most needs: an API key is required, the first call is not the final result (batch id + collect pattern), and each link is billed at its usual price with cached links free and the comparison at 1 credit per 10 links. The schema also warns that re-sending urls restarts the batch, consistent with idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and output contents, then workflow, then cost, then example — a sensible order. It is dense with parenthetical bilingual labels and pricing details that make it longer than strictly needed, but nearly every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by describing what the comparison contains and that the first call returns a batch id. Auth, cost, and the async collect pattern are all covered, so an agent can invoke and follow up correctly without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value the schema lacks: a concrete urls example, the batch_id-driven collect pattern, and the credit cost of insight/breakdown/translate_to (+1 per link each). It stops short of explaining the exact comparison output shape for each flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read as one batch, write one comparison) over a specific resource (a set of links from named platforms), and enumerates what the output contains: shared themes, hooks, formats, claims, objections, gaps, with every example attributed to a source link. This is clearly distinguishable from digest_url (one link) and search_links (find links).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use context (after the browser extension's 'Digest the notes on this page' button, call list_batches and pass the newest batch_id here) and explains the two-call lifecycle: first call starts the batch and returns a batch id, later calls collect with batch_id. It does not explicitly contrast with digest_url for the single-link case, so the exclusion is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digest_urlRead a social media post as textARead-onlyInspect
Read what a social media link actually says. Works on Xiaohongshu, Douyin, Weibo, TikTok, YouTube, X, Instagram, Bilibili, podcast episodes (小宇宙, Apple Podcasts) 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). Facebook and Spotify 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="推荐了什么产品、多少钱?".
| Name | Required | Description | Default |
|---|---|---|---|
| ask | No | 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 | No | The post link, or the share text that contains it. Required unless job_id is given. | |
| depth | No | 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. script: the speech only (文案), 1 credit per started 2 minutes, no base. YouTube is always read in full. | |
| format | No | 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 | No | Collect a digest still running, instead of url (re-sending the url would start it again). | |
| insight | No | 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 | No | Also take the post apart (爆款拆解): hook, timed beats, title formula, call to action, reusable template; quotes checked against the post. +1 credit. | |
| partial_ok | No | 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 | No | Also translate into this language (en, ja, zh-CN); the original text is kept. +1 credit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/openWorld/idempotent=false) the description discloses credit costs, free-tier rate limits, auth requirements, the resume-via-job_id behavior that explains the non-idempotent hint, and the partial_ok refusal-vs-partial tradeoff. This is exactly the context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then platforms, then output, then constraints and example — good ordering. It is dense but nearly every clause carries operational information; the parenthetical pricing details slightly bloat the middle.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description enumerates the return shape (transcript, key_point_support, coverage, answer/found, links) and explains the job_id polling path. For a 9-parameter tool with all params documented, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3; the description still adds cross-parameter meaning: url is mutually exclusive with job_id, and re-sending the url restarts the job. It also gives a concrete url/ask example and the depth caveat that YouTube is always read in full.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read what a social media link actually says') and enumerates the supported platforms plus the exact artifacts returned (transcript with times, on-screen text, image text, key points with quotes, coverage receipt). An agent can tell this apart from search_links/compare_links without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists supported and unsupported platforms (Facebook and Spotify not supported), states the no-key trial limit ('two a day per address'), points to check_balance for full output, and gives the polling rule for job_id. Alternatives and exclusions are named rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_batchesThis account's last batchesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Only batches with this name — the query of a search_links handoff to the user's own browser. | |
| limit | No | How many, 1 to 10 (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (which already cover readOnly/idempotent/non-destructive/closed-world) by disclosing ordering (newest first), that it consumes no credits and starts no work, and that an API key is required. It also enumerates the exact per-line output fields, which is the main behavioral unknown in a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded, and the output-line enumeration earns its space given there is no output schema. The dense opening sentence with em-dashes is slightly heavy but carries real information, not filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-format burden and does so completely: field list per line plus the possible synthesis states. Combined with the cost/side-effect statement and the compare_links handoff, an agent has everything needed to call and consume this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (label, limit) are already documented in the schema with their bounds and defaults. The description adds no format or semantic detail for these parameters beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list the last batches), plus scope and ordering ('on this API key, newest first'). It also names the origin of unusual batches (browser extension digest on Xiaohongshu/Douyin tabs), which is exactly the kind of distinction that separates it from siblings like search_links and compare_links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent onward — 'Pass a batch_id to compare_links to read the comparison' — and reassures about cost/side effects ('Starts nothing, costs nothing'). It does not, however, state when to prefer or avoid this tool versus search_links or check_balance, so it stops short of full alternative coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_linksFind posts on a topicARead-onlyInspect
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 4 credits on douyin and xiaohongshu, 1 elsewhere; nothing found is free. Searching is metered by credits, not by an hourly count. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many links, 1 to 10 (default 5). | |
| query | Yes | The topic, in any language. | |
| digest | No | Also read the results as one batch with a comparison (批量综合); returns the batch_id for compare_links. | |
| insight | No | With digest: draw every post's consumer insight (消费者洞察), +1 credit a link. | |
| platform | Yes | Where to look: xiaohongshu, douyin, youtube, x, web. | |
| breakdown | No | With digest: take every post apart (爆款拆解), +1 credit a link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/openWorld/idempotent annotations by disclosing the credit cost model per platform, that 'nothing found is free', metered-by-credits rather than hourly limits, and that an API key is required. Also explains the no-login public-page read path for xiaohongshu and the embed-player read for douyin. Slightly dense but covers the traits an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then cost, then per-platform behavior and an example — a sensible order. It is longer than typical and the platform-specific details run together, but nearly every sentence carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, cost, auth, platform-specific limitations, the digest→compare_links workflow, and a worked example, which is everything needed to call a metered search tool with no output schema. No material gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds workflow-level meaning by tying digest: true to the compare_links follow-up via batch_id, and gives a concrete example query/platform/limit set. It does not explain insight/breakdown, but the schema already documents those.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Find posts on a topic') and immediately enumerates the five platforms searched, so an agent knows exactly what this returns without opening the schema. It is clearly distinct from siblings like digest_url (reads a single link) and compare_links (compares a batch).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States explicit routing: pass digest: true to read results as one batch and then use compare_links with the batch_id. It also gives a concrete alternative path when xiaohongshu lacks web-indexed coverage (extension button, then list_batches), and notes douyin's Chinese-language query effectiveness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
digest_url2 fields changed- changed
Input schema / properties / depth / descriptionPrevious value: -"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."New value: +"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. script: the speech only (文案), 1 credit per started 2 minutes, no base. YouTube is always read in full." - changed
Input schema / properties / depth / enumPrevious value: -[ - "full", - "transcript" -]New value: +[ + "full", + "transcript", + "script" +]
1 tool update
- Changed
search_links2 fields changed- changed
Input schema / properties / platform / descriptionPrevious value: -"Where to look: xiaohongshu, youtube, x, web."New value: +"Where to look: xiaohongshu, douyin, youtube, x, web." - changed
Input schema / properties / platform / enumPrevious value: -[ - "xiaohongshu", - "youtube", - "x", - "web" -]New value: +[ + "xiaohongshu", + "douyin", + "youtube", + "x", + "web" +]
1 tool update
- Changed
list_batches1 field changed- added
Input schema / properties / labelAdded value: +{ + "description": "Only batches with this name — the query of a search_links handoff to the user's own browser.", + "maxLength": 80, + "type": "string" +}
1 tool update
- Changed
search_links2 fields changed- changed
Input schema / properties / platform / descriptionPrevious value: -"Where to look: youtube, x, web."New value: +"Where to look: xiaohongshu, youtube, x, web." - changed
Input schema / properties / platform / enumPrevious value: -[ - "youtube", - "x", - "web" -]New value: +[ + "xiaohongshu", + "youtube", + "x", + "web" +]
2 tool updates
- Added
list_batches - Added
search_links
1 tool update
- Added
compare_links
1 tool update
- Changed
digest_url1 field changed- added
Input schema / properties / insightAdded value: +{ + "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.", + "type": "boolean" +}
1 tool update
- Changed
digest_url8 fields changed- changed
Input schema / properties / ask / descriptionPrevious value: -"A question to answer from the post, in any language: \"what products and prices does it recommend?\", \"does the speaker say X?\", \"what is step three?\". The answer comes with the quotes it rests on, each checked against the post by the server (`answer` in json: answer, found, support[]; an Answer section in markdown). `found` is false when the post does not address it — nothing is invented. Costs the digest's price plus 1 credit; the same question on the same url is served from cache for free."New value: +"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." - changed
Input schema / properties / breakdown / descriptionPrevious value: -"Also take the post apart (爆款拆解): the hook in its first seconds, the structure as timed beats, the title formula, cover text, call to action, audience, and a reusable template to make your own version. Quotes are copied from the post and checked against it; engagement counts and hashtags come from the platform. Written in the post's language, or in translate_to if given. Shown as a section in markdown and as `breakdown` in json. Costs the digest's price plus 1 credit; a repeat is served from cache for free."New value: +"Also take the post apart (爆款拆解): hook, timed beats, title formula, call to action, reusable template; quotes checked against the post. +1 credit." - changed
Input schema / properties / depth / descriptionPrevious value: -"How much of a video to read. full (default): the transcript plus frames sampled densely, 1 credit per started minute. transcript: transcript-first, for long videos — the whole transcript plus one frame a minute (or one per chapter), one credit per started 2 minutes, and a longer length cap (free 60 min, paid 120 min, against 10 and 30 for full). Coverage says the frames were sparse and `depth` in json says which read it was. When a full read would be partial, `partial.transcript_credits` is what this read of the whole video costs. A YouTube video read by Gemini watching it (YouTube blocks this server) has no transcript-only form: it is read in full and priced as a full read."New value: +"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." - changed
Input schema / properties / format / descriptionPrevious value: -"markdown (default, best for reading) or json (structured). json adds `coverage` (seconds_transcribed, duration_seconds, largest_frame_gap_seconds, images_read, images_total, not_captured) and `key_point_support` ({ point_index, kind, t, image_index, quote, verified } per key point). Either format lists the links the post points to (a Links section; `links` in json: { url, found_in, label, kind }, from its caption, QR codes, WeChat's 阅读原文 and on-screen text). None is opened; kind marks payment codes and group invites."New value: +"markdown (default) or json (structured: `coverage`, `key_point_support`, `answer`, and `links` — the links the post points to, with kind; None is opened)." - changed
Input schema / properties / job_id / descriptionPrevious value: -"Collect a digest already running. Pass the job id from a previous call instead of url. Use this rather than re-sending the url, which would start the work again."New value: +"Collect a digest still running, instead of url (re-sending the url would start it again)." - changed
Input schema / properties / partial_ok / descriptionPrevious value: -"Read the opening minutes the budget affords instead of refusing a video over max_credits or the plan's length cap. Default false: a long video is refused and costs nothing (YouTube excepted: its length is known only after Gemini watches it, so it is read in full and billed at most max_credits). When true, the digest carries `partial` (read_seconds, duration_seconds, full_credits). An image post the budget does not cover whole reads its first images instead (6 a credit); its partial has 0 seconds, and image_count / images_read say how many."New value: +"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." - changed
Input schema / properties / translate_to / descriptionPrevious value: -"Also translate the digest into this language: an ISO 639-1 code, optionally with a region (en, ja, zh-CN). The original-language text is always returned; the translation is added alongside it under `translation` (title, caption, key points, transcript text, on-screen text, image descriptions), and as a Translation section at the end of the markdown. Machine translation. Costs the digest's price plus 1 credit; a repeat of the same url and language is served from cache for free."New value: +"Also translate into this language (en, ja, zh-CN); the original text is kept. +1 credit." - changed
Input schema / properties / url / descriptionPrevious value: -"The post URL, including any share tokens. Required unless job_id is given."New value: +"The post link, or the share text that contains it. Required unless job_id is given."
1 tool update
- Changed
digest_url1 field changed- added
Input schema / properties / askAdded value: +{ + "description": "A question to answer from the post, in any language: \"what products and prices does it recommend?\", \"does the speaker say X?\", \"what is step three?\". The answer comes with the quotes it rests on, each checked against the post by the server (`answer` in json: answer, found, support[]; an Answer section in markdown). `found` is false when the post does not address it — nothing is invented. Costs the digest's price plus 1 credit; the same question on the same url is served from cache for free.", + "maxLength": 300, + "type": "string" +}
1 tool update
- Added
check_balance
1 tool update
- Changed
digest_url3 fields changed- added
Input schema / properties / depthAdded value: +{ + "description": "How much of a video to read. full (default): the transcript plus frames sampled densely, 1 credit per started minute. transcript: transcript-first, for long videos — the whole transcript plus one frame a minute (or one per chapter), one credit per started 2 minutes, and a longer length cap (free 60 min, paid 120 min, against 10 and 30 for full). Coverage says the frames were sparse and `depth` in json says which read it was. When a full read would be partial, `partial.transcript_credits` is what this read of the whole video costs. A YouTube video read by Gemini watching it (YouTube blocks this server) has no transcript-only form: it is read in full and priced as a full read.", + "enum": [ + "full", + "transcript" + ], + "type": "string" +} - changed
Input schema / properties / format / descriptionPrevious value: -"markdown (default, best for reading) or json (structured)."New value: +"markdown (default, best for reading) or json (structured). json adds `coverage` (seconds_transcribed, duration_seconds, largest_frame_gap_seconds, images_read, images_total, not_captured) and `key_point_support` ({ point_index, kind, t, image_index, quote, verified } per key point). Either format lists the links the post points to (a Links section; `links` in json: { url, found_in, label, kind }, from its caption, QR codes, WeChat's 阅读原文 and on-screen text). None is opened; kind marks payment codes and group invites." - changed
Input schema / properties / partial_ok / descriptionPrevious value: -"Read the opening minutes the budget affords instead of refusing a video over max_credits or the plan's length cap. Default false: a long video is refused and costs nothing (YouTube excepted: its length is known only after Gemini watches it, so it is read in full and billed at most max_credits). When true, the digest carries `partial` (read_seconds, duration_seconds, full_credits)."New value: +"Read the opening minutes the budget affords instead of refusing a video over max_credits or the plan's length cap. Default false: a long video is refused and costs nothing (YouTube excepted: its length is known only after Gemini watches it, so it is read in full and billed at most max_credits). When true, the digest carries `partial` (read_seconds, duration_seconds, full_credits). An image post the budget does not cover whole reads its first images instead (6 a credit); its partial has 0 seconds, and image_count / images_read say how many."
1 tool update
- Changed
digest_url2 fields changed- changed
Input schema / properties / url / descriptionPrevious value: -"The post URL, including any share tokens."New value: +"The post URL, including any share tokens. Required unless job_id is given." - changed
Input schema / requiredPrevious value: -[ - "url" -]New value: +[]
1 tool update
- Changed
digest_url1 field changed- changed
Input schema / properties / partial_ok / descriptionPrevious value: -"Read the opening minutes the budget affords instead of refusing a video over max_credits or the plan's length cap. Default false: a long video is refused and costs nothing. When true, the digest carries `partial` (read_seconds, duration_seconds, full_credits)."New value: +"Read the opening minutes the budget affords instead of refusing a video over max_credits or the plan's length cap. Default false: a long video is refused and costs nothing (YouTube excepted: its length is known only after Gemini watches it, so it is read in full and billed at most max_credits). When true, the digest carries `partial` (read_seconds, duration_seconds, full_credits)."
1 tool update
- Changed
digest_url2 fields changed- added
Input schema / properties / breakdownAdded value: +{ + "description": "Also take the post apart (爆款拆解): the hook in its first seconds, the structure as timed beats, the title formula, cover text, call to action, audience, and a reusable template to make your own version. Quotes are copied from the post and checked against it; engagement counts and hashtags come from the platform. Written in the post's language, or in translate_to if given. Shown as a section in markdown and as `breakdown` in json. Costs the digest's price plus 1 credit; a repeat is served from cache for free.", + "type": "boolean" +} - changed
Input schema / properties / translate_to / descriptionPrevious value: -"Also translate the digest into this language: an ISO 639-1 code, optionally with a region (en, ja, zh-CN). The original-language text is always returned; the translation is added alongside it under `translation` (title, caption, key points, transcript text, on-screen text, image descriptions) — visible in json format. Machine translation. Costs the digest's price plus 1 credit; a repeat of the same url and language is served from cache for free."New value: +"Also translate the digest into this language: an ISO 639-1 code, optionally with a region (en, ja, zh-CN). The original-language text is always returned; the translation is added alongside it under `translation` (title, caption, key points, transcript text, on-screen text, image descriptions), and as a Translation section at the end of the markdown. Machine translation. Costs the digest's price plus 1 credit; a repeat of the same url and language is served from cache for free."
Related MCP Connectors
Transcripts and AI summaries of TikTok, YouTube, Instagram, Facebook and X videos from a link.
Video transcripts, metadata and structured data from YouTube, TikTok, Instagram, X; web scraping.
Turn a TikTok/Instagram/YouTube link into text for your AI: metadata, transcript and image OCR.
Public data from 20+ platforms, including Douyin, Xiaohongshu, Weibo and TikTok, as structured JSON
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExtracts content from Douyin, Bilibili, Xiaohongshu, and Zhihu, and generates intelligent knowledge graphs.4MIT
- AlicenseAqualityDmaintenanceExtracts watermark-free videos and images from Douyin (TikTok) and Xiaohongshu (RedNote) share links, with optional AI-powered video transcription support.4431 PyPI25Apache 2.0
- AlicenseAqualityDmaintenanceEnables analyzing a Douyin, Xiaohongshu, or Bilibili video link to generate a reusable editing blueprint with shot, caption, speech, rhythm, and visual analysis.3Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables downloading watermark-free videos from Douyin (TikTok China) share links, extracting audio, and converting speech to text using AI voice recognition APIs.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.