Transcription

Video Transcript API

One endpoint for transcripts across TikTok, Instagram Reels, YouTube, YouTube Shorts and X. It uses the platform's own subtitles when they exist and falls back to Whisper speech-to-text when they do not.

Subtitles are free-ish. Missing subtitles are the problem.

Every transcript tool handles YouTube well, because YouTube publishes caption tracks. The moment you add TikTok, Reels or X, half the videos have no captions at all — and a tool that returns "no transcript available" is not useful.

This actor tries the native caption track first, which is fast and cheap. If there is none, it sends the audio to Whisper. You get a transcript either way, and you can see which method produced it.

  • TikTok videos, Instagram Reels and posts, YouTube videos and Shorts, X videos
  • Native subtitles first, Whisper only when needed
  • Timestamped segments with start and end times in seconds
  • Language selection by two-letter code, with the detected language returned
  • Profile mode: transcribe the latest N videos from a creator
  • Author, caption and video stats returned alongside the text
{
  "url": "https://www.tiktok.com/@user/video/...",
  "platform": "tiktok",
  "author": "@user",
  "language": "en",
  "method": "subtitles",
  "text": "Full transcript text...",
  "segments": [
    {"start": 0.0, "end": 2.4,
     "text": "Here is how I plan a week"}
  ]
}

How it works

  1. Send video URLs or a creator. Paste individual video links, or give a TikTok, Instagram or YouTube profile and a count of latest videos.
  2. Pick a language and a policy. Request a specific subtitle language track, and choose whether speech-to-text runs on every video or only when subtitles are missing.
  3. Read the dataset. One row per video, with the full text, optional timestamped segments, the method used, and the video's own metadata.

Segment output, if you want it

Timestamped segments are what make transcripts useful for cutting clips, aligning captions or citing a moment. Turn them off to store a single text blob and halve the size of your dataset.

Pricing

You pay for transcripts, not for the time spent loading pages. Subtitle transcripts cost less than speech-to-text, because they cost us less to produce.

EventWhen it is chargedPrice
Actor startOnce per run$0.005
Subtitle transcriptA video whose captions were available$0.002
Speech-to-text transcriptA video transcribed with Whisper$0.005
Extra audio minuteEach started minute of speech-to-text beyond the first$0.0025

In practice: $2 per 1,000 videos with usable captions, and $5 per 1,000 for videos that need Whisper — plus a quarter-cent per extra audio minute on long videos.

What people build with it

Content repurposing

Turn a creator's back catalogue into blog posts, newsletters and scripts without rewatching it.

Search and RAG

Index video content so it can be searched or retrieved alongside your documents. Segments make chunking straightforward.

Research and monitoring

Track what a set of creators is saying, or scan a topic across platforms for mentions and claims.

Questions

Do I need API keys for YouTube, TikTok or Instagram?

No. You do not register an application with any platform and there is no per-platform quota. Requests run through the Apify platform.

What happens when a video has no captions?

The audio goes through Whisper and you get a speech-to-text transcript instead. That event is billed at the speech-to-text rate, and the row records which method produced the text.

How accurate is the speech-to-text output?

Whisper handles clear speech and most accents well, including code-switching. Music, overlapping speakers and heavy background noise reduce accuracy. Captions, when present, are exact text rather than a transcription.

Which languages are supported?

Subtitle tracks are returned in whatever languages the platform publishes. Whisper detects the spoken language automatically across its supported set. You can request a specific two-letter code for subtitle selection.

Can I transcribe a creator's whole channel?

Yes. Give the actor a profile or channel URL and choose how many of the newest videos to transcribe. This is convenient but is the most expensive mode — cap the count.

Is there a rate limit?

Run concurrency is configurable, with a default that suits most workloads. Platform-level limits still apply, but there is no daily quota tied to a YouTube or X API key.

Try ten videos before you commit

Mix a TikTok, a Reel, a Short and a full YouTube video in one run and see how the output compares.

Open the actor