Transcript
Extract transcripts from YouTube videos in multiple formats.
https://api.crawly.bikal.co/v1/transcriptThe Transcript endpoint extracts captions and subtitles from YouTube videos. It supports automatic language detection, translation, and multiple output formats including plain text, timed segments, SRT, and VTT.
Each request costs 1 credit ($0.001). Failed requests are automatically refunded. The endpoint accepts standard YouTube URLs, short URLs, and embed URLs.
Request Body
urlstringREQUIREDYouTube video URL. Supports standard, short, and embed URL formats.
formatstringDefault: "text"Output format for the transcript. One of: text, segments, srt, vtt.
languagestringDefault: "en"Language code for the transcript. If the video does not have captions in this language, auto-translation is attempted.
Output Formats
| Format | Description | Use Case |
|---|---|---|
text | Plain text transcript, all segments joined | AI processing, search indexing |
segments | JSON array with text, start time, and duration per segment | Subtitles, timestamped search |
srt | SubRip subtitle format | Video players, subtitle editors |
vtt | WebVTT subtitle format | HTML5 video, web players |
Examples
curl -X POST https://api.crawly.bikal.co/v1/transcript \-H "Authorization: Bearer YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "format": "text"}'
Response
Success 200 - text format
{"success": true,"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","transcript": "We're no strangers to love, you know the rules and so do I...","language": "en","metadata": {"title": "Rick Astley - Never Gonna Give You Up","duration": "3:33"}}
Success 200 - segments format
{"success": true,"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","transcript": [{ "text": "We're no strangers to love", "start": 0.0, "duration": 3.5 },{ "text": "You know the rules and so do I", "start": 3.5, "duration": 3.2 }],"language": "en","metadata": {"title": "Rick Astley - Never Gonna Give You Up","duration": "3:33"}}
Response Fields
successbooleanWhether the transcript was extracted successfully.
urlstringThe YouTube video URL.
transcriptstring | arrayThe transcript content. String for text/srt/vtt, array of objects for segments.
languagestringThe language of the returned transcript.
metadataobjectVideo metadata including title and duration.
Errors
| Status | Type | Description |
|---|---|---|
400 | VALIDATION_ERROR | Missing url or invalid format parameter |
401 | AUTH_ERROR | Missing or invalid API key |
402 | CREDITS_EXHAUSTED | Insufficient credits |
422 | TRANSCRIPT_UNAVAILABLE | Transcript is not available for this video |
422 | VIDEO_UNAVAILABLE | Video is unavailable or private |
429 | RATE_LIMITED | Rate limit exceeded (120 requests per minute) |
Pricing
Credits are deducted upfront. Failed requests are automatically refunded to your balance.
Notes
- Transcript extraction is fast and reliable, with smart fallback logic for multi-language support.
- Supports standard URLs (
youtube.com/watch?v=), short URLs (youtu.be/), and embed URLs. - If the requested language is not available, the API attempts auto-translation from available captions.
- Videos with disabled captions will return a
TRANSCRIPT_UNAVAILABLEerror. - The
segmentsformat returns an array of objects withtext,start, anddurationfields.