YouTube API Quota Exceeded: Causes and Fixes

Why YouTube Data API requests fail with quotaExceeded, what the daily 10,000-unit quota actually costs per call, how to check and raise it, and how to avoid hitting it - including using a transcript API that doesn't consume your quota.

00:09:00 · SEP 13, 2026

त्वरित उत्तर

आप quotaExceeded देख रहे हैं क्योंकि आपके Google Cloud प्रोजेक्ट ने YouTube Data API v3 के लिए अपनी पूरी 10,000-यूनिट डेली सीमा इस्तेमाल कर ली है, जो पैसिफिक समय के अनुसार आधी रात को रीसेट होती है। सबसे तेज़ फिक्स: जहां एक डायरेक्ट ID लुकअप काम करता है वहां search.list (100 यूनिट्स) इस्तेमाल करना बंद करें, बार-बार फिर से फेच करने के बजाय रिजल्ट कैश करें, या एक ऐसे ट्रांसक्रिप्ट API पर स्विच करें जो आपके अपने YouTube कोटा से बिल्कुल भी न चले।

ऐसा क्यों होता है

हर Google Cloud प्रोजेक्ट को YouTube Data API v3 का डिफ़ॉल्ट कोटा 10,000 यूनिट्स प्रति दिन मिलता है, जो पैसिफिक समय के अनुसार आधी रात को रीसेट होता है - इसमें कोई रोलओवर नहीं है और जल्दी रीसेट ट्रिगर करने का कोई तरीका नहीं है। कोटा प्रति प्रोजेक्ट ट्रैक होता है, प्रति API key नहीं, इसलिए एक ही प्रोजेक्ट से दूसरी key बनाने से आपको दूसरा पूल नहीं मिलता।

हर API कॉल की कीमत रिक्वेस्ट में नहीं, यूनिट्स में होती है - और यह कीमतें असमान हैं। यहां डेवलपर्स द्वारा असल में इस्तेमाल किए जाने वाले endpoints की पूरी तस्वीर है:

कॉलकोटा कीमत
search.list100 यूनिट्स
videos.list1 यूनिट
channels.list1 यूनिट
playlistItems.list1 यूनिट
commentThreads.list1 यूनिट प्रति पेज
captions.list50 यूनिट्स
captions.download200 यूनिट्स, OAuth जरूरी (API-key auth नहीं)

प्रति सर्च 100 यूनिट्स की दर से, एक प्रोजेक्ट सिर्फ 100 सर्च कॉल के बाद अपना पूरा डेली कोटा खत्म कर सकता है - एक भी कैप्शन डाउनलोड होने से पहले। छोटे प्रोजेक्ट्स के लिमिट टकराने का यह सबसे आम तरीका है: उन्होंने 10,000 रिक्वेस्ट नहीं कीं, उन्होंने कुछ सौ महंगी रिक्वेस्ट कीं। इसके उलट, videos.list, channels.list, और playlistItems.list प्रत्येक 1 यूनिट पर सस्ते हैं - अगर आप पहले से किसी वीडियो, चैनल, या प्लेलिस्ट ID को जानते हैं, तो ये कॉल डेली बजट में मुश्किल से सेंध लगाते हैं।

अपना मौजूदा कोटा उपयोग कैसे जांचें

  1. अपनी API key से जुड़े प्रोजेक्ट के लिए Google Cloud Console खोलें।
  2. APIs & Services → YouTube Data API v3 → Quotas & System Limits पर जाएं।
  3. यह Queries per day और प्रति-मिनट सीमाओं के मुकाबले आपका मौजूदा उपयोग दिखाता है, जो रीयल-टाइम के बजाय थोड़ी देरी से अपडेट होता है।

अगर आप 10,000 रिक्वेस्ट पूरी करने से पहले ही सीमा के करीब हैं, तो यह व्यू यह कन्फर्म करने का तरीका है कि यह ऊपर बताई गई महंगी-कॉल वाली समस्या है, कोई बग नहीं।

quotaExceeded बनाम rateLimitExceeded

दोनों 403 लौटाते हैं, और आम बातचीत में दोनों को "quota errors" कहकर एक साथ जोड़ दिया जाता है, लेकिन ये अलग-अलग समस्याएं हैं जिनके अलग-अलग समाधान हैं:

  • quotaExceeded (reason: dailyLimitExceeded) - आपके प्रोजेक्ट ने अपनी पूरी डेली यूनिट सीमा इस्तेमाल कर ली। पैसिफिक समय के अनुसार आधी रात के रीसेट का इंतजार करने, प्रति-कॉल कीमत घटाने, या एक कोटा बढ़ोतरी अप्रूव कराने के अलावा कुछ भी इसे ठीक नहीं करता।
  • rateLimitExceeded - आप अपने डेली टोटल से अलग, एक छोटी विंडो में बहुत तेज़ी से रिक्वेस्ट भेज रहे हैं। यह गति की समस्या है, बजट की नहीं - सही तरीके से backoff के साथ इसे संभालने के लिए हमारी rate limit guide देखें।

इसे ठीक करने के पांच तरीके

  1. आक्रामक रूप से कैश करें। कोटा प्रति API कॉल चार्ज होता है, प्रति यूज़र-फेसिंग रिक्वेस्ट नहीं - अगर आप बार-बार एक ही वीडियो के कैप्शन दोबारा फेच करते हैं, तो उस डेटा के लिए जो मिनट-दर-मिनट नहीं बदलता, फिर से API कॉल करने के बजाय रिजल्ट कैश करें (एक सिंपल इन-मेमोरी TTL कैश भी काफी है)।
  2. जहां एक डायरेक्ट ID लुकअप काम करता है वहां search.list से बचें। अगर आपके पास पहले से एक वीडियो, चैनल, या प्लेलिस्ट ID है, तो संबंधित .list कॉल एक सर्च से 100 गुना सस्ता है।
  3. ID लुकअप्स को बैच करें। videos.list एक सिंगल ID जितनी ही 1-यूनिट कीमत पर प्रति कॉल 50 तक कॉमा-सेपरेटेड IDs स्वीकार करता है - 50 वीडियो को एक-एक करके फेच करना, बैच किए बिना, बिना किसी वजह के 50 गुना महंगा है।
  4. कोटा बढ़ोतरी का अनुरोध करें जब आपके पास इसे सही ठहराने के लिए असली प्रोडक्शन उपयोग हो, Cloud Console के quota पेज से लिंक किए गए YouTube API Services Audit and Quota Extension फॉर्म के जरिए। तुरंत अप्रूवल नहीं, मैनुअल रिव्यू की उम्मीद रखें।
  5. एक ऐसा ट्रांसक्रिप्ट API इस्तेमाल करें जो आपके अपने YouTube कोटा से न चले। GetYouTubeTranscript का API आपकी key से captions.download को प्रॉक्सी करने के बजाय, अपने खुद के इंफ्रास्ट्रक्चर पर ट्रांसक्रिप्ट लाता है, इसलिए मैनेज करने के लिए कोई डेली 10,000-यूनिट सीमा नहीं है - सिर्फ प्लान की अपनी रिक्वेस्ट-रेट सीमा।

उदाहरण: YouTube के कोटा को छुए बिना एक ट्रांसक्रिप्ट लाना

cURL:

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

Node.js:

const res = await fetch(
  "https://getyoutubetranscript.com/api/v1/transcript?v=dQw4w9WgXcQ",
  { headers: { Authorization: `Bearer ${process.env.GETYOUTUBETRANSCRIPT_API_KEY}` } }
);
const { data } = await res.json();
console.log(data.transcript);

Python:

import os, requests

res = requests.get(
    "https://getyoutubetranscript.com/api/v1/transcript",
    params={"v": "dQw4w9WgXcQ"},
    headers={"Authorization": f"Bearer {os.environ['GETYOUTUBETRANSCRIPT_API_KEY']}"},
)
print(res.json()["data"]["transcript"])

इसकी कीमत आपके GetYouTubeTranscript प्लान पर 1 क्रेडिट है, आपके Google Cloud प्रोजेक्ट के YouTube Data API कोटा पर यूनिट्स नहीं। dashboard से 100 फ्री क्रेडिट्स पाएं, कार्ड की जरूरत नहीं, या पूरे API docs देखें।

वर्कअराउंड्स पर एक नोट

कोटा से बचने के लिए IP घुमाना, कई Google Cloud प्रोजेक्ट बनाना, या सीधे YouTube पेज स्क्रैप करना - इन सबमें असली जोखिम है - पहले दो YouTube API Services Terms of Service के उल्लंघन का जोखिम रखते हैं, और अनऑफिशियल स्क्रैपिंग लेआउट बदलावों के आगे नाजुक है। एक समर्पित ट्रांसक्रिप्ट API यह ऑपरेशनल जोखिम खुद उठाने के बजाय आपकी ओर से वहन करता है।

YouTube API कोटा FAQs

Q01

"The request cannot be completed because you have exceeded your quota" का क्या मतलब है?

इसका मतलब है कि आपके Google Cloud प्रोजेक्ट ने आज के दिन के लिए अपने आवंटित YouTube Data API v3 कोटा यूनिट्स पूरी तरह इस्तेमाल कर ली हैं। Google कोटा को पैसिफिक समय के अनुसार आधी रात को रीसेट करता है, और डिफ़ॉल्ट फ्री अलोकेशन 10,000 यूनिट्स/दिन है, जो प्रति प्रोजेक्ट (प्रति API key नहीं) ट्रैक होती है।

Q02

ट्रांसक्रिप्ट फेच करने में असल में कितना कोटा लगता है?

YouTube Data API में सीधे कोई "get transcript" endpoint नहीं है - सिर्फ उपलब्ध कैप्शन ट्रैक लिस्ट करने के लिए captions.list कॉल की कीमत 50 यूनिट्स है, और captions.download के लिए OAuth जरूरी है (सिर्फ API key नहीं) और इसकी कीमत 200 यूनिट्स है। पहले वीडियो खोजने के लिए अक्सर इस्तेमाल होने वाली एक search.list कॉल की कीमत खुद 100 यूनिट्स है - इसलिए कुछ सर्च प्लस कैप्शन लुकअप जल्दी 10,000-यूनिट डेली बजट खत्म कर सकते हैं।

Q03

quotaExceeded और rateLimitExceeded में क्या अंतर है?

quotaExceeded (एरर बॉडी में reason dailyLimitExceeded के रूप में दिखता है) का मतलब है कि आपने अपनी पूरी डेली यूनिट सीमा इस्तेमाल कर ली है और पैसिफिक समय के अनुसार आधी रात के रीसेट का इंतजार करना होगा। rateLimitExceeded का मतलब है कि आप अपने डेली टोटल से अलग, एक छोटी विंडो में बहुत तेज़ी से रिक्वेस्ट भेज रहे हैं - विस्तार से अंतर के लिए हमारी rate limit guide देखें।

Q04

क्या मैं ज्यादा कोटा पाने के लिए कई API keys इस्तेमाल कर सकता हूं?

नहीं - कोटा प्रति Google Cloud प्रोजेक्ट ट्रैक होता है, प्रति API key नहीं। एक ही प्रोजेक्ट से बनाई गई कई keys सभी उसी 10,000-यूनिट डेली पूल से लेती हैं। कोटा बढ़ाने के लिए अलग प्रोजेक्ट बनाना तकनीकी रूप से संभव है लेकिन YouTube API Services Terms of Service के उल्लंघन का जोखिम रखता है, जो कोटा सीमाओं को दरकिनार करने पर रोक लगाती हैं।

Q05

क्या मैं बस Google से कोटा बढ़ोतरी का अनुरोध कर सकता हूं?

हां, Cloud Console के quota पेज से लिंक किए गए YouTube API Services Audit and Quota Extension फॉर्म के जरिए, लेकिन अप्रूवल की गारंटी नहीं है और यह तुरंत नहीं होता - इसके लिए असली उपयोग विवरण के साथ प्रोडक्शन उपयोग को सही ठहराना होता है, और Google रिक्वेस्ट को मैनुअली रिव्यू करता है। ज्यादा कोटा के लिए सीधे पैसे देने का कोई सेल्फ-सर्विस तरीका नहीं है।

Q06

क्या फ्री 10,000-यूनिट कोटा का कोई खर्च है?

नहीं - यह हर उस Google Cloud प्रोजेक्ट को दिया जाने वाला डिफ़ॉल्ट फ्री अलोकेशन है जो YouTube Data API v3 को इनेबल करता है। इसे इस्तेमाल करने के लिए आपको बिलिंग अकाउंट जोड़ने की जरूरत नहीं, हालांकि बढ़ोतरी का अनुरोध करते समय Google आपको बिलिंग इनेबल करने के लिए कह सकता है।

Q07

क्या GetYouTubeTranscript का API मेरे अपने YouTube API कोटा का उपयोग करता है?

नहीं। यह आपकी key से YouTube के Data API को प्रॉक्सी नहीं करता - ट्रांसक्रिप्ट एक्सट्रैक्शन हमारे अपने इंफ्रास्ट्रक्चर पर चलता है, इसलिए आपकी ओर से मैनेज करने के लिए कोई captions.list/download कोटा नहीं है। आप केवल हमारी अपनी प्रकाशित रेट लिमिट्स से बंधे हैं (फ्री पर 60 req/min, वार्षिक प्लान पर 300 req/min तक)।

संबंधित