API Documentation
Transcribe and summarize YouTube videos programmatically with the EasyTranscriber REST API.
Authentication
All API requests require a Bearer token. Create an API key from your Account page.
Authorization: Bearer et_your_api_keyKeys are prefixed with et_ and shown only once at creation. Store them securely.
Rate Limits
Each API key is limited to 30 requests per minute using a sliding window. Exceeding the limit returns a 429 status.
Error Format
All errors follow a consistent format:
{
"error": {
"code": "error_code",
"message": "Human-readable description"
}
}Endpoints
POST
/api/v1/transcribeTranscribe a YouTube video. Cached transcripts are returned instantly at no credit cost.
Request Body
{ "url": "https://youtube.com/watch?v=..." }Response
{
"video_id": "dQw4w9WgXcQ",
"video_title": "Video Title",
"transcript": "Full transcript text...",
"method": "captions",
"cached": false,
"credits_used": 1
}curl -X POST https://easytranscriber.com/api/v1/transcribe \
-H "Authorization: Bearer et_your_api_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://youtube.com/watch?v=dQw4w9WgXcQ"}'POST
/api/v1/summarizeGenerate an AI summary from a transcript. Costs 1 credit. Transcripts longer than 100K characters are truncated.
Request Body
{
"transcript": "Full transcript text...",
"video_id": "dQw4w9WgXcQ" // optional, links summary to transcription
}Response
{
"summary": "AI-generated summary...",
"video_id": "dQw4w9WgXcQ",
"credits_used": 1
}curl -X POST https://easytranscriber.com/api/v1/summarize \
-H "Authorization: Bearer et_your_api_key" \
-H "Content-Type: application/json" \
-d '{"transcript": "Your transcript text...", "video_id": "dQw4w9WgXcQ"}'GET
/api/v1/creditsCheck your current credit balance.
Response
{ "balance": 42 }curl https://easytranscriber.com/api/v1/credits \
-H "Authorization: Bearer et_your_api_key"Credit Costs
| Operation | Credits | Notes |
|---|---|---|
| Transcribe (cached) | 0 | Previously transcribed videos are free |
| Transcribe (< 2 hours) | 1 | Most videos |
| Transcribe (≥ 2 hours) | 2 | Long-form content, max 4 hours |
| Summarize | 1 | AI-powered summary |
Error Codes
| Code | Status | Description |
|---|---|---|
| unauthorized | 401 | Missing, invalid, expired, or revoked API key |
| insufficient_credits | 402 | Not enough credits to perform the operation |
| invalid_request | 400 | Missing fields, invalid URL, or malformed JSON |
| rate_limited | 429 | Exceeded 30 requests per minute |
| transcription_failed | 500 | Transcription error (credits refunded automatically) |
| summarization_failed | 500 | Summarization error (credit refunded automatically) |