Utilities
POST /v1/video/transcript

Video File Transcript API

Whisper transcription of an uploaded file — 1 credit/min; durationSeconds + creditsCharged in the response.

1 credit/min per request
TL;DR
Whisper transcription of an uploaded file — 1 credit/min; durationSeconds + creditsCharged in the response. The Video File Transcript API (Utilities) is a single authenticated POST request to /v1/video/transcript that responds with clean JSON and costs 1 credit/min. Upload via multipart form (see the cURL sample). Start with 100 free credits — no credit card.

What is the Video File Transcript API?

POST multipart form field `file` (not a query string). Returns transcript, transcriptSegments[{text,start,duration,timestamp}], wordCount, segments, language, durationSeconds (alias duration), creditsCharged, and noSpeech. Optional form fields: language (ISO-639-1 hint), translate=true (English), timestampGranularity=segment|word. Limits: 200MB / 60 minutes. No speech → empty transcript + noSpeech=true (still billed for duration). Billed 1 credit per minute of audio (rounded up, min 1) — verify with creditsCharged.

What you get

  • Full transcript text with start/end timestamps when available
  • Auto-detected language and segment count
  • AI audio transcription fallback when no captions exist
  • Clean JSON ready for search, subtitles, or AI pipelines

Try it

Open in Playground

Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).

Parameters

Sign in to run live
curl -X POST "https://api.captapi.com/v1/video/transcript" \
  -H "Authorization: Bearer capt_live_..." \
  -F "file=@video.mp4"
# or: -H "x-api-key: capt_live_..."

Edit the parameters and the code updates instantly. Switch languages and hit copy.

Example response

{
  "success": true,
  "data": {
    "filename": "sample.mp4",
    "transcript": "Hey everyone, welcome back to the channel. Today we're breaking down structured data APIs.",
    "transcriptSegments": [
      {
        "text": "Hey everyone, welcome back to the channel.",
        "start": 0,
        "duration": 4.12,
        "end": 4.12,
        "timestamp": "00:00"
      },
      {
        "text": "Today we're breaking down structured data APIs.",
        "start": 4.12,
        "duration": 4.28,
        "end": 8.4,
        "timestamp": "00:04"
      }
    ],
    "wordCount": 14,
    "segments": 2,
    "language": "english",
    "durationSeconds": 8.4,
    "duration": 8.4,
    "creditsCharged": 1,
    "noSpeech": false
  }
}

Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.

Response structure

A successful call returns success, cached, creditsUsed, and a data object with the following fields:

Top-level fields

  • filenameFilename. Example: "sample.mp4".
  • transcriptComplete text transcript (file-upload endpoints). Timed caption/ASR endpoints use text instead.
  • wordCountWord count of the returned transcript (matches the text — not a truncated preview).
  • segmentsNumber of timed segments in transcriptSegments.
  • languageDetected (or hinted) speech language from Whisper.
  • durationSecondsAudio duration in seconds from Whisper — basis for per-minute billing.
  • durationAlias of durationSeconds (same number) for bill verification.
  • creditsChargedCredits billed for this call: ceil(durationSeconds/60), minimum 1.
  • noSpeechtrue when Whisper found no trustworthy speech (empty transcript; still billed for duration).

Transcript segments

Each item in transcriptSegments contains:

  • textText content.
  • startStart time in seconds.
  • durationAlias of durationSeconds (same number) for bill verification.
  • endEnd time in seconds.
  • timestampHuman-readable timestamp (MM:SS format).

Parameters

NameTypeRequiredDescription
filefileYesVideo or audio file (multipart form field — use -F file=@path, not a query string). Max 200MB / 60 minutes.
languagestringNoISO-639-1 Whisper language hint, e.g. "en" or "tr". Omit to auto-detect.
translatebooleanNoWhen true, translate speech to English (Whisper translations API). Default false.
timestampGranularitystringNosegment (default) or word — word-level timings when Whisper exposes them.

Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 1 credit/min. Upload with multipart form field file (see cURL).

Using an AI agent? This endpoint is the MCP tool video_transcript via @captapi/mcp. Set it up →

How it works

  1. 1. Sign up — get 100 free credits, no card required.
  2. 2. Create a key from your dashboard.
  3. 3. Send one request to /v1/video/transcript and parse the JSON response.

Use cases

Bring-your-own media

Transcribe uploaded podcasts or meeting recordings without a social URL.

Bill verification

Read durationSeconds and creditsCharged to confirm the per-minute invoice line.

Word timings

Pass timestampGranularity=word when you need karaoke-style captions.

Frequently asked questions

What does the Video File Transcript API do?+

The Video File Transcript API lets you extract the full, timestamped transcript from a public Utilities uploaded video or audio file using one POST request to /v1/video/transcript. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Video File Transcript API cost?+

Billing is 1 credit per minute of audio (rounded up, minimum 1). Failed or empty results are never charged.

Do I need a Utilities API key or OAuth?+

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

Is the Video File Transcript API suitable for production use?+

Yes. It is a stable REST endpoint with predictable JSON. Upload via multipart form field file (POST) — see the cURL sample. Use durationSeconds / creditsCharged to verify per-minute billing.

More Utilities APIs

Ready to use the Video File Transcript API?

Sign up, grab your key, and make your first call in 60 seconds.