API दस्तावेज़

YouTube ट्रांसक्रिप्ट, सर्च, और मेटाडेटा के लिए एक REST API। अपने dashboard से एक API key लें — 100 फ्री क्रेडिट्स, कार्ड की जरूरत नहीं।

प्रमाणीकरण

अपनी API key को बियरर टोकन के रूप में, या x-api-key के जरिए पास करें:

Authorization: Bearer sk_live_...
# or
x-api-key: sk_live_...

बेस URL

https://getyoutubetranscript.com/api/v1

क्रेडिट्स और प्लान

प्लानकीमतक्रेडिट्स/माहटॉप-अप कीमतरेट लिमिट
Free$0/माह100 (एक बार)—60 req/min
मासिक$5/माह1,000$2.50 / 1,000200 req/min
वार्षिक$4.50/माह ($54/वर्ष)1,000$1.50 / 1,000300 req/min
Starter$19/माह7,500$1.50 / 1,000300 req/min
Pro$49/माह25,000$1.50 / 1,000400 req/min
Scale$99/माह60,000$1.50 / 1,000600 req/min

1 क्रेडिट = 1 सफल रिक्वेस्ट। फेल्ड रिक्वेस्ट के लिए कभी चार्ज नहीं किया जाता। उदाहरण: 10 ट्रांसक्रिप्ट रिक्वेस्ट, जिनमें 2 वीडियो में कैप्शन नहीं हैं, 8 क्रेडिट लेती हैं, और फेल्ड वीडियो को दोबारा आज़माने पर तब तक कोई चार्ज नहीं लगता जब तक वह सफल न हो जाए। टॉप-अप क्रेडिट्स खरीद के 30 दिन बाद या आपकी मौजूदा बिलिंग अवधि के अंत में, जो भी बाद में हो, एक्सपायर हो जाते हैं, और इन्हें खर्च करने के लिए एक सक्रिय सब्सक्रिप्शन जरूरी है।

एंडपॉइंट्स

GET/transcript1 क्रेडिट

मेटाडेटा (title, channel, thumbnail) के साथ किसी YouTube वीडियो का ट्रांसक्रिप्ट पाएं। साथ ही language_code बनाम requested_language, caption_type (manual या auto, अज्ञात होने पर null) और cached / fetched_at भी लौटाता है।

पैरामीटरआवश्यकविवरण
vहांवीडियो ID या पूरा YouTube URL
languageनहींभाषा कोड (डिफ़ॉल्ट: en)
timestampsनहींहर लाइन के टाइमस्टैम्प (segments: start, duration, text, सेकंड में) पाने के लिए true सेट करें। डिफ़ॉल्ट रूप से बंद।

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/transcript?v=jNQXAC9IVRw" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "video_id": "jNQXAC9IVRw",
    "language_code": "en",
    "requested_language": "en",
    "caption_type": "manual",
    "title": "Me at the zoo",
    "author_name": "jawed",
    "author_url": "https://www.youtube.com/channel/UC4Qob...",
    "thumbnail_url": "https://...",
    "transcript": "All right, so here we are...",
    "word_count": 39,
    "cached": true,
    "fetched_at": "2026-09-20T03:10:58.938Z"
  }
}
GET/transcript/languagesFree

किसी वीडियो में उपलब्ध कैप्शन भाषाओं की सूची (manual और auto-generated), ट्रांसक्रिप्ट लाने से पहले। default_language_code वह है जो /transcript बिना भाषा के लौटाता है; जिस वीडियो में कैप्शन बंद हैं, उसके लिए खाली सूची मिलती है।

पैरामीटरआवश्यकविवरण
vहांवीडियो ID या पूरा YouTube URL

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/transcript/languages?v=kJQP7kiw5Fk" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "video_id": "kJQP7kiw5Fk",
    "default_language_code": "en",
    "languages": [
      { "language_code": "en", "name": "English - en", "caption_type": "manual" },
      { "language_code": "es", "name": "Spanish", "caption_type": "manual" }
    ]
  }
}
POST/batch1 क्रेडिट / सफल वीडियो

एक ही कॉल में 100 तक वीडियो कतार में डालें। तुरंत एक batch_id लौटाता है और ट्रांसक्रिप्ट बैकग्राउंड में लाता है। GET /batch से स्थिति देखें, या webhook_url दें ताकि पूरा होने पर एक साइन किया हुआ POST (X-GYT-Signature हेडर) मिले। फेल्ड वीडियो के लिए कभी चार्ज नहीं किया जाता।

पैरामीटरआवश्यकविवरण
videosहांवीडियो ID या URL की array (1-100)। डुप्लिकेट केवल एक बार लाए जाते हैं।
languageनहींसभी वीडियो के लिए भाषा कोड (डिफ़ॉल्ट: en)
timestampsनहींपरिणामों में हर लाइन के segments शामिल करने के लिए true
webhook_urlनहींसार्वजनिक https URL, जिसे बैच पूरा होने पर सूचना भेजी जाती है
Idempotency-Keyनहींहेडर। रिक्वेस्ट को सुरक्षित रूप से दोहराएं: वही key मूल बैच लौटाती है।

अनुरोध

curl -X POST "https://getyoutubetranscript.com/api/v1/batch" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
        "videos": ["jNQXAC9IVRw", "https://youtu.be/dQw4w9WgXcQ"],
        "webhook_url": "https://example.com/hooks/transcripts"
      }'

प्रतिक्रिया

{
  "success": true,
  "data": {
    "batch_id": "324eb615-e4d5-4b3c-b8e7-04235671066b",
    "status": "queued",
    "total": 2,
    "succeeded": 0,
    "failed": 0,
    "pending": 2,
    "results_url": "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-...",
    "webhook_secret": "whsec_..."
  }
}
GET/batchFree

बैच की स्थिति, गिनती और भेजे गए क्रम में परिणामों का एक पेज। सफल आइटम में /transcript जैसे ही फ़ील्ड होते हैं; फेल्ड आइटम में error_code होता है।

पैरामीटरआवश्यकविवरण
idहांPOST /batch से मिला batch_id
offsetनहींछोड़ने वाले आइटम (डिफ़ॉल्ट: 0)
limitनहींप्रति पेज आइटम, 1-50 (डिफ़ॉल्ट: 20)

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-e4d5-4b3c-b8e7-04235671066b" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "batch_id": "324eb615-...",
    "status": "completed",
    "total": 2,
    "succeeded": 1,
    "failed": 1,
    "credits_charged": 1,
    "items": [
      { "position": 0, "status": "succeeded", "charged": true, "video_id": "jNQXAC9IVRw", "caption_type": "manual", "transcript": "All right, so here we are...", ... },
      { "position": 1, "status": "failed", "charged": false, "video_id": "dQw4w9WgXcQ", "error_code": "TRANSCRIPT_DISABLED" }
    ],
    "next_offset": null
  }
}
GET/search1 क्रेडिट / पेज

फिल्टर और पेजिनेशन के साथ YouTube वीडियो सर्च करें।

पैरामीटरआवश्यकविवरण
qहांसर्च क्वेरी (कम से कम 2 अक्षर)
countryनहीं2-अक्षर वाला कंट्री कोड (डिफ़ॉल्ट: us)
languageनहींभाषा कोड (डिफ़ॉल्ट: en)
page_tokenनहींअगला पेज लाने के लिए पिछले रिस्पॉन्स का continuation_token
limitनहींअधिकतम परिणाम (डिफ़ॉल्ट 20, अधिकतम 50)

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/search?q=lofi+beats" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "query": "lofi beats",
    "video_results": [ { "title": "...", "videoId": "...", "channel": { "name": "..." } } ],
    "continuation_token": "c_bKt9xQ2mVf7LpR0aZ3sWyA"
  }
}
GET/resolveFree

किसी चैनल हैंडल, URL, या यूजरनेम को उसकी असली चैनल ID में रिज़ॉल्व करें। एक सिंटैक्टिक इनपुट (पहले से चैनल ID या उसे युक्त URL) बिना किसी नेटवर्क कॉल के तुरंत रिज़ॉल्व होता है; एक सादा हैंडल एक असली लुकअप ट्रिगर करता है।

पैरामीटरआवश्यकविवरण
handleहांचैनल ID, URL, या @handle

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/resolve?handle=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "channel_id": "UCBJycsmduvYEL83R_U4JriQ",
    "title": "Marques Brownlee",
    "handle": "http://www.youtube.com/@mkbhd",
    "resolved_via": "scrape"
  }
}
GET/channel/latestFree

चैनल की जानकारी (टाइटल, सब्सक्राइबर, विवरण, अवतार) और चैनल के होम टैब पर दिखने वाले नए वीडियो। पूरी अपलोड हिस्ट्री के लिए /channel/videos का उपयोग करें।

पैरामीटरआवश्यकविवरण
channelहांचैनल का @handle, URL या चैनल ID

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/channel/latest?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "channel": { "id": "UCBJycsmduvYEL83R_U4JriQ", "title": "Marques Brownlee", "subscribers": 1160000, "avatar": "https://..." },
    "about": { "description": "...", "links": [] },
    "videos_sections": [ ... ]
  }
}
GET/channel/videos1 क्रेडिट / पेज

किसी चैनल के सभी अपलोड किए गए वीडियो, सबसे नए पहले, पेज के हिसाब से।

पैरामीटरआवश्यकविवरण
channelहांचैनल का @handle, URL या चैनल ID
continuationनहींअगला पेज पाने के लिए पिछले जवाब का continuation_token (दूसरे पैरामीटर की जगह इसका उपयोग करें)। 24 घंटे बाद समाप्त हो जाता है।

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/channel/videos?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "views": "6.2M", "published_time": "1d ago", "length": "10:47" } ],
    "has_more": true,
    "continuation_token": "c_pqHR9v13sqaqxlcKhA4MnA"
  }
}
GET/channel/search1 क्रेडिट / पेज

किसी एक चैनल के वीडियो में खोजें, पेज के हिसाब से।

पैरामीटरआवश्यकविवरण
channelहांचैनल का @handle, URL या चैनल ID
qहांसर्च क्वेरी (कम से कम 2 अक्षर)
continuationनहींअगला पेज पाने के लिए पिछले जवाब का continuation_token (दूसरे पैरामीटर की जगह इसका उपयोग करें)। 24 घंटे बाद समाप्त हो जाता है।

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/channel/search?channel=@mkbhd&q=iphone" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "published_time": "3w ago", "length": "17:14", "channel": { "name": "Marques Brownlee" } } ],
    "has_more": true,
    "continuation_token": "c_pnm10M6orzLgOTVWJk2oww"
  }
}
GET/playlist1 क्रेडिट / पेज

किसी प्लेलिस्ट के सभी वीडियो, पेज के हिसाब से। आखिरी पेज पर continuation_token null होता है।

पैरामीटरआवश्यकविवरण
listहांप्लेलिस्ट ID या URL
continuationनहींअगला पेज पाने के लिए पिछले जवाब का continuation_token (दूसरे पैरामीटर की जगह इसका उपयोग करें)। 24 घंटे बाद समाप्त हो जाता है।

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/playlist?list=PLxxx" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "playlist_id": "PLxxx",
    "title": "...",
    "videos": [ { "position": 1, "id": "...", "title": "...", "channel": { "name": "..." } } ],
    "has_more": true,
    "continuation_token": "c_DfE9mQx2Ln8TbW4kJ1pZsA"
  }
}
GET/creditsFree

इस्तेमाल करने से पहले इस की का बचा हुआ क्रेडिट बैलेंस देखें - यह वही डेटा है जो MCP का get_credits टूल देता है।

पैरामीटरआवश्यकविवरण

अनुरोध

curl "https://getyoutubetranscript.com/api/v1/credits" \
  -H "Authorization: Bearer sk_live_..."

प्रतिक्रिया

{
  "success": true,
  "data": {
    "plan_credits_left": 87,
    "topup_credits_left": 0,
    "plan": "monthly",
    "rate_limit_per_minute": 200
  }
}

त्रुटियाँ

Errors HTTP status के अलावा एक JSON बॉडी लौटाते हैं जिसमें ब्रांच करने के लिए एक स्थिर code फील्ड होता है:

स्थितिकोडअर्थ
400BAD_REQUESTपैरामीटर गायब या अमान्य है
400CURSOR_EXPIREDपेज कर्सर समाप्त हो गया (24 घंटे बाद) - पहले पेज से फिर शुरू करें
401MISSING_API_KEY / INVALID_API_KEYकोई key नहीं दी गई, या key अमान्य/रद्द है
402PAYMENT_REQUIREDक्रेडिट्स खत्म - टॉप-अप खरीदें या अपग्रेड करें
404VIDEO_UNAVAILABLE / TRANSCRIPT_NOT_FOUNDवीडियो या रिसोर्स नहीं मिला
429RATE_LIMITEDआपके प्लान टियर के लिए बहुत ज्यादा रिक्वेस्ट
503UPSTREAM_UNAVAILABLEअस्थायी अपस्ट्रीम समस्या - फिर से कोशिश करना सुरक्षित है
504UPSTREAM_TIMEOUTअपस्ट्रीम को 25 सेकंड से ज़्यादा लगे - कोई चार्ज नहीं, फिर से कोशिश करना सुरक्षित है

इस API को किसी AI टूल के साथ इस्तेमाल करना

खुद रिक्वेस्ट लिखने के बजाय Claude (या किसी अन्य AI कोडिंग टूल) से यह API कॉल करवाना चाहते हैं? YouTube Transcript skill डाउनलोड करें - एक तैयार Claude Skill जो उसे ट्रांसक्रिप्ट लाना, सर्च करना, और बहुत कुछ सिखाती है।

Zapier में इस्तेमाल करें

बिना कोड के: हमारा Zapier ऐप किसी भी Zap में ट्रांसक्रिप्ट लाता है, YouTube खोजता है या किसी चैनल के वीडियो की सूची देता है। इसे उसी API key से जोड़ें; हर एक्शन में API कॉल जितने ही क्रेडिट लगते हैं।