One transcription API for every source
YouTube, podcast, RSS feed or uploaded file to clean, timestamped text in a single HTTP call. JSON, SRT or VTT output.
curl https://api.techtuel.com/v1/transcriptions \
-H "Authorization: Bearer txl_your_key" \
-H "Content-Type: application/json" \
-d '{ "source_url": "https://www.youtube.com/watch?v=..." }'{
"id": "job_9f2c…",
"status": "completed",
"title": "The Daily Standup — Episode 42",
"language": "en",
"minutes": 12.5,
"transcript": "Hello and welcome…",
"segments": [
{ "start_seconds": 0, "text": "Hello and welcome" },
{ "start_seconds": 4.2, "text": "to the Daily Standup" }
]
}Most transcription APIs expect an audio file that is already downloaded, trimmed and hosted somewhere. You end up maintaining yt-dlp, media extraction, temporary storage and network retries before you even talk to the API. Techtuel removes all that plumbing.
You send a URL — a YouTube video, a podcast episode, a feed — and the API resolves the source, fetches the audio, transcribes it and returns structured JSON with timestamped segments. One endpoint, whatever the source is.
Results are cached: re-submitting a public source that has already been transcribed doesn't consume your quota. That makes indexing a whole back catalogue affordable instead of budget-breaking.
Why this API
Any source, one call
YouTube, podcasts, RSS, direct audio URLs or uploads. No yt-dlp pipeline to maintain on your side.
Structured output
Plain text, JSON with timestamped segments, SRT or VTT — switched with a single ?format= parameter.
Built-in cache
Public sources already transcribed are served again for free. Re-indexing does not bill you twice.
Pricing you can read
Frequently asked questions
How does the API handle different sources?+
You pass a URL in the source_url field: the API detects the type (YouTube, podcast, RSS, direct audio), resolves the audio and transcribes it. One endpoint for everything.
Which output formats are available?+
Plain text, JSON with timestamped segments, SRT and VTT. Pick one with the ?format=txt|json|srt|vtt parameter when you fetch the job.
Is transcription synchronous?+
Yes, by default: POST /v1/transcribe returns the transcript in the same response — no job id, no polling loop. Long audio does not fit in one HTTP request, so past the wait window (30s, raise it with ?wait= up to 120) the response becomes a 202 with a job id, which GET /v1/transcriptions/{id} retrieves once it is done. POST /v1/transcriptions is still there if you would rather drive the job yourself.
Is my data retained?+
Uploaded files are deleted after processing. Processing and hosting are 100% European. The transcript belongs to you.
Other ways to use the API
Free trial, no credit card
Generate an API key and transcribe your first source in under a minute. A free monthly quota lets you test under real conditions.
Start with the API