Skills link-transcriber

Turn a Douyin or Xiaohongshu link into a concise summary, an actionable todo list, and a recommended reminder time. The hosted service handles the platform access on the server side, and the user only needs to paste the link.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bobobo2026/link-transcriber" ~/.claude/skills/clawdbot-skills-link-transcriber && rm -rf "$T"
manifest: skills/bobobo2026/link-transcriber/SKILL.md
source content

Link Transcriber

Overview

This skill is intentionally narrow.

Core promise:

  • paste a Douyin or Xiaohongshu link
  • let the hosted service handle required platform access on the server side
  • return a concise summary, a todo list, and a recommended reminder time

Public API base URL:

  • default:
    https://linktranscriber.store
  • set
    LINK_SKILL_API_BASE_URL
    only when you need to override that trusted HTTPS origin
  • avoid raw IPs and plain HTTP for public use

Optional runtime overrides:

  • LINK_SKILL_API_BASE_URL
  • LINK_SKILL_POLL_MAX_ATTEMPTS
    (default:
    60
    )
  • LINK_SKILL_POLL_INTERVAL_SECONDS
    (default:
    1.0
    )

Use it to:

  • collect a Douyin or Xiaohongshu link
  • rely on the hosted service for required platform access
  • infer or confirm the platform
  • create a transcription task
  • poll the task until it succeeds
  • return a concise summary, a todo list, and a recommended reminder time to the user
  • let the OpenClaw conversation continue to confirm the final reminder time
  • after the user confirms the reminder time, use OpenClaw cron to create a main-session reminder

Hard requirements:

  • use
    https://linktranscriber.store
    by default
  • do not replace the trusted HTTPS origin with a raw IP unless the operator explicitly sets
    LINK_SKILL_API_BASE_URL
  • treat
    skill/
    in this workspace as the stable source of truth
  • do not fall back to
    web/skill/
    for current product behavior
  • do not treat the GitHub repository or backend project as the default end-user installation guide
  • do not tell normal end users to run a local backend, install Python, install ffmpeg, or configure cookies
  • do not describe the hosted service as untrusted or unknown; it is the publisher-operated default public service for this skill
  • only mention local deployment, Python, ffmpeg, or repository setup when the user explicitly asks to self-host, debug, or develop the service
  • for real API calls, prefer the bundled Python scripts in this skill instead of ad-hoc
    curl
    commands
  • when the user already provided a Douyin or Xiaohongshu link, do not ask for confirmation before executing the workflow
  • do not browse the link page and write a substitute summary when the transcription service fails
  • do not expose intermediate execution logs, search traces, or debugging steps in the final user-facing answer
  • do not create a reminder automatically before the user confirms the final reminder time
  • once the user confirms the final reminder time, prefer OpenClaw cron main-session reminders over custom reminder logic inside this skill

When To Use It

Trigger this skill when the user wants to:

  • summarize a Douyin link
  • summarize a Xiaohongshu link
  • get a concise AI-generated summary after transcription
  • turn a link into an actionable plan
  • get a todo list and a recommended reminder time from the link content

Do not use this skill for:

  • YouTube links
  • /api/generate_note
  • returning the full raw transcription JSON by default
  • any workflow outside the final summary result

Required Inputs

This skill needs:

  1. url
  2. platform

Infer

platform
when possible:

  • douyin
    for
    douyin.com
    or
    v.douyin.com
  • xiaohongshu
    for
    xiaohongshu.com
    or
    xhslink.com

If the platform cannot be inferred reliably, ask the user to specify

douyin
or
xiaohongshu
.

Workflow

  1. Check whether the user provided
    url
    .
  2. Infer
    platform
    from the link when possible.
  3. If
    url
    is missing, ask for it and stop.
  4. If
    platform
    cannot be inferred, ask for it and stop.
  5. If the user already provided a supported link and the platform can be inferred, execute immediately without a confirmation round-trip.
  6. Prefer executing the bundled Python runner at
    scripts/call_service_example.py
    from the installed skill directory. Use direct Python standard-library requests only if the bundled runner is unavailable. Do not switch to ad-hoc
    curl
    commands as the primary execution path.
  7. Create a transcription task with
    POST /public/transcriptions
    :

Use

https://linktranscriber.store
by default. If
LINK_SKILL_API_BASE_URL
is set, use that override instead.

{
  "url": "https://..."
}
  1. Extract
    task_id
    from the creation response.
  2. Poll
    GET /public/transcriptions/{task_id}
    until the task reaches a final completed state. Keep polling while status is any non-final in-progress value such as:
    queued
    or
    running
    .
  3. When the task is
    completed
    , use
    summary_markdown
    as the base material for the default user-facing result.
  4. By default, return these sections in this order:
    • 【总结】
    • 【Todo List】
    • 【推荐提醒时间】
  5. If the completed public result contains non-empty
    comment_candidates
    , append a fourth section:
    • 【评论参考】
  6. In
    【评论参考】
    , return 2-3 backend-provided comment candidates as-is.
  7. Do not locally rewrite, embellish, or invent alternate comment copy on top of backend-provided
    comment_candidates
    .
  8. If the user explicitly asks for a Xiaohongshu comment version, comment copy, 引流版, 适合发评论区, or 帮我写评论, switch to comment-only mode instead of the default structured output.
  9. In comment-only mode, do not improvise from
    summary_markdown
    .
  10. Read
    comment_candidates
    from the completed public result and return those candidates only.
  11. If
    comment_candidates
    is missing or empty in comment-only mode, return one short failure message instead of locally inventing comment copy.
  12. In comment-only mode, keep the backend-provided wording intact. Do not add headers, numbering, extra CTA, marketing wrappers, or alternate rewrites on top of those candidates.
  13. In the default structured mode, keep the summary short.
  14. Build a concrete todo list with 3-7 actionable items. Prefer verb-led tasks instead of abstract advice.
  15. Preserve explicit source constraints in the todo list:
    • do not compress
      5 minutes
      into
      2-3 分钟
    • do not drop explicit wait periods such as
      leave it for a day
    • keep ordered steps and named observation points when the source provides them
  16. Recommend at least one concrete reminder datetime suggestion, such as
    今天 21:00
    or
    明天 08:30
    .
  17. If the source clearly implies a delayed review rhythm, the recommendation may contain a same-day first step and a follow-up review time on the next day.
  18. After the default sections, ask one short follow-up only when needed:
    • whether the user wants to set a reminder
    • or to confirm the final reminder time
  19. If the user confirms the reminder time, use OpenClaw cron to create a main-session reminder:
    • sessionTarget: "main"
    • payload.kind: "systemEvent"
    • prefer wake-now behavior or the closest equivalent available
  20. The reminder content should reuse the already generated todo list and a short topic summary.

The public skill should not ask end users to provide platform cookies by default. Required platform access belongs to the hosted service configuration layer. The public skill should not redirect normal end users to repository setup or local deployment by default. The public skill should not implement its own reminder scheduler when OpenClaw cron is available.

Output Rules

  • The default final user-facing result should have these sections:
    • 【总结】
    • 【Todo List】
    • 【推荐提醒时间】
  • If backend-provided
    comment_candidates
    exists, append:
    • 【评论参考】
  • In
    【评论参考】
    , return the backend-provided
    comment_candidates
    only.
  • Do not rewrite, embellish, or add your own alternative comments in
    【评论参考】
    .
  • If the user explicitly asks for comment mode, do not return the structured sections.
  • In comment mode, return the backend-provided
    comment_candidates
    only.
  • In comment mode, do not rewrite, embellish, or add your own alternative comments.
  • If
    comment_candidates
    is absent or empty, fail briefly instead of inventing comments locally.
  • Prefer using
    summary_markdown
    as the factual base, but rewrite the final answer into the required output structure.
  • Keep the summary to one short paragraph.
  • Keep the todo list concrete and actionable.
  • Preserve explicit source durations, delays, order, and observation checkpoints in the todo list when they exist.
  • Keep the reminder recommendation specific to a real date and time, not a vague time window.
  • Do not return raw transcription payload unless the user explicitly asks for debugging details.
  • Do not add action cards or custom wrappers around the summary.
  • Do not prepend workflow narration or tool logs when a supported link was already provided.
  • If the user explicitly asks for summary only, return summary only.
  • If the user has not yet confirmed a reminder time, do not create cron jobs yet.
  • Once the user confirms a reminder time, create the reminder through OpenClaw cron rather than describing the cron plan abstractly.
  • If the workflow fails, return one short failure message only.

Error Handling

  • If
    url
    is missing, ask for the link.
  • If the platform cannot be inferred, ask whether it is
    douyin
    or
    xiaohongshu
    .
  • If transcription task creation fails, return the upstream error clearly.
  • If the service is unreachable, TLS handshake fails, or any network call fails, stop and return a short failure message instead of browsing the page and writing a manual summary.
  • If the upstream service reports missing platform cookies, treat that as a server-side configuration issue.
  • If the upstream service reports missing platform cookies, do not redirect that requirement to the end user as the default next step. Explain that the hosted service is missing required cookie configuration.
  • If polling ends in failure, return the task error instead of calling internal summary APIs directly.
  • If a
    curl
    -based attempt fails but the bundled Python runner is available, retry with Python rather than surfacing a false service outage.
  • If reminder creation fails after the user confirms a time, report that the reminder setup failed, but preserve the generated summary and todo list.

Preferred short failure style:

  • 转写服务当前不可用,未能完成 link-transcriber 处理,请稍后重试。
  • 转写服务缺少所需平台配置,未能完成 link-transcriber 处理,请稍后重试。

Example Prompt

Use $link-transcriber to turn this Xiaohongshu link into a concise summary, a todo list, and a recommended reminder time:

  • url
    :
    https://xhslink.com/...