Media Caption API v1
Transcriptions
Create AI transcriptions from YouTube, Instagram, TikTok, or cloud media URLs, then poll the result.
Create an AI transcription
POST
/v1/transcriptionsAcceptance and billing
- A successful request returns HTTP 202 with transcriptionId, status, sourceUrl, durationSec, sizeBytes, requiredCredits, and statusUrl. Social sources have sizeBytes: null.
- Poll statusUrl (GET /v1/transcriptions/{id}) until status is completed or failed. Existing results may already be completed when accepted.
- Credits are calculated from the video duration and charged before queueing. Pipeline failures are refunded. Completed cached results still incur the normal request charge.
- A paid active request for the same account and video is reused with requiredCredits: 0. If the original request is still being started, HTTP 409 asks you to retry shortly.
- HTTP 422 means the social video or its duration could not be inspected; no credits are charged. Invalid links return HTTP 400 and insufficient credits return HTTP 402.
Cloud source behavior
Provide a public or presigned HTTPS URL. Media Caption probes its size and duration without retaining the file, charges the exact credits, and transcribes the media directly from the URL. The maximum source size is 3 GB. Signed URLs must remain valid while the source is fetched.
Cloud source example
curl -X POST https://api.mediacaption.io/v1/transcriptions \
-H "Authorization: Bearer mc_live_xxx" \
-H "Content-Type: application/json" \
-d '{"sourceUrl":"https://storage.example.com/meeting.mp4?signature=..."}'Poll a transcription
GET
/v1/transcriptions/{id}Retention
API transcriptions are retained for 3 days after completion. After expiration, the endpoint returns 410 transcription_expired.
Poll example
curl https://api.mediacaption.io/v1/transcriptions/tr_3f6e5c6a-0d31-4f8c-9b1d-7f3b9e6a2c11 \
-H "Authorization: Bearer mc_live_xxx"Example response
{
"transcriptionId": "tr_3f6e5c6a-0d31-4f8c-9b1d-7f3b9e6a2c11",
"source": "public",
"status": "completed",
"language": "en",
"sourceUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"durationSec": 184,
"expiresAt": "2026-05-14T10:00:01.000Z",
"transcript": [{ "startSec": 0, "durationSec": 2.4, "text": "Example transcript text" }]
}
Social video sources
Send a YouTube, Instagram, or TikTok video link in
sourceUrl. Instagram and TikTok platform share links are also supported. The video must be accessible without signing in and have a finite duration. This endpoint generates an AI transcription even when existing captions are available.The same request accepts Instagram links such as
https://www.instagram.com/reel/ABC123/and TikTok links such ashttps://www.tiktok.com/@creator/video/1234567890123456789. Local audio and video files use the multipart upload flow.