YouTube transcript API: captions vs audio transcription
A YouTube transcript API has two jobs: fetch captions when they exist, and transcribe the audio when they do not. Treating both cases as the same problem is how pipelines become brittle.
When developers search for a YouTube transcript API, they often mean one of two different things:
- retrieve the captions already attached to the video;
- create a transcript from the audio because captions are missing or unusable.
The distinction matters for cost, speed and reliability.
If captions exist, there is no reason to run speech recognition again. If captions do not exist, a captions-only tool returns nothing and forces your application into a second workflow.
Techtuel handles both paths behind one YouTube transcript API.
Captions first
YouTube videos can include creator captions, translated captions or automatic captions.
For videos where a usable transcript is already available, the fastest and cheapest workflow is to retrieve and normalize those captions:
YouTube URL
↓
Caption lookup
↓
Normalized transcript segments
↓
JSON, SRT or VTTThis avoids spending speech-recognition minutes on a transcript that already exists.
In Techtuel, a captioned YouTube video is billed as one video credit, whatever its duration. That is the useful pricing difference for large catalogues: a 90-minute captioned talk is not priced like 90 minutes of model inference.
Audio transcription when captions are missing
Not every video has captions. Some have disabled captions, incomplete captions, unavailable language tracks or private media constraints.
In that case the pipeline changes:
YouTube URL
↓
Audio extraction
↓
Speech recognition
↓
Timestamped transcriptThis is slower and billed by audio duration, but it gives your application a transcript where a captions-only API would fail.
The key product decision is whether your code has to handle that fallback.
With Techtuel, it does not. You send the same request, then read the same response shape.
One request
curl -X POST https://api.techtuel.com/v1/transcriptions \
-H "Authorization: Bearer $TECHTUEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_url": "https://www.youtube.com/watch?v=VIDEO_ID"
}'For batch jobs, POST /v1/transcriptions returns a job id:
{
"id": "job_abc123",
"status": "processing",
"source_kind": "url"
}Then fetch the transcript:
curl "https://api.techtuel.com/v1/transcriptions/job_abc123?format=json" \
-H "Authorization: Bearer $TECHTUEL_API_KEY"The final response has the same structure whether the content came from captions or speech recognition:
{
"id": "job_abc123",
"status": "completed",
"title": "Product demo",
"language": "en",
"minutes": 18.4,
"transcript": "Welcome to the demo...",
"segments": [
{ "start_seconds": 0, "text": "Welcome to the demo" },
{ "start_seconds": 4.2, "text": "Today we are showing the new API" }
]
}Which output should you use?
Use JSON when you are building a product:
- search;
- RAG;
- quote extraction;
- chaptering;
- media archives;
- analytics.
Use SRT or VTT when your immediate goal is subtitles:
curl "https://api.techtuel.com/v1/transcriptions/job_abc123?format=vtt" \
-H "Authorization: Bearer $TECHTUEL_API_KEY"Use plain text when the transcript is only an input to a summarizer or editorial workflow.
Captions vs transcription: practical comparison
| Case | Best path | Why |
|---|---|---|
| Video has good captions | Fetch captions | Faster and cheaper |
| Video has no captions | Transcribe audio | The only way to get text |
| Video has bad automatic captions | Transcribe audio | Better quality may be worth the minutes |
| Large captioned back catalogue | Fetch captions with cache | Avoid per-minute cost |
| RAG or search product | JSON segments | Keeps timestamp citations |
| Subtitle export | SRT or VTT | Ready for players |
Avoid building two pipelines
The expensive version of a YouTube transcript API is not always the model. It is the glue code:
- caption fetching;
- audio fallback;
- source errors;
- retries;
- temporary storage;
- output normalization;
- duplicate processing;
- subtitle formatting.
Techtuel puts that media layer behind one API call.
If your application needs YouTube transcripts at scale, start with the YouTube transcript API. If you need the broader media workflow, use the general transcription API.