開発者 · API / MCP

小紅書・抖音のリンク → AI が読めるテキスト、日本語訳付き

1 回の POST か 1 つの MCP ツールで、発話の文字起こし、画面と画像の文字、各画像の説明、要点(原文引用付き)、上位コメント、そして translate_to: "ja" で日本語訳。 読むのは当社のサーバーです。お客様の小紅書・抖音アカウントも Cookie も不要で、アカウントに影響しません。

REST

3 ステップ

  1. https://linkdigest.dev/app/keys で API キーを発行します(Google またはメールでサインイン、カード登録不要)。ld_live_… の形です。
  2. リンクを 1 本 POST します。共有テキストごと送っても、中のリンクを取り出します。
  3. 動画など時間がかかるときは 202 と poll の URL が返るので、同じキーで取りに行きます(?wait=20 で最大 20 秒待ち、終わっていなければもう一度)。
curl -X POST https://linkdigest.dev/api/v1/digest \
  -H "Authorization: Bearer ld_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url": "https://xhslink.com/o/XXXXXXXX", "format": "json", "translate_to": "ja"}'

画像投稿や短い投稿はそのまま 200 で返ります。ダウンロードと音声認識が必要な動画は 202 と poll の URL を返すので、同じキーで取りに行きます(下の Python 例)。 一度誰かが読んだリンクは約 1 秒で返り、クレジットは消費しません。

Python(requests)

import requests

KEY = "ld_live_..."
H = {"Authorization": f"Bearer {KEY}"}
r = requests.post("https://linkdigest.dev/api/v1/digest", headers=H,
                  json={"url": "https://v.douyin.com/XXXXXXX/", "format": "json", "translate_to": "ja"}).json()
while r.get("pending"):                       # 動画はまず 202 で返る
    r = requests.get("https://linkdigest.dev" + r["poll"] + "&wait=20", headers=H).json()

print(r["title"])
print(r["key_points"])

オプション:breakdown: true(バズ構造の分解、+1)、insight: true(消費者インサイト、+1)、ask: "…"(投稿への質問、+1)、depth: "transcript"(長い動画を文字起こし優先で、2 分ごとに 1 クレジット)、max_credits(この読み取りの上限。超える場合は読まずに 402)。 機械可読の仕様は /openapi.json、完全版は 英語のドキュメントにあります。

返るフィールド

投稿から読んだものと、AI が書いたもの

title / author / posted_at / captionタイトル、投稿者、投稿日時、本文
transcript発話の文字起こし [{ t, text, approx }]。プラットフォームの字幕があればそれを、なければ音声認識の結果。t は段落の開始秒数で、音声認識のときは推定値(approx: true)
on_screen動画の画面に出る文字と、そのおおよその時刻
ocr_text / images[]画像投稿の各画像の説明と、画像内の文字
key_points / key_point_support要点と、それぞれの根拠となる原文の一節。引用はエンジンが本文と照合し、見つかれば verified: true
comments公開ページに載る上位コメント(小紅書・微博):[{ text, likes, replies, posted_at, reply_texts }]。最大 5 件、各 3 件までの返信。スレッド全体ではありません
statsいいね、コメント、保存、シェア(読み取り当日の数値、as_of 付き)
translationtranslate_to: "ja" を付けたときの日本語訳。タイトル、本文、画像内の文字、画像の説明、文字起こし、要点が対象。コメントは翻訳されず中国語のまま。原文のフィールドは 1 文字も変わりません
coverageどこまで読めたかの明細(コードが算出):文字起こしした秒数、読めた画像の枚数、読めなかった項目(not_captured)
depth / partialfull(完全読み取り)、transcript(文字起こし優先、1 分あたり安い)、script(発話のみ)。クレジットが足りず一部だけ読んだときは partial に全体の費用が入ります
credits / cachedこの読み取りで消費したクレジット。誰かが読んだことのあるリンクは cached: true で 0 クレジット
degraded / error_code一部読めなかったときの説明。読めなかったときは 422、プラットフォームが外部に提供しない投稿は not_served — いずれも課金なし

投稿から読んだもの(transcript、on_screen、ocr_text、stats、comments)は書き換えません。AI が書くのは key_points、images[].description、translation、breakdown、insight で、引用はすべて原文と照合されます(verified)。

一括と比較レポート

複数のリンクを 1 本の日本語レポートに

curl -X POST https://linkdigest.dev/api/v1/digest/batch \
  -H "Authorization: Bearer ld_live_..." \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://xhslink.com/o/AAAA", "https://xhslink.com/o/BBBB", "https://xhslink.com/o/CCCC"],
       "translate_to": "ja", "synthesis": true, "insight": true, "label": "大阪 ドラッグストア"}'
# 202 {"batch_id": "...", "poll": "/api/v1/digest/batch/<id>", ...}
curl "https://linkdigest.dev/api/v1/digest/batch/<id>?include=digests" -H "Authorization: Bearer ld_live_..."

1 バッチは free 10 件、Dev 50 件、Studio 200 件まで。synthesis: true で全投稿をまたいだ比較(共通点、相違点、価格や商品の言及、読者の不満)が synthesis.raw_markdown に入り、言語は translate_to に従います(ja なら日本語)。10 件につき 1 クレジット、1 バッチ 1 回。insight: true を併せると、投稿ごとの消費者インサイト付きの競合レポートになり、管理画面のバッチページから印刷・PDF 保存・共有リンク(30 日間)の発行ができます。ranked は反応順(いいね + 保存×2 + コメント)です。 読めなかったリンクは error として残り、課金されません。

MCP

Claude Code、Cursor、Cherry Studio

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

Claude Code の例です。Cursor、Cherry Studio、Trae など他の MCP クライアントの設定は ドキュメント にあります。 以後、エージェントにリンクを貼るだけで digest_url が本文を取ってきます。

どのクライアントでも同じです:URL https://linkdigest.dev/mcp、トランスポート Streamable HTTP、ヘッダー Authorization: Bearer ld_live_…。 ツールは digest_url(1 件、translate_to 可)、compare_links(最大 20 件の一括と比較)、search_links(トピック検索、digest: true でそのまま読む)、list_batches の 4 つです。 SSE や stdio しか使えないクライアントでは npx mcp-remote https://linkdigest.dev/mcp --header "Authorization: Bearer …" を間に挟みます。

Claude Code — プロジェクト直下の .mcp.json(または上の claude mcp add の 1 行)

{
  "mcpServers": {
    "linkdigest": {
      "type": "http",
      "url": "https://linkdigest.dev/mcp",
      "headers": { "Authorization": "Bearer ld_live_..." }
    }
  }
}

Cursor — ~/.cursor/mcp.json、またはプロジェクトの .cursor/mcp.json

{
  "mcpServers": {
    "linkdigest": {
      "url": "https://linkdigest.dev/mcp",
      "headers": { "Authorization": "Bearer ld_live_..." }
    }
  }
}

Cherry Studio — 設定 → MCP → MCP サーバー → 追加 → JSON から読み込み

{
  "mcpServers": {
    "linkdigest": {
      "type": "streamableHttp",
      "baseUrl": "https://linkdigest.dev/mcp",
      "headers": { "Authorization": "Bearer ld_live_..." }
    }
  }
}

エラー

ステータスコードと、そのとき課金されるか

401API キーが無効です。/app/keys で作り直してください
402クレジットが不足しています。課金はなく、本文にクレジットの追加リンク(サインイン不要)が入ります
422リンクが読めません:削除済み、非公開、またはログインが必要なページ。課金なし
422 · not_servedプラットフォームがその投稿を外部に提供していません(抖音の外部プレーヤーの core_dep など)。投稿が消えたという意味ではなく、再試行もしません。課金なし。本文に他の読み方(アプリから保存して /app/upload にアップロード、ブラウザ拡張で自分のタブから読む)が書かれます
429短時間の呼び出しが多すぎます。Retry-After 秒後に再試行してください
202動画など時間のかかる読み取り。本文の poll の URL を同じキーで取りに行きます(?wait=20 で最大 20 秒待ちます)

料金

作業量に応じたクレジット制

サインアップで 10 クレジット(1 回限り、カード登録不要)。画像投稿 1 件 1 クレジット、動画は 1 分ごとに 1(1 分の動画で 2、10 分で 11)。 日本語訳 +1、バズ構造の分解 +1、質問 +1、消費者インサイト +1、比較は 10 件につき 1。誰かが読んだリンクは 0、読めなかったリンクも 0 です。

追加は 1 回払いのクレジットパック:50 クレジット $1.5(約¥225)、250 クレジット $5(約¥750、1 クレジット 約¥3)。 月額は Dev $9(約¥1,350)で 500 クレジット、Studio $49(約¥7,350)で 3,500 クレジット。 いずれもカード決済(Stripe、USD 建て。円換算は目安)です。全項目は 料金ページにあります。

できないこと・しないこと

導入前に知っておいていただきたいこと

  • お客様の小紅書・抖音アカウントにはログインしません。Cookie もお預かりしません。公開ページだけを読みます。
  • 非公開・削除済み・プラットフォーム側が外部に提供しない投稿は、その旨をエラーとして返します(422 / not_served)。内容を推測して書くことはなく、クレジットも消費しません。
  • 画像や動画そのものは保存しません。残るのはテキストの結果だけです。
  • 要点(key_points)は AI が書きますが、1 件ごとに原文の引用が付き、その引用が本文に実在するかをコードで照合します(verified)。
  • 音声認識の精度は音声認識のものです。方言、複数人の同時発話、大音量の BGM では誤りが出ます。
  • 読めない例:知乎(Zhihu)、快手(Kuaishou)は現在未対応です。

よくある質問

よく聞かれること

小紅書のどのリンクが読めますか?
アプリの「分享 → 复制链接」で得られるリンク(xhslink.com の短縮リンク、または xsec_token 付きの xiaohongshu.com のリンク)です。/explore/<id> だけの素のリンクは小紅書側が「ページが見つかりません」を返すため読めず、課金もされません。投稿者のプロフィール(主页)のリンクは投稿ではないので、その旨を返します。
抖音(Douyin)はどう読みますか?
共有リンク(v.douyin.com/… または douyin.com/video/…)か、共有テキストごと送ります。抖音が外部サイト向けに公開しているプレーヤーを通して読むため、ログインも Cookie も不要です。プレーヤーが提供しない投稿は not_served として返し、課金しません。
日本語訳の精度は?
機械翻訳です。原文のフィールドはそのまま残るので、重要な箇所は原文で確認できます。コメントは翻訳されません。翻訳は 1 件あたり +1 クレジットです。
料金はどう決まりますか?
作業量に応じたクレジット制です。画像投稿 1 件 1 クレジット(6 枚まで、6 枚ごとに +1)、動画は 1 分ごとに 1。日本語訳 +1、消費者インサイト +1、複数投稿の比較は 10 件につき 1。検索は小紅書・抖音で投稿が見つかったときだけ 4。サインアップで 10 クレジット無料、追加はカード決済(Stripe、USD 建て)です。
MCP で使えますか?
はい。Claude Code、Cursor、Cherry Studio など Streamable HTTP に対応した MCP クライアントで、サーバーを 1 行追加するだけです。digest_url(1 件)、compare_links(一括と比較)、search_links(検索)、list_batches の 4 つのツールがあります。