TikTokData & subtitles

TikTok data and subtitles

The same metadata fields and caption export for short videos.

API flow

Video metadata

POST /api/tiktok/detail

Captions

POST /api/tiktok/subtitle

No native captions: POST /api/transcribe/submit with the video URL, then GET /api/transcribe/{job_id} (see Transcription).

More endpoints in the API docs →

Common workflows

Video detail

POST /api/tiktok/detail — raw webapp.video-detail JSON.

Captions

POST /api/tiktok/subtitle — caption text by language.

Search

POST /api/tiktok/search — keyword search with search_id paging.

User profile

POST /api/tiktok/user/detail — username or profile URL.

User search

POST /api/tiktok/user/search — find users by keyword.

User videos

POST /api/tiktok/user/works — paginated uploads by sec_uid.

Copy and run

Replace YOUR_API_KEY with a console key. First POST /api/tiktok/detail, then POST /api/tiktok/subtitle.

import requests

API_BASE = "https://www.dataspider.ai/api"
HEADERS = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}

detail = requests.post(
    f"{API_BASE}/tiktok/detail",
    headers=HEADERS,
    json={"url": "https://www.tiktok.com/@tiktok/video/7000000000000000000"},
)
print(detail.json())

subs = requests.post(
    f"{API_BASE}/tiktok/subtitle",
    headers=HEADERS,
    json={"url": "https://www.tiktok.com/@tiktok/video/7000000000000000000", "language": ""},
)
print(subs.json())

JSON response

response.json
{
  "code": 200,
  "message": "ok",
  "success": true,
  "data": {
    "itemInfo": {
      "itemStruct": {
        "id": "7000000000000000000",
        "desc": "Sample TikTok caption",
        "author": {
          "uniqueId": "tiktok"
        }
      }
    }
  }
}

What you get

Video data

  • Title and author
  • Duration and thumbnail
  • Available caption languages
  • Audio and video streams

Captions

  • Fetch platform captions
  • Format conversion
  • Timed segments
  • ASR when captions are missing

Other platforms

Ready to integrate?

Create an API key, try a URL in Playground, then wire it into your app.