如何把 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 条视频的字幕

接口调用次数单价小计
TikTok 用户作品1$0.0020$0.0020
TikTok 视频字幕10$0.0020$0.0200
合计11$0.0220

价格是生成本页时的现行价格。失败的调用、不存在的对象都不收费。

在 AI 里做(MCP)

把 DataXAPI 接进你的 AI 客户端,只要接一次。之后直接说要什么,代理自己找到这些接口、看好价格,用你的余额调用。

这样说: 用 DataXAPI 取 TikTok 账号 @nasa 最新 10 条视频的字幕,每条用一句话总结。
代理发给 call 工具的参数
{
  "capability": "tiktok.users.videos.list",
  "username": "nasa",
  "idempotency_key": "<a new UUID>"
}

登录后复制带你 Key 的接入提示词了解 MCP 服务 →

用 Skill 做

要知道的

  • 只有 TikTok 上带字幕的视频才取得到,不少视频没有。没有字幕的返回 not_found,不计费,所以上面的账单是最多花这么多。不存在的视频也是同样的返回。
  • 返回里不说明字幕是什么语言,不返回 lang。
  • 作品列表每页 10 条,游标一小时内有效;返回空页照常计费。
  • 返回的只是原话。要摘要或翻译,让你自己的 AI 拿 text 去写。