TranscriptionASR

Speech transcription

Submit a video or audio URL when native captions are missing. The result is timed text.

API flow

Submit job

POST /api/transcribe/submit

Check result

GET /api/transcribe/{job_id}

More endpoints in the API docs →

Common workflows

Submit job

POST /api/transcribe/submit — platform or audio URL, returns job_id.

Get job

GET /api/transcribe/{job_id} — poll status, progress, and segments.

Copy and run

Replace YOUR_API_KEY with a console key. POST /api/transcribe/submit to create a job, then poll GET /api/transcribe/{job_id} with the returned job_id.

import requests

API_BASE = "https://www.dataspider.ai/api"
HEADERS = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}

job = requests.post(
    f"{API_BASE}/transcribe/submit",
    headers=HEADERS,
    json={
        "source": {"type": "platform_url", "url": "https://www.youtube.com/watch?v=sample-keynote"},
        "engine": "paraformer",
        "language": "",
        "enable_speaker": False,
    },
).json()["data"]
print(job)

result = requests.get(f"{API_BASE}/transcribe/{job['job_id']}", headers=HEADERS)
print(result.json())

JSON response

response.json
{
  "code": 200,
  "message": "ok",
  "success": true,
  "data": {
    "job_id": "tr_01",
    "status": "completed",
    "step": "bill",
    "progress": 100,
    "engine": "paraformer",
    "source_type": "platform_url",
    "duration_seconds": 3,
    "text": "欢迎使用 DataMiner。",
    "segments": [
      {
        "id": 0,
        "start": 0,
        "end": 2.8,
        "text": "欢迎使用 DataMiner。",
        "speaker": null,
        "words": []
      }
    ],
    "error": null
  }
}

What you get

Input

  • Video or audio URL
  • YouTube, TikTok, or Douyin link
  • A link inside share text
  • Optional language

Output

  • Full text and segments
  • Start and end times
  • Job status polling
  • Export to SRT / VTT

Other platforms

Ready to integrate?

Create an API key, try a URL in Playground, then wire it into your app.