开发者 · 长视频
长视频转文字 API
课程、访谈、直播回放:一条抖音、小红书或 TikTok 链接,加 depth: "transcript",拿回全程语音逐字稿、作者标的章节、 要点(每条附逐字核对过的引用)和一份「读了多少」的回执。每开始的 2 分钟 1 积分, 完整读取的一半价。
真实返回 · 节选
一条 17 分 42 秒的技术讲解
2026-10-06 线上实际读取:全程 1061.7 秒转写,7 个作者章节,10 积分,92 秒返回。来源视频:https://www.douyin.com/video/7590008747938876706
{
"platform": "douyin",
"title": "Agent Skill 从使用到原理,一次讲清",
"author": "马克的技术工作坊",
"posted_at": "2025-12-31",
"duration_seconds": 1061.7,
"read_seconds": 1061.7,
"depth": "transcript",
"category": ["个人管理", "职场技能", "办公效率"],
"chapters": [
{ "t": 0, "title": "视频内容简介" },
{ "t": 85, "title": "Agent Skill 是什么" },
{ "t": 143, "title": "Agent Skill 的基本用法" },
{ "t": 442, "title": "高级用法(Reference)" }
],
"chapter_source": "author",
"transcript": [
{ "t": 0, "text": "2025年10月16号,Anthropic正式推出了Agent Skill…" },
{ "t": 170, "text": "agent skill的名字,然后再使用 VS Code 来…" },
{ "t": 340, "text": "一共有三个角色,用户、Cloud Code 以及 Cloud…" }
],
"on_screen": [ "…(7 条,每章一帧)" ],
"key_points": ["…(11 条)"],
"coverage": {
"seconds_transcribed": 1061.7,
"duration_seconds": 1061.7,
"not_captured": [
"on-screen text between sampled frames not read: a transcript-first read takes 7 frames, one at the start of each chapter",
"comments not read"
]
},
"credits": 10
}回执
少读了什么,结果里写明
coverage.seconds_transcribed
转写了多少秒,对照 duration_seconds。先转写档读的是全程,两者相等。
coverage.not_captured
没读到的部分,用一句话说清:先转写档只取少量截帧,两帧之间的画面文字不读;要 PPT、代码、图表上的字,这一段用完整读取。
用法
加一个参数
curl -X POST https://linkdigest.dev/api/v1/digest \
-H "Authorization: Bearer ld_live_..." -H "Content-Type: application/json" \
-d '{"url": "https://www.douyin.com/video/7590008747938876706", "format": "json", "depth": "transcript"}'
# 返回 202 时:用同一个 Key 取结果,每次最多等 20 秒
curl "https://linkdigest.dev/api/v1/digest/JOB_ID?wait=20&depth=transcript" -H "Authorization: Bearer ld_live_..."MCP · Claude Code(digest_url 的 depth 参数同名)
claude mcp add --transport http linkdigest \ https://linkdigest.dev/mcp \ --header "Authorization: Bearer ld_live_..."
API Key 在 https://linkdigest.dev/app/keys 创建(形如 ld_live_…)。 REST、MCP 各客户端的配置、轮询和返回字段见 中文 API / MCP 文档。
价格
每 2 分钟 1 积分,折合人民币
基础 1 积分,加上每开始的 2 分钟 1 积分。同一条视频再读 0 积分;读不出内容不收费。
| 一条内容 | 积分 | 折合人民币 |
|---|---|---|
| 10 分钟视频 | 6 | ¥0.864 |
| 17 分 42 秒(下面这条) | 10 | ¥1.44 |
| 30 分钟视频 | 16 | ¥2.304 |
| 44 分钟视频 | 23 | ¥3.312 |
| 60 分钟(免费 / 加量包上限) | 31 | ¥4.464 |
| 2 小时(Dev 上限) | 61 | ¥8.784 |
按加量包折算:$5 = 250 积分,支付宝按人民币结算 ¥36,每积分 ¥0.144。注册送 10 积分(一次性)。 任何人读过的链接再读 0 积分;读不出内容不收费。
对照:同一条 44 分钟视频,完整读取是 45 积分(约 ¥6.48),而且免费和加量包账户读不了(上限 10 分钟)。 短视频仍然用完整读取,见抖音文案提取 API。
做不到的
接之前先看这几条
- 逐字稿按段给时间(每段最长约 170 秒),没有逐句时间戳;按秒定位靠章节和少量画面文字。
- 两帧之间的画面文字不读。
- YouTube 不走这一档(见问答)。不支持 B站、视频号、快手。
- 一次读一条链接;不下载视频,不保存媒体。
| 平台 / 类型 | 原因 |
|---|---|
| B站(哔哩哔哩) | 对我们服务器的地址直接返回 HTTP 412,请求到不了视频。需要代理,目前没有。 |
| X 长文(Articles) | 只能拿到首图。普通帖子的图片、视频都能读,长文正文读不到。 |
| 代码已接入,但没有端到端验证过,所以不算支持。 |
常见问题
会被问到的
- 和完整读取有什么区别?
- 完整读取按关键帧密集截帧,画面上的字都读,每开始的 1 分钟 1 积分,单条最长 10 分钟(Dev 30 分钟)。先转写档(depth: "transcript")读全程语音,只取少量截帧(有章节就每章一帧,否则约每分钟一帧,最多 30 帧),每开始的 2 分钟 1 积分,单条最长 60 分钟(Dev 2 小时)。
- 逐字稿有逐句时间戳吗?
- 没有。没有平台字幕时,逐字稿来自语音识别 Qwen3-ASR。它只返回文字、不返回逐句时间,所以 transcript 按段给:每段最长约 170 秒,t 是这一段在视频里开始的秒数。要按秒定位,看 on_screen(画面里的字,带 ≈ 时间,误差在一个关键帧间隔内)。 章节(chapters)带秒数,是作者或平台标的,可以用来定位。
- YouTube 的长视频呢?
- YouTube 例外:由 Gemini 看完整条视频,总是完整读取,按完整读取计费(每开始的 1 分钟 1 积分),传 depth: "transcript" 也一样。
- 一次调用读不完怎么办?
- 长视频一般要一两分钟。REST 返回 202 和 jobId,用 GET /api/v1/digest/{jobId}?wait=20 取结果,没完成就再取一次;MCP 里再调一次 digest_url,只传 job_id。不要重新提交链接。
- 之前读了一半、被拒绝说太长的视频怎么办?
- 那次返回里的 partial.transcript_credits(或 402 里的 transcript_credits)就是这条视频先转写档读完整的价格,直接带 depth: "transcript" 再读一次。
不用注册先试一条;注册送 10 积分,不用绑卡。支持的平台上有链接读不出来,就是一个值得报告的 bug。