API रेफ़रेंस
एंडपॉइंट, फ़ील्ड, जवाब, क्रेडिट, सीमाएं और एरर।
अपडेट किया गया
यह कैसे काम करता है#
हर ट्रांसक्रिप्ट एक जॉब है। आप एक सोर्स सबमिट करते हैं, जॉब बैकग्राउंड में चलता है, और सफल होने पर वह एक ट्रांसक्रिप्ट की ओर इशारा करता है, जिसे आप जितनी बार चाहें पढ़ या एक्सपोर्ट कर सकते हैं। बेस URL: https://www.transcriptdock.com। सभी अनुरोध और जवाब JSON में हैं।
# 1. Submitcurl -X POST https://www.transcriptdock.com/v1/jobs \-H "Authorization: Bearer td_live_YOUR_KEY" \-H "Idempotency-Key: video-7680721699171601694" \-H "Content-Type: application/json" \-d '{ "source": { "url": "https://www.tiktok.com/@tiktok/video/7680721699171601694" }, "mode": "captions_only" }'# 2. Wait (returns as soon as the job finishes, up to 25 s per call)curl "https://www.transcriptdock.com/v1/jobs/11111111-1111-4111-8111-111111111111?wait=25" \-H "Authorization: Bearer td_live_YOUR_KEY"# 3. Exportcurl "https://www.transcriptdock.com/v1/transcripts/22222222-2222-4222-8222-222222222222/export?format=srt" \-H "Authorization: Bearer td_live_YOUR_KEY"
ऑथेंटिकेशन#
कुंजियां API कुंजियां पेज पर बनाएं। कुंजी एक ही बार दिखती है, td_live_... जैसी दिखती है, और हर अनुरोध के Authorization हेडर में जाती है। कुंजियों के स्कोप बनाते समय तय होते हैं: jobs:read, jobs:write, transcripts:read, uploads:write। हर इंटीग्रेशन के लिए अलग कुंजी बनाएं, ताकि उसे अकेले रद्द किया जा सके।
Authorization: Bearer td_live_YOUR_KEY
Idempotency-Key#
POST /v1/jobs, /v1/batches, /v1/jobs/{id}/retry, /v1/video-discoveries और /v1/language-discoveries पर ज़रूरी है: 8 से 128 प्रिंट होने वाले ASCII अक्षर। 48 घंटे के अंदर वही कुंजी उसी बॉडी के साथ भेजने पर मूल ऑब्जेक्ट ही लौटता है, इसलिए दोबारा भेजा गया अनुरोध न दो बार बनाता है, न दो बार चार्ज करता है। वही कुंजी किसी अलग बॉडी के साथ भेजने पर 409 IDEMPOTENCY_CONFLICT मिलता है। अच्छी कुंजी वही है जो आपके ट्रांसक्राइब किए जा रहे आइटम की अपनी id हो।
X-Request-Id#
यह हेडर हर जवाब में आता है। सहायता से संपर्क करते समय इसे बताएं।
एंडपॉइंट#
| मेथड | पाथ | यह क्या करता है | क्रेडिट |
|---|---|---|---|
| POST | /v1/jobs | एक वीडियो, फ़ाइल या लिंक ट्रांसक्राइब करें | कैप्शन ट्रांसक्रिप्ट का 1, AI ट्रांसक्रिप्शन के हर मिनट का 2 |
| GET | /v1/jobs/{id} | जॉब का स्टेटस, 25 सेकंड तक इंतज़ार करता है | मुफ़्त |
| GET | /v1/jobs | जॉब का इतिहास | मुफ़्त |
| POST | /v1/jobs/{id}/cancel | कतार में लगा जॉब रद्द करें | मुफ़्त |
| POST | /v1/jobs/{id}/retry | फेल हुआ जॉब फिर से चलाएं | नए जॉब की तरह |
| POST | /v1/batches | कई वीडियो ट्रांसक्राइब करें (प्लान का बैच आकार) | हर आइटम पर, ऊपर बताए अनुसार |
| GET | /v1/batches/{id} | बैच का स्टेटस | मुफ़्त |
| GET | /v1/transcripts/{id} | ट्रांसक्रिप्ट JSON | मुफ़्त |
| GET | /v1/transcripts/{id}/export | txt, srt, vtt या json फ़ाइल | मुफ़्त |
| DELETE | /v1/transcripts/{id} | ट्रांसक्रिप्ट हटाएं | मुफ़्त |
| POST | /v1/uploads | फ़ाइल अपलोड करने का URL पाएं | मुफ़्त |
| POST | /v1/uploads/{id}/complete | अपलोड पूरा हुआ, यह चिह्नित करें | मुफ़्त |
| POST | /v1/video-discoveries | YouTube में खोजें, किसी चैनल, प्लेलिस्ट या TikTok प्रोफ़ाइल की सूची लें | प्रति पेज 1 |
| GET | /v1/video-discoveries/{id} | डिस्कवरी का नतीजा | मुफ़्त |
| POST | /v1/language-discoveries | YouTube वीडियो की कैप्शन भाषाओं की सूची | 1 |
| GET | /v1/language-discoveries/{id} | भाषाओं की सूची | मुफ़्त |
| POST | /v1/webhook-endpoints | वेबहुक URL रजिस्टर करें (साइन इन सेशन में) | मुफ़्त |
| GET | /v1/webhook-endpoints | वेबहुक URL की सूची | मुफ़्त |
| DELETE | /v1/webhook-endpoints/{id} | वेबहुक URL बंद करें (साइन इन सेशन में) | मुफ़्त |
| GET | /v1/usage | क्रेडिट और प्लान | मुफ़्त |
| GET | /v1/capabilities | आपकी कुंजी क्या कर सकती है | मुफ़्त |
जॉब बनाएं#
/v1/jobsजॉब के साथ 202 लौटाता है। अगर आपके वर्कस्पेस में उसी वीडियो और उन्हीं विकल्पों का ट्रांसक्रिप्ट पहले से है, तो मुफ़्त में सफल जॉब के साथ 200 लौटता है (billing.kind: "cached")।
{"id": "11111111-1111-4111-8111-111111111111","status": "queued","stage": "resolve","result_id": null,"error": null,"billing": { "credits_reserved": 2, "credits_charged": 0, "kind": "captions" },"source": { "platform": "tiktok", "media_id": "7680721699171601694", "canonical_url": "https://www.tiktok.com/@tiktok/video/7680721699171601694", "title": null, "upload_id": null },"options": { "mode": "auto", "language": null, "caption_preference": "prefer_creator" },"created_at": "2026-09-16T10:00:00.000Z"}
जॉब ऑब्जेक्ट#
जॉब पाएं#
/v1/jobs/{id}?wait=25जॉब लौटाता है। wait (0 से 25 सेकंड) देने पर अनुरोध खुला रहता है और जॉब के अंतिम स्थिति में पहुंचते ही जवाब आ जाता है, यानी एक कॉल पोलिंग लूप की जगह ले लेती है। रीड की अपनी सीमा है: प्रति मिनट 120।
जॉब की सूची#
/v1/jobs?limit=20&cursor=नए पहले, limit 1 से 100। अगला पेज पाने के लिए जवाब का next_cursor cursor के रूप में वापस भेजें। किसी एक वीडियो के जॉब ही देखने के लिए platform और source_id (जॉब का source.media_id) साथ में जोड़ें, किसी भी मोड के। इसी तरह क्लाइंट दोबारा सबमिट करने से पहले जांचता है कि वर्कस्पेस के पास वह ट्रांसक्रिप्ट पहले से है या नहीं।
जॉब रद्द करें#
/v1/jobs/{id}/cancelजिस जॉब में AI ट्रांसक्रिप्शन अभी शुरू नहीं हुआ, उसे रद्द करता है; होल्ड छूट जाता है। इसके बाद करने पर 409 CANCELLATION_NOT_ALLOWED लौटता है और जॉब पूरा होता है।
जॉब फिर से चलाएं#
/v1/jobs/{id}/retryफेल हुए जॉब से नया जॉब बनाता है, बशर्ते उसका एरर retryable रहा हो। नई Idempotency-Key चाहिए; बॉडी वैकल्पिक है: { "max_credits": 40 }। कीमत नए जॉब जैसी ही लगती है। जो फेल होना अंतिम है (निजी वीडियो, कैप्शन नहीं), उस पर 409 JOB_NOT_RETRYABLE लौटता है: इनपुट ठीक करें और फिर से सबमिट करें।
ट्रांसक्रिप्ट#
/v1/transcripts/{id}{"id": "22222222-2222-4222-8222-222222222222","source": { "platform": "youtube", "media_id": "dQw4w9WgXcQ", "canonical_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "title": "Never Gonna Give You Up" },"source_origin": "creator_captions","language": "en","text": "Never gonna give you up. Never gonna let you down.","segments": [{ "start": 0, "end": 2.4, "text": "Never gonna give you up" },{ "start": 2.4, "end": 4.9, "text": "Never gonna let you down" }],"words": null,"timing_granularity": "segment","duration_seconds": 212.0,"recognition": null,"extraction_version": "worker-0.1.0","created_at": "2026-09-16T10:00:14.000Z"}
ट्रांसक्रिप्ट आपके प्लान की रिटेंशन अवधि तक रखे जाते हैं (ट्रायल पर 7 दिन, Starter पर 30, Pro और Scale पर 90)। DELETE /v1/transcripts/{id} किसी को उससे पहले हटा देता है।
ट्रांसक्रिप्ट एक्सपोर्ट करें#
/v1/transcripts/{id}/export?format=srt| format | आपको मिलता है |
|---|---|
| txt | सादा टेक्स्ट, हर लाइन में एक सेगमेंट। |
| srt | SubRip सबटाइटल। |
| vtt | WebVTT सबटाइटल। |
| json | ऊपर बताया गया ट्रांसक्रिप्ट ऑब्जेक्ट। |
मुफ़्त, असीमित। srt और vtt के लिए समय चाहिए; जिस ट्रांसक्रिप्ट में समय नहीं हैं, उस पर 422 TIMESTAMPS_UNAVAILABLE लौटता है।
बैच#
/v1/batchesएक अनुरोध, कई वीडियो। हर आइटम में वही फ़ील्ड हैं जो जॉब बनाएं में हैं; पूरा बैच एक साथ स्वीकार या अस्वीकार होता है। हर बैच में आइटम: ट्रायल पर 1, Starter पर 10, Pro पर 25, Scale पर 50।
curl -X POST https://www.transcriptdock.com/v1/batches \-H "Authorization: Bearer td_live_YOUR_KEY" \-H "Idempotency-Key: playlist-2026-09-16" \-H "Content-Type: application/json" \-d '{ "items": [{ "source": { "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }, "mode": "captions_only" },{ "source": { "url": "https://www.tiktok.com/@tiktok/video/7680721699171601694" }, "mode": "captions_only" }] }'
बैच ऑब्जेक्ट में status (queued, processing, succeeded, partial_success, failed, cancelled), गिनतियां (total_items, succeeded_items, failed_items, cancelled_items) और items होते हैं, जिनमें हर एक का अपना job_id है। इसे GET /v1/batches/{id} से पढ़ें; हर आइटम एक सामान्य जॉब है।
अपलोड#
आपका अपना ऑडियो या वीडियो (mp3, wav, m4a, ogg, aac, mp4, webm; 250 MB और 2 घंटे तक)। एक स्लॉट रिज़र्व करें, फ़ाइल को साइन किए हुए URL पर PUT करें, उसे पूरा चिह्नित करें, फिर source.upload_id के साथ जॉब के रूप में सबमिट करें। अपलोड में हमेशा AI ट्रांसक्रिप्शन होता है।
# 1. Reservecurl -X POST https://www.transcriptdock.com/v1/uploads \-H "Authorization: Bearer td_live_YOUR_KEY" \-H "Content-Type: application/json" \-d '{ "filename": "interview.mp3", "content_type": "audio/mpeg", "bytes": 48213920 }'# -> { "id": "33333333-...", "signed_upload_url": "https://...", "expires_at": "...", "status": "pending" }# 2. Upload the bytes (same Content-Type you declared)curl -X PUT "SIGNED_UPLOAD_URL" -H "Content-Type: audio/mpeg" --data-binary @interview.mp3# 3. Completecurl -X POST https://www.transcriptdock.com/v1/uploads/33333333-3333-4333-8333-333333333333/complete \-H "Authorization: Bearer td_live_YOUR_KEY"# 4. Transcribe itcurl -X POST https://www.transcriptdock.com/v1/jobs \-H "Authorization: Bearer td_live_YOUR_KEY" \-H "Idempotency-Key: interview-01" \-H "Content-Type: application/json" \-d '{ "source": { "upload_id": "33333333-3333-4333-8333-333333333333" }, "mode": "transcribe" }'
साइन किया हुआ URL 24 घंटे तक मान्य रहता है; उसके बाद नया स्लॉट रिज़र्व करें।
वेबहुक#
/v1/webhook-endpointsएक https URL रजिस्टर करें और सबमिट करते समय उसकी id को webhook_endpoint_id के रूप में दें। जॉब या बैच पूरा होने पर हम एक इवेंट POST करते हैं। जवाब में साइनिंग secret एक ही बार दिखता है। एंडपॉइंट रजिस्टर करने और बंद करने के लिए साइन इन सेशन चाहिए, इसलिए यह डैशबोर्ड के वेबहुक पेज पर करें; API कुंजी को वहां 403 FORBIDDEN मिलता है, लेकिन वह एंडपॉइंट की सूची देख सकती है।
इवेंट#
{"event_id": "44444444-4444-4444-8444-444444444444","type": "job.succeeded","created_at": "2026-09-16T10:00:14.000Z","job_id": "11111111-1111-4111-8111-111111111111","batch_id": null,"result_id": "22222222-2222-4222-8222-222222222222","metadata": { "order": "8812" },"error": null}
job.succeeded:result_idको फ़ेच या एक्सपोर्ट करें।job.failed:errorमें कोड होता है।batch.completed: हर आइटम अंतिम स्थिति में है; आइटम के हिसाब से नतीजे देखने के लिए बैच पढ़ें।
कुछ सेकंड के भीतर कोई भी 2xx लौटाएं। फेल हुई डिलीवरी बैकऑफ़ के साथ दोबारा भेजी जाती हैं और डैशबोर्ड से फिर से भेजी जा सकती हैं। एक इवेंट एक से ज़्यादा बार आ सकता है: event_id पर डुप्लिकेट हटाएं।
सिग्नेचर जांचें#
हेडर X-TranscriptDock-Event-Id, X-TranscriptDock-Timestamp और X-TranscriptDock-Signature। सिग्नेचर आपके सीक्रेट के साथ {event_id}.{timestamp}.{raw_body} का HMAC-SHA256 (hex) है। पांच मिनट से पुराना कुछ भी अस्वीकार करें।
import crypto from "node:crypto";export function verify(eventId: string, timestamp: string, rawBody: string, signature: string, secret: string): boolean {if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;const expected = crypto.createHmac("sha256", secret).update(`${eventId}.${timestamp}.${rawBody}`).digest("hex");return expected.length === signature.length && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));}
वीडियो खोजें#
/v1/video-discoveriesYouTube में खोजें या किसी चैनल, प्लेलिस्ट या TikTok प्रोफ़ाइल की सूची लें, फिर URL को जॉब में दें। डिस्कवरी जॉब की तरह बैकग्राउंड में चलती है: उसे GET /v1/video-discoveries/{id} से तब तक पढ़ें जब तक status succeeded न हो जाए। प्रति पेज 1 क्रेडिट; नतीजे 24 घंटे तक रखे जाते हैं।
curl -X POST https://www.transcriptdock.com/v1/video-discoveries \-H "Authorization: Bearer td_live_YOUR_KEY" \-H "Idempotency-Key: search-async-rust-1" \-H "Content-Type: application/json" \-d '{ "kind": "youtube_search", "query": "async rust", "limit": 5 }'
POST 202 के साथ status: "queued" लौटाता है। पूरा हो चुका GET /v1/video-discoveries/{id} ऐसा दिखता है:
{"id": "55555555-5555-4555-8555-555555555555","kind": "youtube_search","status": "succeeded","request": { "kind": "youtube_search", "query": "async rust", "limit": 5 },"videos": [{"platform": "youtube","video_id": "wXtngLBkK4Q","url": "https://www.youtube.com/watch?v=wXtngLBkK4Q","title": "Async Rust explained in 20 minutes","channel_id": "UCSp-OaMpsO8K0KkOqyBl7_w","channel_title": "Let's Get Rusty","duration_s": 1155,"published_at": null,"published_text": "5 months ago","view_count": 83635,"view_count_text": "83,635 views","thumbnail_url": "https://i.ytimg.com/vi/wXtngLBkK4Q/hq720.jpg","tiktok": null}],"profile": null,"next_cursor": "opaque-token","error": null,"created_at": "2026-09-16T12:00:00.000Z","updated_at": "2026-09-16T12:00:03.000Z","expires_at": "2026-09-17T12:00:00.000Z"}
किसी वीडियो की कैप्शन भाषाएं#
/v1/language-discoveriesबॉडी { "source": { "url": "https://www.youtube.com/watch?v=..." } } और एक Idempotency-Key के साथ (सिर्फ़ YouTube, 1 क्रेडिट)। कैप्शन ट्रैक की सूची, उनके कोड, वे क्रिएटर के हैं या ऑटोमैटिक, और डिफ़ॉल्ट जानने के लिए GET /v1/language-discoveries/{id} पढ़ें। उन कोड को caption_languages में इस्तेमाल करें।
उपयोग और क्षमताएं#
/v1/usage{"plan": "pro","period_end": "2026-10-16T00:00:00.000Z","credits_remaining": 5840,"credits_total": 6000,"credits_reserved": 4,"prepaid_credits": 0,"transcribe_credits_per_minute": 2,"minimum_billable_seconds": 60,"subscription": {"status": "active","interval": "yearly","cancel_at_period_end": false,"current_period_end": "2027-09-16T00:00:00.000Z"}}
credits_remaining में credits_reserved (चल रहे जॉब के होल्ड) पहले से घटे होते हैं। prepaid_credits खरीदे गए क्रेडिट हैं, जो कभी खत्म नहीं होते।
subscription पेड प्लान के पीछे की Stripe सब्सक्रिप्शन है, और उसके बिना null होती है: इसमें उसका status, बिलिंग interval (monthly या yearly), cancel_at_period_end, और current_period_end होते हैं, यानी प्लान कब रिन्यू या खत्म होता है। period_end वह समय है जब मासिक क्रेडिट रिफ़्रेश होते हैं, वार्षिक प्लान पर भी हर महीने।
/v1/capabilitiesआपकी कुंजी अभी क्या कर सकती है: हर सोर्स (youtube, tiktok, instagram, upload, direct) के लिए कौन से मोड उपलब्ध हैं, साथ में सीमाएं और कीमतें। इन्हें हार्डकोड करने की जगह यही पढ़ें; उदाहरण के लिए ट्रायल auto और transcribe को false बताता है।
{"youtube": { "enabled": true, "captions_only": true, "auto": true, "transcribe": true, "social_acquisition_fee": true },"tiktok": { "enabled": true, "captions_only": true, "auto": true, "transcribe": true, "social_acquisition_fee": true },"instagram": { "enabled": false, "captions_only": false, "auto": false, "transcribe": false, "social_acquisition_fee": true, "native_captions": "unverified_disabled" },"upload": { "enabled": true, "captions_only": false, "auto": true, "transcribe": true, "social_acquisition_fee": false },"direct": { "enabled": true, "captions_only": false, "auto": true, "transcribe": true, "social_acquisition_fee": false },"max_duration_ms": 7200000,"max_media_bytes": 262144000,"export_formats": ["txt", "json", "srt", "vtt"],"recognition_profiles": ["standard"],"transcribe_credits_per_minute": 2,"minimum_billable_seconds": 60,"price_version": "2026-09-14","asr_enabled": true,"instagram_enabled": false,"free_caption_credits": 50,"free_caption_credits_period": "month"}
रेट लिमिट#
| प्लान | सबमिट / मिनट | चल रहे जॉब | रीड / मिनट |
|---|---|---|---|
| ट्रायल | 10 | 10 | 120 |
| Starter | 60 | 100 | 120 |
| Pro | 120 | 500 | 120 |
| Scale | 300 | 2,000 | 120 |
सीमा पार होने पर 429 RATE_LIMITED मिलता है, साथ में retry-after हेडर (सेकंड में) और सीमा का नाम बताने वाला details.detail। कुछ नहीं कटता। वेबहुक और ?wait=25 आपको रीड सीमा से बहुत दूर रखते हैं।
एरर#
हर एरर का आकार एक जैसा है। retryable: true का मतलब है कि वही अनुरोध बाद में सफल हो सकता है: retry-after दिया हो तो उतने सेकंड रुकें, वरना कुछ सेकंड का बैकऑफ़ लें, और वही Idempotency-Key इस्तेमाल करें ताकि कुछ डुप्लिकेट न हो। बाकी हर एरर में आपकी तरफ़ से बदलाव चाहिए।
{"error": {"code": "INSUFFICIENT_BALANCE","message": "Not enough credits. Buy credits or upgrade your plan to continue.","retryable": false,"details": { "detail": "This job needs more credits than you have left. Buy credits or upgrade your plan." },"doc_url": "https://www.transcriptdock.com/docs/api-reference#error-codes"},"request_id": "66666666-6666-4666-8666-666666666666"}
स्वीकार होने के बाद जो जॉब फेल होता है, वह GET /v1/jobs/{id} पर फिर भी 200 देता है, जिसमें status: "failed" और error में वही एरर ऑब्जेक्ट होता है। फेल हुए जॉब पर कुछ नहीं कटता।
कोड#
| कोड | HTTP | रीट्राई | मतलब और क्या करें |
|---|---|---|---|
INVALID_REQUEST | 422 | नहीं | कोई फ़ील्ड गायब है या उसका आकार गलत है। details.detail उसका नाम बताता है। |
INVALID_URL | 422 | नहीं | URL मान्य https लिंक नहीं है (ज़्यादा से ज़्यादा 2048 अक्षर)। |
UNSUPPORTED_SOURCE | 422 | नहीं | लिंक YouTube या TikTok वीडियो का URL नहीं है। |
UNSAFE_URL | 422 | नहीं | सीधा मीडिया लिंक किसी निजी या ब्लॉक किए गए नेटवर्क पते की ओर जाता है। |
INVALID_CURSOR | 422 | नहीं | वीडियो डिस्कवरी का कर्सर एक्सपायर हो गया है या गलत बना है। पहले पेज से फिर शुरू करें। जॉब सूची का गलत कर्सर INVALID_REQUEST लौटाता है। |
CAPABILITY_UNAVAILABLE | 422 | नहीं | यह मोड इस सोर्स के लिए उपलब्ध नहीं है। GET /v1/capabilities दिखाता है कि क्या उपलब्ध है। |
IDEMPOTENCY_CONFLICT | 409 | नहीं | यह Idempotency-Key पहले किसी दूसरी बॉडी के साथ इस्तेमाल हो चुकी है। नई कुंजी इस्तेमाल करें। |
UNAUTHENTICATED | 401 | नहीं | Authorization हेडर में कोई मान्य API कुंजी या OAuth टोकन नहीं है। |
FORBIDDEN | 403 | नहीं | कुंजी के पास इस एंडपॉइंट का स्कोप नहीं है, या वर्कस्पेस बंद है। |
EMAIL_UNVERIFIED | 403 | नहीं | API इस्तेमाल करने से पहले खाते का ईमेल वेरिफ़ाई करें। |
NOT_FOUND | 404 | नहीं | इस वर्कस्पेस में ऐसा कोई ऑब्जेक्ट नहीं है। |
INSUFFICIENT_BALANCE | 402 | नहीं | इस जॉब के लिए क्रेडिट काफ़ी नहीं हैं। क्रेडिट खरीदें या प्लान अपग्रेड करें। |
PLAN_REQUIRED | 402 | नहीं | इसके लिए पेड प्लान चाहिए (AI ट्रांसक्रिप्शन, बड़े बैच) या ट्रायल के क्रेडिट खत्म हो चुके हैं। |
BUDGET_EXCEEDED | 402 | नहीं | नापी गई कीमत max_credits से ज़्यादा है। कुछ नहीं कटा; सीमा बढ़ाएं या वह मीडिया छोड़ दें। |
JOB_NOT_RETRYABLE | 409 | नहीं | फेल होना अंतिम था (निजी वीडियो, कैप्शन नहीं)। इनपुट ठीक करें और नया जॉब सबमिट करें। |
CANCELLATION_NOT_ALLOWED | 409 | नहीं | AI ट्रांसक्रिप्शन शुरू हो चुका है; जॉब पूरा होगा। |
RATE_LIMITED | 429 | हां | रेट या कतार की सीमा पार हो गई। retry-after सेकंड रुकें; details.detail बताता है कि कौन सी सीमा। |
SOURCE_NOT_FOUND | 422 | नहीं | वीडियो मौजूद नहीं है या हटा दिया गया है। |
SOURCE_PRIVATE | 422 | नहीं | वीडियो निजी है। सिर्फ़ सार्वजनिक वीडियो चलते हैं। |
SOURCE_AUTH_REQUIRED | 422 | नहीं | वीडियो के लिए लॉगिन, उम्र की जांच या मेंबरशिप चाहिए। |
SOURCE_REGION_RESTRICTED | 422 | नहीं | जिन क्षेत्रों से हम फ़ेच करते हैं, वहां वीडियो ब्लॉक है। |
NO_CAPTIONS | 422 | नहीं | इस वीडियो में कैप्शन नहीं हैं और mode captions_only था। auto या transcribe इस्तेमाल करें। |
LANGUAGE_UNAVAILABLE | 422 | नहीं | caption_languages में से कोई भी भाषा इस वीडियो में नहीं है। सूची हटाएं, ताकि डिफ़ॉल्ट ट्रैक लिया जाए। |
LANGUAGE_UNSUPPORTED | 422 | नहीं | AI ट्रांसक्रिप्शन मांगी गई भाषा को सपोर्ट नहीं करता। |
NO_SPEECH | 422 | नहीं | AI ट्रांसक्रिप्शन को ऑडियो में कोई आवाज़ नहीं मिली। |
NO_AUDIO | 422 | नहीं | मीडिया में ऑडियो ट्रैक नहीं है। |
INVALID_MEDIA | 422 | नहीं | फ़ाइल को ऑडियो या वीडियो के रूप में पढ़ा नहीं जा सका। |
UNSUPPORTED_MEDIA | 422 | नहीं | यह ऑडियो या वीडियो फ़ाइल का प्रकार नहीं है। |
DURATION_LIMIT_EXCEEDED | 413 | नहीं | 2 घंटे से लंबा। |
FILE_TOO_LARGE | 413 | नहीं | 250 MB से बड़ा। |
TIMESTAMPS_UNAVAILABLE | 422 | नहीं | इस ट्रांसक्रिप्ट में समय नहीं हैं, इसलिए srt और vtt एक्सपोर्ट उपलब्ध नहीं हैं। txt या json इस्तेमाल करें। |
PROVIDER_REJECTED | 422 | नहीं | AI ट्रांसक्रिप्शन मॉडल इस ऑडियो को प्रोसेस नहीं कर सका। |
SOURCE_RATE_LIMITED | 503 | हां | सोर्स प्लेटफ़ॉर्म हमारी रफ़्तार सीमित कर रहा है। जॉब अपने आप दोबारा कोशिश करता है। |
SOURCE_BLOCKED | 503 | हां | सोर्स प्लेटफ़ॉर्म ने फ़ेच ब्लॉक कर दिया। जॉब अपने आप दोबारा कोशिश करता है। |
SOURCE_TIMEOUT | 503 | हां | सोर्स प्लेटफ़ॉर्म का टाइमआउट हो गया। जॉब अपने आप दोबारा कोशिश करता है। |
SOURCE_CHANGED | 503 | हां | हमारे पढ़ते समय सोर्स बदल गया। जॉब अपने आप दोबारा कोशिश करता है। |
PROVIDER_UNAVAILABLE | 503 | हां | AI ट्रांसक्रिप्शन फ़िलहाल उपलब्ध नहीं है। जॉब अपने आप दोबारा कोशिश करता है। |
STORAGE_UNAVAILABLE | 503 | हां | फ़ाइल स्टोरेज फ़िलहाल उपलब्ध नहीं है। अनुरोध फिर से भेजें। |
INTERNAL_ERROR | 500 | हां | हमारी गलती। वही Idempotency-Key लेकर फिर कोशिश करें; बनी रहे तो X-Request-Id बताएं। |