~/social/youtube-transcript-scraper

YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM

videos, Shorts, playlists, और channels से YouTube subtitles और transcripts को JSON, SRT, VTT, plain text, या साफ़ LLM-तैयार टेक्स्ट के रूप में एक्सट्रैक्ट करें। 100+ भाषाएं, समृद्ध मेटाडेटा, कोई API key नहीं — और फ़ेल हुए एक्सट्रैक्शन मुफ़्त हैं।

मीडिया TypeScriptInnerTube वैश्विक
proooxy/youtube-transcript-scraper — स्पेक
कैटेगरीsocial / मीडिया
भाषाTypeScript
स्टैकTypeScript, InnerTube
मार्केट्सवैश्विक
आउटपुटसाफ, RAG-तैयार JSON

मुख्य विशेषताएं

एक ही इनपुट videos, Shorts, youtu.be links, playlists, और channels हैंडल करता है — एक ही रन में मिक्स्ड

पांच आउटपुट फ़ॉर्मेट — JSON (timestamped), SRT, VTT, plain text, और LLM-तैयार ([Music], [Applause], और speaker labels हटाता है)

priority-ordered भाषा लिस्ट और toggleable auto-caption फ़ॉलबैक के साथ 100+ भाषाएं

समृद्ध मेटाडेटा — title, channel, description, publish date, view count, thumbnail, duration, और उपलब्ध भाषाएं

maxVideos cap और 1–10 कॉन्करेंसी के साथ पूरी playlists और channels को batch करें

bot-check blocks कम करने के लिए रेजिडेंशियल प्रॉक्सी सपोर्ट के साथ वैकल्पिक cookies

मल्टी-लेयर एक्सट्रैक्शन — InnerTube क्लाइंट्स में 9 तक फ़ॉलबैक, आखिरी उपाय के तौर पर yt-dlp PO-token के साथ

सर्किट ब्रेकर और per-item एरर हैंडलिंग बड़े batches को चलते रहने देते हैं

यूज़ केस

  • बोले गए वीडियो से RAG या fine-tuning dataset बनाने वाली AI/ML टीमें (LLM-तैयार टेक्स्ट आउटपुट)
  • transcripts को ब्लॉग पोस्ट, show notes, और सोशल captions में repurpose करने वाली कंटेंट टीमें
  • indexing और keyword रिसर्च के लिए सर्च होने लायक वीडियो टेक्स्ट एक्सट्रैक्ट करने वाले SEO मार्केटर
  • स्टैंडर्ड SRT/VTT subtitle फ़ाइलें चाहने वाले editors और publishers
  • पूरे channel या playlist में transcripts batch-collect करने वाले researchers
  • बिना YouTube API key के संरचित, timestamped captions चाहने वाले डेवलपर

इनपुट पैरामीटर

पैरामीटरटाइपआवश्यकविवरण
urlsarrayवैकल्पिकYouTube URL या bare ID — videos, Shorts, youtu.be links, playlists, या channels। runtime पर ज़रूरी।
outputFormatstringवैकल्पिकTranscript फ़ॉर्मेट: json, srt, vtt, text, या llm (डिफ़ॉल्ट: json)।
languagesarrayवैकल्पिकप्राथमिकता क्रम में पसंदीदा subtitle भाषाएं, ISO 639-1 codes (डिफ़ॉल्ट: en)।
includeAutoGeneratedbooleanवैकल्पिकमैनुअल captions न होने पर auto-generated captions पर फ़ॉलबैक करें (डिफ़ॉल्ट: true)।
maxVideosnumberवैकल्पिकप्रति रन प्रोसेस किए गए videos पर cap, जैसे playlists/channels के लिए (डिफ़ॉल्ट: 0 = अनलिमिटेड)।
maxConcurrencynumberवैकल्पिकपैरेलल में प्रोसेस किए गए videos, 1–10 (डिफ़ॉल्ट: 3)।
proxyConfigurationobjectवैकल्पिकप्रॉक्सी सेटिंग्स; डिफ़ॉल्ट रूप से US पर पिन किया गया Apify Residential।
youtubeCookiesstringवैकल्पिकbot-check blocks कम करने के लिए वैकल्पिक YouTube cookies (Cookie header या cookies.txt)।

आउटपुट का उदाहरण

 1{
 2  "videoId": "dQw4w9WgXcQ",
 3  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
 4  "title": "Rick Astley - Never Gonna Give You Up (Official Video)",
 5  "channelName": "Rick Astley",
 6  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
 7  "publishDate": "2009-10-25",
 8  "viewCount": 1761003712,
 9  "availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"],
10  "language": "en",
11  "isAutoGenerated": false,
12  "duration": 213,
13  "wordCount": 487,
14  "segmentCount": 61,
15  "text": "We're no strangers to love, you know the rules and so do I...",
16  "segments": [{ "text": "We're no strangers to love", "start": 18.64, "end": 21.88 }],
17  "error": null
18}

प्राइसिंग

Pay-per-event: हर सफलतापूर्वक एक्सट्रैक्ट हुए transcript पर एक बार बिल — फ़ेल हुए videos के लिए कभी चार्ज नहीं लिया जाता। पूरा channel या playlist फ़ीड करें और सिर्फ़ उन captions के लिए पे करें जो आपको असल में वापस मिलते हैं।

टिप्स

  • RAG और fine-tuning के लिए outputFormat: llm इस्तेमाल करें — यह non-speech annotations हटा देता है ताकि आपके embeddings को साफ़ prose मिले।
  • रेजिडेंशियल प्रॉक्सी ऑन रखें। YouTube डेटासेंटर IPs को आक्रामक तरीके से ब्लॉक करता है; एक्टर एक वजह से डिफ़ॉल्ट रूप से US रेजिडेंशियल इस्तेमाल करता है।
  • बड़े jobs के लिए maxConcurrency को 1–3 पर शुरू करें और इसे धीरे-धीरे बढ़ाएं — ज़्यादा कॉन्करेंसी बड़े channel स्क्रैप पर rate-limit रिस्क बढ़ा देती है।

सामान्य प्रश्न

क्या मुझे YouTube API key चाहिए या login करना होगा?
नहीं। एक्टर सीधे captions एक्सट्रैक्ट करता है — कोई YouTube Data API key नहीं और कोई login नहीं। कुछ videos पर 'Sign in to confirm you're not a bot' ब्लॉक कम करने के लिए एक वैकल्पिक cookies इनपुट दिया जा सकता है।
कौन-कौन सी भाषाएं और caption टाइप सपोर्टेड हैं?
100 से ज़्यादा भाषाएं। ISO 639-1 codes की प्राथमिकता-क्रम वाली लिस्ट दें (डिफ़ॉल्ट: en); एक्टर मैनुअली बनाए गए captions को प्राथमिकता देता है और includeAutoGenerated बंद न करने पर auto-generated वाले पर फ़ॉलबैक करता है।
क्या एक्सट्रैक्ट न हो पाने वाले videos के लिए मुझसे चार्ज लिया जाता है?
नहीं। Billing एक सिंगल transcript-extracted इवेंट पर pay-per-event है, जो सिर्फ़ transcript सफलतापूर्वक सेव होने के बाद चार्ज होता है। फ़ेल हुए videos आउटपुट में एक error फ़ील्ड के साथ दिखते हैं और उनके लिए चार्ज नहीं लिया जाता।
क्या मुझे RAG के लिए साफ़, LLM-तैयार टेक्स्ट मिल सकता है?
हां। [Music]/[Applause] annotations और speaker labels हटाने के लिए outputFormat को 'llm' सेट करें, जिससे embeddings और fine-tuning के लिए आदर्श साफ़ prose मिलता है।

~/social में संबंधित

YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM रन करें, या कस्टम बिल्ड पाएं

मिनटों में Apify पर एक्सट्रैक्शन शुरू करें, या अपने सोर्स और स्कीमा के लिए कस्टम स्क्रैपर और RAG पाइपलाइन बनवाने के लिए मुझे हायर करें।

Apify पर रन करें कस्टम डेटा पाएं