How to Get YouTube Transcripts in Python

Two ways to pull YouTube transcripts in Python: the open-source youtube-transcript-api library, and a hosted REST API. Working code for both, and where the self-hosted approach breaks in production.

00:07:00 · SEP 26, 2026

त्वरित उत्तर

एक क्विक लोकल स्क्रिप्ट के लिए youtube-transcript-api इंस्टॉल करें, या डिप्लॉय करने पर IP ब्लॉकिंग और PoToken की समस्याओं से न जूझना हो तो एक होस्टेड REST API कॉल करें। दोनों नीचे काम करने वाले कोड के साथ बताए गए हैं।
01

ओपन-सोर्स लाइब्रेरी इंस्टॉल करें

youtube-transcript-api एक अच्छी तरह मेंटेन किया गया Python पैकेज है जो सीधे YouTube का अपना कैप्शन डेटा लाता है - न कोई API की, न YouTube Data API कोटा।

pip install youtube-transcript-api

वीडियो ID के साथ ट्रांसक्रिप्ट प्राप्त करें:

from youtube_transcript_api import YouTubeTranscriptApi

api = YouTubeTranscriptApi()
transcript = api.fetch("dQw4w9WgXcQ", languages=["en"])

for snippet in transcript:
    print(snippet.text, snippet.start, snippet.duration)
02

डिप्लॉय करने पर यह कहाँ फेल होता है

यह लैपटॉप पर भरोसेमंद तरीके से काम करता है। क्लाउड सर्वर पर डिप्लॉय करने पर, यह असली, अच्छी तरह डॉक्यूमेंटेड फेलियर से टकरा सकता है - IP ब्लॉकिंग, PoTokenRequired, और एक 'ट्रांसक्रिप्ट डिसेबल्ड' एरर जो हमेशा वैसा नहीं होता जैसा दिखता है। सटीक कारण और समाधान के लिए पूरी डायग्नोस्टिक चेकलिस्ट देखें।

03

API की लें (अगर सेल्फ-होस्ट नहीं करना चाहते)

डैशबोर्ड से मुफ़्त की लें - 100 मुफ़्त क्रेडिट, बिना कार्ड के।

pip install requests
04

Python से होस्टेड API कॉल करें

कोई प्रॉक्सी पूल नहीं, कोई IP-ब्लॉकिंग मेंटेनेंस नहीं - बस एक HTTP रिक्वेस्ट:

import requests

response = requests.get(
    "https://getyoutubetranscript.com/api/v1/transcript",
    params={"v": "dQw4w9WgXcQ"},
    headers={"Authorization": "Bearer sk_live_..."},
)
result = response.json()

print(result["data"]["transcript"])
print(result["data"]["word_count"])

एक असफल रिक्वेस्ट लाइब्रेरी-विशिष्ट एक्सेप्शन फेंकने के बजाय एक एरर ऑब्जेक्ट लौटाती है, इसलिए वही एरर हैंडलिंग हर एंडपॉइंट पर काम करती है।

{ "success": false, "code": "...", "message": "..." }
05

एक से ज़्यादा वीडियो लाना

वीडियो ID की लिस्ट पर लूप चलाना उसी तरह काम करता है - बस अपने प्लान की प्रति-मिनट रिक्वेस्ट लिमिट का ध्यान रखें। बैकऑफ़ और रिट्राई लॉजिक के लिए रेट लिमिट गाइड देखें।

दोनों तरीके एक ही जानकारी लौटाते हैं - फ़र्क़ इसका है कि इंफ्रास्ट्रक्चर को चालू रखने का काम कौन करता है। पूरी कीमत देखें (100 मुफ़्त क्रेडिट, बिना कार्ड के) या हर एंडपॉइंट के लिए API डॉक्स पढ़ें।

Python YouTube ट्रांसक्रिप्ट FAQ

Q01

मुझे कौन सा तरीका इस्तेमाल करना चाहिए?

क्विक लोकल स्क्रिप्ट या प्रोटोटाइप के लिए youtube-transcript-api। प्रोडक्शन में डिप्लॉय करते समय और खुद प्रॉक्सी/IP-ब्लॉकिंग वर्कअराउंड मेंटेन नहीं करना चाहते तो एक होस्टेड API।

Q02

क्या होस्टेड API को youtube-transcript-api लाइब्रेरी चाहिए?

नहीं - यह एक सामान्य REST API है। किसी भी HTTP क्लाइंट (requests, httpx, यहां तक कि curl) से कॉल करें; किसी Python-विशिष्ट डिपेंडेंसी की ज़रूरत नहीं।

Q03

क्या मुझे सिर्फ़ पूरा टेक्स्ट नहीं, बल्कि हर लाइन के लिए टाइमस्टैम्प मिल सकते हैं?

ओपन-सोर्स लाइब्रेरी सीधे हर स्निपेट का स्टार्ट/ड्यूरेशन लौटाती है। हमारी होस्टेड API का ट्रांसक्रिप्ट एंडपॉइंट फ़िलहाल पूरा ट्रांसक्रिप्ट फ्लैट टेक्स्ट और शब्द संख्या के रूप में लौटाता है, प्रति-सेगमेंट टाइमस्टैम्प नहीं - अगर आपके इस्तेमाल के लिए खासतौर पर API से यह चाहिए, तो ओपन-सोर्स लाइब्रेरी आज बेहतर विकल्प है।

Q04

अगर किसी वीडियो में ट्रांसक्रिप्ट न हो तो क्या होता है?

दोनों तरीके खाली स्ट्रिंग के बजाय एक स्पष्ट एरर लौटाते हैं - हर एरर कोड का मतलब जानने के लिए डायग्नोस्टिक चेकलिस्ट देखें।

संबंधित