devto 2026-08-25 원문 보기 ↗
Most transcription APIs still force you to do this:
That’s a lot of moving parts for something that should be simple.
The DaDaScribe API collapses most of that into a single request.
You send a YouTube URL (or a direct audio/video link), specify the source language, optionally add up to 5 target languages + speaker names, and you get back clean .txt transcripts and .srt subtitle files, including translations. Of course, you can also directly upload an audio or video file.
Quick Start
Here’s the minimal flow:
1. Submit a transcription job
bash
curl -X POST https://api.dadascribe.com/v1/transcribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "https://www.youtube.com/watch?v=VIDEO_ID",
"source-language": "en",
"destination-language": "es,fr,it",
"diarization": "Lex,Guest"
}
Response:
{
"status": "ok",
"id": "a1B2c3D4e5F6g7H8",
"count": 1
}
2. Poll for status
curl -X POST https://api.dadascribe.com/v1/status \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id": "a1B2c3D4e5F6g7H8"}'
3. Download the results
When status is "complete", you get direct URLs to the .txt and .srt files (including translated versions). No auth header required on the download.
Here is the Python version of the same flow:
import requests
import time
API_KEY = "YOUR_API_KEY"
BASE = "https://api.dadascribe.com/v1"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Submit
resp = requests.post(f"{BASE}/transcribe", headers=headers, json={
"source": "https://www.youtube.com/watch?v=VIDEO_ID",
"source-language": "en",
"destination-language": "es,fr",
"diarization": "Host,Guest"
})
job_id = resp.json()["id"]
# Poll
while True:
status = requests.post(f"{BASE}/status", headers=headers, json={"id": job_id}).json()
if status["status"] == "complete":
print(status["urls"])
break
time.sleep(3)
Here are the features that remove real work from a developer’s pipeline:
| Feature | DaDaScribe | Typical Alternatives |
|---|---|---|
| YouTube URL as input | First-class | Usually requires extraction |
| Built-in translation | Over 120 languages | Separate API call |
| Named speaker diarization | You provide the names | Generic "Speaker 0/1" |
| Pre-processing pipeline | Noise reduction + cleanup | You handle it |
| Output formats | .txt + .srt | Often JSON only |
| Number of core endpoints | 3 | Usually many more |
The pre-processing step is particularly important. Before the speech model ever sees the audio, DaDaScribe runs noise reduction and voice isolation. This is why it handles music (lyrics extraction) and messy real-world recordings better than raw model APIs.
You can see the difference in the Beyoncé "Halo" lyrics demo and the long-form Lex Fridman podcast examples.
Full side-by-side comparison (pricing models, retention policy, feature matrix, etc.) is here: DaDaScribe API vs the Big Three
Good fit if you are building:
Less ideal if you need:
The API is currently in v1. Feedback from developers is welcome, especially around edge cases and missing features.
Please post your comments or questions below; I'll be happy to answer them personally!
Originally published in more detail on the DaDaScribe Learning Center.