$5 free credits when you sign up Claim now
Whisper Large V3 CT2 now available Test it!
MiniMax H3 now available! Test it!
GPT1.5 and GPT2.0 available now for Premium users Test it!

TikTok Video Analysis API Transcript & Metadata

Send us a TikTok URL. We transcribe what is said, read what is shown, and return the post's metrics.

  • Timestamped transcript
  • Reads the image
  • Post metadata
  • Scene recognition

Free daily runs. No account, no card.

Same endpoint:
TikTok
YouTube
X
Twitch
Kick

TikTok URL to Text

What a TikTok URL turns into.

  • Every spoken line, timecoded
  • What the frame shows — product, brand
  • Who posted it, when, how it performed

Messages

https://www.tiktok.com/@runwithava/video/7412…

Summary · you compose this

Nike Pegasus 41 running-shoe review, filmed on a treadmill. Discount code appears in the frame, never spoken.

Brand · where we found it

Nike · spoken 0:04, 0:19 · shoe recognized in frame 0:02–0:31

Speech · 0:04

“I have put 300 km on these Nike Pegasus 41…”

In frame · 0:02

Running shoe, treadmill, gym interior · overlay reads “20% OFF, CODE RUN20”

Post metrics

1,284,300 views

96,700 likes

1,842 comments

4,310 shares

12,600 saves

Illustration. We return the three signals; the summary is yours to compose.

Three Signals in One Video

What is said, what the picture shows and what the post did are three signals.

  • Live

    What is said

    Every word, with the timecode

    The full spoken transcript, timed to the word, with speaker labels when two people talk.

  • Live

    What is shown

    What the picture shows

    The product in shot, the brand on it, the offer in the frame. On TikTok most of that is never spoken — a transcript alone misses it.

    You choose which moments to read.

  • Live

    What happens

    Ask when something appears

    Ask when the shoes come out of the box and get a time range back. The clip is described scene by scene, so you can search the picture the way you search the words.

    Built for short clips — TikTok length.

Request Parameters

Six switches decide what the response carries. Turn on what you need, leave the rest off.

  • model string · required

    Picks the transcription model. Use WhisperLargeV3Ct2 for TikTok — it is the one that can put a timestamp on every word.

    Set once and forget it.

  • include_ts boolean · required

    Timestamps every line, so it maps to a moment in the clip.

    Granularity is a separate switch — see ts_level.

  • ts_level enum · default segment

    By default every line gets a timestamp. Switch it to word and every single word gets one — that is what cuts a clip on an exact phrase or highlights the words as they are spoken.

    A timestamp on every word runs on WhisperLargeV3Ct2 and costs more than one per line.

  • diarize boolean · default false

    Splits the transcript by speaker — SPEAKER_00, SPEAKER_01 — for duets and interviews.

    Send it explicitly. It implies timestamps, and it does not stack with a timestamp on every word — either one alone costs the same as both.

  • lang string · default auto-detect

    Detected for you. Set the hint when you know it — short clips with music behind the voice.

    Leave it unset and the model decides.

  • include_metadata boolean · default false

    Adds the post itself: author, publish date and engagement counters, joined to the transcript.

    Links only — an upload has no post behind it. Full field list below.

Delivery is yours: return_result_in_response returns on the same call, or set webhook_url with webhook_secret and let the job come to you.

A timestamp on every word or speaker labels add 50% to the transcription price and do not stack; metadata adds a flat $0.005. Current rates and languages are in the docs.

One Call, Any Client

A Bearer token and a URL. Poll the request id, or set webhook_url.

curl -X POST 'https://api.deapi.ai/api/v2/audio/transcriptions' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -d '{
    "source_url": "https://www.tiktok.com/@account/video/1234567890123456789",
    "model": "WhisperLargeV3Ct2",
    "include_ts": true,
    "ts_level": "word",
    "include_metadata": true
  }'
import requests

response = requests.post(
    "https://api.deapi.ai/api/v2/audio/transcriptions",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
    json={
        "source_url": "https://www.tiktok.com/@account/video/1234567890123456789",
        "model": "WhisperLargeV3Ct2",
        "include_ts": True,
        "ts_level": "word",
        "diarize": False,
        "include_metadata": True,
    },
)

print(response.json())
const response = await fetch(
  "https://api.deapi.ai/api/v2/audio/transcriptions",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer YOUR_API_TOKEN",
    },
    body: JSON.stringify({
      source_url: "https://www.tiktok.com/@account/video/1234567890123456789",
      model: "WhisperLargeV3Ct2",
      include_ts: true,
      ts_level: "word",
      include_metadata: true,
    }),
  },
);

console.log(await response.json());

Post Metadata, In the Same Response

The post's own data arrives joined to the transcript. Rank by reach, filter by date, attribute a claim — no second scrape.

  • id Platform-native post identifier
  • title Post title
  • description Caption text as published
  • channel Channel name
  • channel_id Stable channel identifier
  • uploader Account that published the post
  • duration_seconds Source length in seconds
  • upload_date Publish date
  • view_count Views at fetch time
  • like_count Likes at fetch time
  • comment_count Comments at fetch time
  • repost_count Reposts at fetch time
  • save_count Saves at fetch time
  • webpage_url Canonical URL of the source post
  • extractor Which source handler served the request
  • thumbnails[] Thumbnail variants for the post
  • URL sources only. An uploaded file has no post behind it, so include_metadata applies when you pass a link.
  • The shape is stable: a field with no value on the source comes back as null, never dropped — your parser never has to guess whether a key will be there.

Bulk Processing

One clip or a whole category, same call. Pay per clip, fan out concurrently, and let webhooks bring the results back.

  • $0.020

    Per clip, up to a minute

    Transcript and post metadata. A timestamp on every word or speaker labels add 50% — $0.0075 at this length. Longer clips add $0.0075 a minute, flat at $0.105 past ten.

  • 300 / min

    Per endpoint, no daily cap

    Any payment lifts the free tier's limits. Every route keeps its own counter, so reading the words and reading the picture do not compete.

  • ~12 s

    Link to text

    Measured end to end on a 24-second TikTok: submit, download, transcribe, done.

  • 5 platforms

    One integration

    TikTok, YouTube, X, Twitch and Kick on the same endpoint, plus direct upload.

A 1,000-clip sweep costs $20, and at 300 requests a minute the submissions clear in under four minutes. There is no bulk endpoint — you submit concurrently and aggregate by request_id.

Why deAPI for TikTok Video Analysis?

Build it yourself and you own a downloader, storage and a GPU. Here it is one request. Read the API docs.

  • One Link Is the Integration

    TikTok, YouTube, X, Twitch, Kick

    One HTTP call in, structured JSON out. No headless browser, no cookies, no file on your disk.

  • Words and Picture, Not Just Words

    Spoken audio and the picture itself

    Transcription gives you the voiceover. Reading the picture gives you the product, the brand and the offer — captions give neither.

  • Skip the Whole Stack

    No downloader, no storage, no GPU

    TikTok changes, the downloader breaks, files pile up, the GPU idles between bursts. None of that is yours here.

  • Free to Try Before You Wire It

    Playground first, code later

    Run real jobs in the playground first, no account needed. New accounts get $5 in free credits, no card.

Real-World Use Cases

A TikTok clip runs seconds to a couple of minutes — short enough to push through a single request. That makes it the natural first place to wire a URL straight into a transcript, what the picture shows and the post's metadata.

The Challenge

Brand teams track thousands of mentions a week. A thumbnail and a caption say nothing about what was claimed on camera, or what was shown while it was said.

The Solution

Send each mention URL and get the transcript with the post's metadata — author, date, views, likes, comments, reposts, saves. Read the picture when the claim is shown rather than spoken. Rank by reach without a second scraping call.

Who Works This Way

  • Brandwatch

    Social listening across platforms for brands

  • Talkwalker

    Consumer intelligence and mention monitoring

  • Sprout Social

    Social monitoring and engagement for teams

The Challenge

Agencies review hundreds of clips per campaign by watching them. Hooks, captions and CTAs live inside the video, so nothing is searchable and nothing carries into the next brief.

The Solution

Build a searchable clip library from URLs alone. Every video returns its transcript, and reading the picture adds what was shown — products, hooks, CTA overlays. Hooks become queryable and scripts get repurposed into new cuts.

Who Works This Way

  • Opus Clip

    AI clipping for short-form creators

  • Descript

    Video editing through the transcript

  • Later

    Social content planning for creators and agencies

The Challenge

The product, the price and the discount code that drive a TikTok Shop sale live in the picture, never in the voiceover. Transcript-only tools miss the entire commercial payload.

The Solution

We read the frames, so products, codes, prices and shop handles come back as text you can regex. Pair them with the transcript and the engagement counters from the same link to attribute conversions and catch unauthorized discount codes.

Who Works This Way

  • LTK

    Creator-driven shopping and affiliate storefronts

  • ShopMy

    Affiliate links and creator commerce tracking

  • Impact.com

    Partnership and affiliate performance management

The Challenge

An answer engine or an agent that reads the caption is blind to the video. What was said and what was shown never reach the index, and neither do the numbers that say which clip mattered.

The Solution

One call per URL returns text a model can read: the spoken transcript, what the frame shows and the post’s own counters. Chunk it, embed it, cite it — and fan out at 300 requests a minute when you backfill a corpus.

Who Works This Way

  • Perplexity

    Answer engine citing live sources

  • Exa

    Search API built for AI agents

  • Firecrawl

    Web pages turned into LLM-ready data

See TikTok Analysis in Action

You send the link. Download, transcription and image reading run on our GPU network — timestamps and post metadata come back in the same response.

  • Send a TikTok, YouTube, X, Twitch or Kick link — no file handling
  • Get a timestamped transcript you can search and store
  • Free daily runs in the playground — no account, no card
Read the Docs

Free daily runs, no account. Any video or audio URL works the same way — see the video transcription use case.

  • Free tier available
  • No credit card required
  • No sign-up to try

Turn your TikTok link
into text

Send a link. Read the transcript before you write any code.

Frequently Asked Questions

TikTok transcription, image and metadata

Yes. Pass the URL; the download, the audio extraction and the transcription happen on our side. You never store the file or maintain a downloader. The same endpoint takes YouTube, X/Twitter, Twitch, Kick and X Spaces links, plus direct file upload. Full reference at docs.deapi.ai.
The spoken transcript with what the picture shows, plus the structure you asked for: a timestamp on every line or on every word, and speaker labels. Turn on include_metadata and the post’s own data rides along — title, author, publish date, view, like, comment, repost and save counts.
Yes. Prices, product names, brands and offers are shown rather than said on TikTok, so a transcript alone misses them. Reading the picture is a separate call on the same URL and comes back as text you can match with a regex. It runs on its own rate limit, so it never competes with your transcripts.
Both, on separate switches. include_ts turns timestamps on and ts_level decides how fine they are: one per line by default, or one on every word when you need to find an exact phrase. diarize adds SPEAKER_00 and SPEAKER_01 labels, so a two-person clip reads as a conversation.
The model covers 99 languages and picks the right one on its own, so most requests need nothing from you. Use the lang hint to steer it on a short clip, loud background music, or a language switch in the first seconds. Current list at docs.deapi.ai.
Yes. The same endpoint takes YouTube, X, Twitch, Kick and X Spaces links plus direct file uploads, so one integration covers your whole source list. TikTok gets its own page because so much of what matters — the product, the price, the offer — is shown rather than spoken.
Because it is three systems, not one: a downloader that keeps working as TikTok changes, storage for the file, and a GPU to run the model. Each needs maintaining long after the demo works. Here the link goes in and the text comes back.
Two ways. The playground runs real jobs daily with no account, so you can drop in a link and read the output before deciding anything. Every new account starts with $5 free credits and no card — enough to compare a timestamp per line against one on every word, and to see what the metadata object holds.
$0.020 for a clip up to a minute — that is the transcript and the post’s metadata together. A timestamp on every word or speaker labels add 50% to the transcription price — $0.0075 at that length — and the two do not stack. Longer clips add $0.0075 a minute and flatten at $0.105 past ten minutes, so a 1,000-clip sweep runs about $20.
About 12 seconds end to end on a 24-second TikTok — submit, download, transcribe, done. Every route allows 300 requests a minute, so a 1,000-clip sweep clears in under four minutes when you fan out.
No. You send the public post URL with your deAPI token — there is no TikTok app to register, no login and no cookies to keep alive. Anything behind a login stays out of reach.