如何把 TikTok 视频转成文字
用 2 个接口:TikTok 用户作品 → TikTok 视频字幕。下面的示例一共 11 次调用,合计 $0.0220;失败的调用不收费。
拿到 TikTok 视频里说的话:完整文字和带起止时间的分段。可以按链接取一条,也可以把一个账号的视频挨个取。
第 1 步:TikTok 用户作品
要整个账号一起转,先按账号名取作品列表,每页 10 条,默认从新到旧(sort=popular 按最热)。下一步用每条的 id。只转手上这一条的,直接看下一步。
curl -G "https://api.dataxapi.com/v1/tiktok/users/videos/list" \ --data-urlencode "username=nasa" \ -H "Authorization: Bearer $DATAXAPI_API_KEY"
from dataxapi import DataXAPI dx = DataXAPI() # reads DATAXAPI_API_KEY result = dx.tiktok.users.videos.list(username="nasa") print(result["data"]["items"])
import { DataXAPI } from "@dataxapi/sdk";
const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.tiktok.users.videos.list({ username: "nasa" });
console.log(result.data.items);dataxapi call tiktok.users.videos.list username=nasa
录制的返回
{
"code": "ok",
"request_id": "a42fa228-bf2c-4880-b287-caceb8e1bd8d",
"data": {
"items": [
{
"id": "7233742999990560590",
"url": "https://www.tiktok.com/@hannah.w.photo/video/7233742999990560590",
"type": "video",
"text": "Everything I wish I knew about weekend hiking before starting.",
"lang": "en",
"published_at": "2026-07-21T20:09:02.000Z",
"author": {
"id": "6149684490433647203",
"username": "hannah.w.photo",
"name": "Hannah Weiss",
"avatar_url": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/2ab492d722b3543fc068~c5_100x100.jpeg",
"followers": 2060928
},
"metrics": {
"likes": 103312,
"comments": 3021,
"shares": 3253,
"favorites": 7513,
"views": 1592522
},
"hashtags": [],
"mentions": [],
"is_pinned": true
},
// … 另有 9 条
]
},
"page": {
"next_cursor": "c1.yvxWofpiS46rHbSlVZq6wOmvvAKYGTTSKnC13UaD",
"cursor_expires_at": "2026-10-12T19:45:11.000Z",
"has_more": true,
"returned": 10
},
"warnings": [],
"meta": {
"capability": "tiktok.users.videos.list",
"result_status": "complete",
"fetched_at": "2026-10-12T18:45:11.000Z",
"cached": false,
"replayed": false,
"unavailable": {
"title": "platform",
"images": "capability",
"author.verified": "capability",
"metrics.reposts": "capability",
"mentions.username": "capability",
"mentions.name": "capability",
"post_id": "platform",
"parent_id": "platform",
"root_id": "platform"
},
"billing": {
"amount": "0.002",
"currency": "USD",
"balance_after": "9.998"
}
}
}取自 2026-10-12 18:45 UTC 录下的真实返回。名字、正文和编号是示例,链接也是,都不是录到的原文(页面不展示任何人的个人信息);数字是原样。长列表做了截断。请求号、游标和余额是示意。
TikTok 用户作品 · $0.0020 / 一次 · 参数、字段和报错见接口页 →
第 2 步:TikTok 视频字幕
按视频 id 或链接(传 url)取字幕。text 是全文,segments 是一句一句的分段,start、end 是起止秒数。
curl -G "https://api.dataxapi.com/v1/tiktok/videos/transcript/get" \ --data-urlencode "id=7665840565958872333" \ -H "Authorization: Bearer $DATAXAPI_API_KEY"
from dataxapi import DataXAPI dx = DataXAPI() # reads DATAXAPI_API_KEY result = dx.tiktok.videos.transcript.get(id="7665840565958872333") print(result["data"]["item"])
import { DataXAPI } from "@dataxapi/sdk";
const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.tiktok.videos.transcript.get({ id: "7665840565958872333" });
console.log(result.data.item);dataxapi call tiktok.videos.transcript.get id=7665840565958872333
录制的返回
{
"code": "ok",
"request_id": "d769ec30-ee48-492d-a245-185caeb7e795",
"data": {
"item": {
"post_id": "7735791757913201402",
"text": "Hey everyone, today I am going through what I packed for weekend hiking. Short version: light, fits in one bag, hard to break. Let's go piece by piece.",
"segments": [
{
"start": 1.14,
"end": 2.76,
"text": "Hey everyone, today I am going through what I packed for weekend hiking."
},
{
"start": 3.06,
"end": 4.98,
"text": "Short version: light, fits in one bag, hard to break."
},
// … 另有 35 条
]
}
},
"warnings": [],
"meta": {
"capability": "tiktok.videos.transcript.get",
"result_status": "complete",
"fetched_at": "2026-10-12T18:47:26.000Z",
"cached": false,
"replayed": false,
"unavailable": { "lang": "capability" },
"billing": {
"amount": "0.002",
"currency": "USD",
"balance_after": "9.998"
}
}
}取自 2026-10-12 18:47 UTC 录下的真实返回。名字、正文和编号是示例,链接也是,都不是录到的原文(页面不展示任何人的个人信息);数字是原样。长列表做了截断。请求号、游标和余额是示意。
TikTok 视频字幕 · $0.0020 / 一次 · 参数、字段和报错见接口页 →
示例花多少钱
取一页账号作品,再逐条取这 10 条视频的字幕
价格是生成本页时的现行价格。失败的调用、不存在的对象都不收费。
在 AI 里做(MCP)
把 DataXAPI 接进你的 AI 客户端,只要接一次。之后直接说要什么,代理自己找到这些接口、看好价格,用你的余额调用。
这样说: 用 DataXAPI 取 TikTok 账号 @nasa 最新 10 条视频的字幕,每条用一句话总结。
代理发给 call 工具的参数
{
"capability": "tiktok.users.videos.list",
"username": "nasa",
"idempotency_key": "<a new UUID>"
}用 Skill 做
要知道的
- 只有 TikTok 上带字幕的视频才取得到,不少视频没有。没有字幕的返回
not_found,不计费,所以上面的账单是最多花这么多。不存在的视频也是同样的返回。 - 返回里不说明字幕是什么语言,不返回
lang。 - 作品列表每页 10 条,游标一小时内有效;返回空页照常计费。
- 返回的只是原话。要摘要或翻译,让你自己的 AI 拿
text去写。