# How to get a TikTok video transcript

2 endpoints do it: TikTok user videos → TikTok video transcript. The worked example below is 11 calls and costs $0.0220 in all; a failed call is not charged.

You get what is said in a TikTok video as text: the whole transcript and timed segments, for one video by its link or for every video of an account.

## Step by step

### Step 1: TikTok user videos

For a whole account, list its videos by handle, 10 a page, newest first (`sort=popular` for the most popular). The next step takes each item's `id`. For one video you already have, go straight to the next step. ([TikTok user videos](https://dataxapi.com/apis/tiktok/users/videos/list/), $0.0020 / a call)

cURL

```bash
curl -G "https://api.dataxapi.com/v1/tiktok/users/videos/list" \
  --data-urlencode "username=nasa" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
```

Python

```python
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.tiktok.users.videos.list(username="nasa")
print(result["data"]["items"])
```

TypeScript

```typescript
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);
```

CLI

```bash
dataxapi call tiktok.users.videos.list username=nasa
```

Recorded response: From a response recorded 2026-10-12 18:45 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

```jsonc
{
  "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 more
    ]
  },
  "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"
    }
  }
}
```

### Step 2: TikTok video transcript

Get the transcript by the video's `id`, or by its link as `url`. `text` is the whole transcript; `segments` gives it line by line, with `start` and `end` in seconds. ([TikTok video transcript](https://dataxapi.com/apis/tiktok/videos/transcript/get/), $0.0020 / a call)

cURL

```bash
curl -G "https://api.dataxapi.com/v1/tiktok/videos/transcript/get" \
  --data-urlencode "id=7665840565958872333" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
```

Python

```python
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.tiktok.videos.transcript.get(id="7665840565958872333")
print(result["data"]["item"])
```

TypeScript

```typescript
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);
```

CLI

```bash
dataxapi call tiktok.videos.transcript.get id=7665840565958872333
```

Recorded response: From a response recorded 2026-10-12 18:47 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

```jsonc
{
  "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 more
      ]
    }
  },
  "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"
    }
  }
}
```

## What the example costs

one page of an account's videos, then the transcript of each of those 10 videos

| Endpoint | Calls | Price | Subtotal |
| --- | --- | --- | --- |
| [TikTok user videos](https://dataxapi.com/apis/tiktok/users/videos/list/) | 1 | $0.0020 | $0.0020 |
| [TikTok video transcript](https://dataxapi.com/apis/tiktok/videos/transcript/get/) | 10 | $0.0020 | $0.0200 |
| Total | 11 |  | $0.0220 |

Prices are the prices in force when this page was built. A failed call, and an object that does not exist, cost nothing.

## In your AI (MCP)

Connect DataXAPI to your AI client once. Then say what you want; the agent finds these endpoints, checks the price and calls them on your balance.

Say: Use DataXAPI to get the transcripts of the 10 latest videos of the TikTok account @nasa, and sum up each in one sentence.

What the agent sends to the call tool: 

```json
{
  "capability": "tiktok.users.videos.list",
  "username": "nasa",
  "idempotency_key": "<a new UUID>"
}
```

[About the MCP server](https://dataxapi.com/mcp/)

## With a Skill

The Videos to text Skill does this job as a ready-made task, under a spending cap. “What does this video say?” Its example run: 1 call, at most $0.0020. [Videos to text](https://dataxapi.com/skills/transcripts/)

## Good to know

- Only a video TikTok has captions for has a transcript, and many have none. Such a video is answered `not_found` and is not charged, so the bill above is the most this can cost. A video that does not exist is answered the same way.
- The answer does not say which language the transcript is in: `lang` is not returned.
- The account's video list gives 10 a page; a cursor works for an hour, and an empty page is charged.
- The transcript is the words only. A summary or a translation is for your own AI to write from `text`.

## Endpoints

- [TikTok user videos](https://dataxapi.com/apis/tiktok/users/videos/list/)
- [TikTok video transcript](https://dataxapi.com/apis/tiktok/videos/transcript/get/)

## More about TikTok

- [TikTok API](https://dataxapi.com/apis/tiktok/)
- [How to get TikTok comments with Python](https://dataxapi.com/guides/tiktok-comments-python/)
- [How to search TikTok Shop products and read their reviews](https://dataxapi.com/guides/tiktok-shop-product-reviews/)
- [Can ChatGPT read TikTok?](https://dataxapi.com/answers/can-chatgpt-read-tiktok/)

---

Catalog revision c48ce454ae6c4c65. [HTML version](https://dataxapi.com/guides/tiktok-video-transcript/)
