सामग्री पर जाएँ
yt-dlp

YouTube सबटाइटल डाउनलोडर — yt-dlp कमांड जेनरेटर

ऐसा yt-dlp कमांड बनाएँ जो वीडियो डाउनलोड किए बिना सबटाइटल को .srt के रूप में सहेजे।

ज़रूरी नहीं। खाली छोड़ दें तो कमांड URL पर खत्म होगा जिसे आप खुद भर सकते हैं।

आपका कमांड

yt-dlp --write-subs --convert-subs srt --sub-langs en --write-auto-subs --no-playlist -s 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
बुनियादी

केवल ऑडियो चुनने पर आवाज़ निकाल ली जाती है और वीडियो छोड़ दिया जाता है।

वीडियो और क्वालिटी

ऊँचाई की सीमा तय करता है। yt-dlp उस सीमा या उससे नीचे की सबसे अच्छी स्ट्रीम चुनता है।

वह फ़ाइल प्रकार जिसमें अलग-अलग वीडियो और ऑडियो स्ट्रीम जोड़ी जाती हैं।

उन्नत विकल्प (3)

क्वालिटी चयन की जगह ले लेता है। उनके लिए जो format सिंटैक्स पहले से जानते हैं।

स्ट्रीम को दोबारा एन्कोड किए बिना फिर से पैक करता है। तेज़ और क्वालिटी घटाए बिना।

वीडियो दोबारा एन्कोड करता है। धीमा और क्वालिटी घटाता है — केवल तब जब remux काम न करे।

ऑडियो

वह फ़ाइल जिसमें ऑडियो बदला जाता है।

VBR आकार और क्वालिटी का सबसे अच्छा संतुलन देता है; तय bitrate का अंदाज़ा लगाना आसान होता है।

सबटाइटल

Embed करने पर वे वीडियो के अंदर चले जाते हैं; सहेजने पर उसके साथ अलग .srt फ़ाइल बनती है।

कॉमा से अलग करें। सभी उपलब्ध भाषाओं के लिए all लिखें।

प्लेलिस्ट और चैनल

जब URL एक वीडियो और एक प्लेलिस्ट दोनों का हो तो क्या करें।

रेंज और सूची दोनों चलती हैं, जैसे 1-10,15 या अंत से हर दूसरे आइटम के लिए -5::2।

उन्नत विकल्प (1)

क्या-क्या डाउनलोड हो चुका है यह दर्ज करती है, जिससे दोबारा चलाने पर वे छूट जाते हैं। किसी चैनल को सिंक रखने का यही तरीका है।

हिस्से और चैप्टर
उन्नत विकल्प (2)

*00:01:30-00:03:00 जैसा समय रेंज, या चैप्टर का नाम। शुरू का तारा बताता है कि यह समय है।

मेटाडेटा और कवर
उन्नत विकल्प (3)
SponsorBlock

SponsorBlock डेटा की मदद से समुदाय द्वारा चिह्नित हिस्सों को फ़ाइल से काट देता है।

उन्नत विकल्प (1)

हिस्से बने रहते हैं पर चिह्नित हो जाते हैं, ताकि आप खुद उन्हें छोड़ सकें।

फ़ाइलें और फ़ोल्डर

फ़ील्ड के नाम %(...)s में आते हैं। स्लैश से फ़ोल्डर बनते हैं।

उन्नत विकल्प (4)

फ़ाइलें कहाँ लिखी जाएँ। सबफ़ोल्डर के लिए ऊपर के टेम्पलेट के साथ मिलाएँ।

फ़ाइल नाम की अधिकतम लंबाई, अक्षरों में।

फ़िल्टर
उन्नत विकल्प (5)

YYYYMMDD, या now-1month जैसी सापेक्ष तारीख।

YYYYMMDD, या सापेक्ष तारीख।

इससे छोटी फ़ाइलें छोड़ देता है। 5M, 500K जैसे मान चलते हैं।

इससे बड़ी फ़ाइलें छोड़ देता है।

रुकने से पहले कितनी फ़ाइलें डाउनलोड करनी हैं।

नेटवर्क

जैसे 2M या 500K। जब बाकी बैंडविड्थ किसी और काम के लिए चाहिए तब उपयोगी।

उन्नत विकल्प (5)

fragment में बँटी स्ट्रीम तेज़ करता है। चार से शुरू करना ठीक रहता है।

नाकाम हिस्से को कितनी बार दोबारा आज़माना है। infinite भी चलता है।

HTTP, HTTPS या SOCKS proxy का URL।

रिक्वेस्ट को असली ब्राउज़र जैसी बनाता है। अचानक आने वाली 403 गड़बड़ी का यही आम हल है।

लॉगिन और cookies

आपका लॉगिन सत्र सीधे पढ़ता है। निजी, आयु-प्रतिबंधित या केवल सदस्यों वाली सामग्री के लिए ज़रूरी।

उन्नत विकल्प (1)

आपके ब्राउज़र से निकाली गई Netscape फ़ॉर्मैट की cookies.txt फ़ाइल।

लाइव स्ट्रीम
उन्नत विकल्प (2)

तय समय पर होने वाली स्ट्रीम शुरू होने तक जाँचता रहता है। MIN-MAX सेकंड के अंतराल पर।

समस्या समाधान
उन्नत विकल्प (3)

पुराना पड़ चुका है, इसकी जगह --add-headers है। रखा गया है क्योंकि बहुत सारे पुराने गाइड अभी इसी का उपयोग करते हैं।

पुराना पड़ चुका है, इसकी जगह --add-headers है।

हर साइट के अपने विकल्प, जैसे youtube:player_client=web।

आउटपुट और डीबग
उन्नत विकल्प (2)
रीसेट

वीडियो के बिना सबटाइटल

नकली चलाने वाला मोड वीडियो फ़ाइल लिखने के अलावा सब कुछ करता है, इसलिए सबटाइटल मिल जाते हैं और डाउनलोड बच जाता है। SRT में बदलने के लिए ffmpeg चाहिए।

कुछ न मिले तो सबसे संभव यह है कि वीडियो में इंसान के लिखे सबटाइटल ही नहीं हैं — स्वतः बने सबटाइटल एक अलग विकल्प है, और उसे चालू न करने पर yt-dlp को कुछ नहीं मिलता और वह कुछ कहता भी नहीं।

सिम्युलेट मोड इस पेज का मुख्य सहारा है: उसके बिना yt-dlp पूरा वीडियो डाउनलोड करता है और सबटाइटल सिर्फ़ साथ में भी सहेज लेता है, जो फ़िल्म-लंबाई की फ़ाइल पर टेक्स्ट ट्रैक के लिए बहुत बड़ा ट्रांसफ़र है. उसके साथ, चलाना मेटाडेटा लाता है, सबटाइटल फ़ाइलें लिखता है, और वीडियो को कभी छूता नहीं. कीमत यह है कि सिम्युलेट मोड थंबनेल और विवरण लिखना भी छोड़ देता है जिसकी आपको आदत हो सकती है — वे वीडियो-चलाने की वस्तुएँ हैं, सबटाइटल-चलाने की नहीं.

भाषा चुनना वहीं है जहाँ सबटाइटल डाउनलोड नाज़ुक हो जाते हैं. --sub-langs en ठीक उसी ट्रैक को लेता है जिसे "en" टैग किया गया; en-orig YouTube का नाम उस स्वतः बने वाले के लिए है, और en.* पैटर्न दोनों और क्षेत्रीय रूपों को पकड़ता है. कई भाषाएँ कॉमा-अलग की सूची लेती हैं. अगर वीडियो में उसी भाषा के इंसानी और स्वतः दोनों ट्रैक हों तो वे दो अलग प्रविष्टियाँ हैं, और दोनों डाउनलोड करना वैध नतीजा है, बग नहीं.

फ़ॉर्मैट तब मायने रखते हैं जब सबटाइटल फ़ाइल एडिटर में जानी हो: SRT सुरक्षित आदान-प्रदान है, VTT वह स्टाइलिंग ले जाता है जो वेब प्लेयर दिखाता है, और YouTube के अपने JSON3/_SRV फ़ॉर्मैट मशीनों के लिए बने हैं. convert-to-srt स्विच आम मामला सँभालता है, ffmpeg चाहता है, और स्टाइलिंग जानबूझकर खोता है — एडिटर टेक्स्ट चाहते हैं, मार्कअप नहीं. आउटपुट ख़ाली लगे तो यह मानने से पहले कि कन्वर्ज़न नाकाम हुआ फ़ाइल का होना जाँचें: शून्य-बाइट SRT का मतलब है कि ट्रैक ही ख़ाली था.

स्वतः बने कैप्शन चेतावनी के हक़दार हैं: वे मशीनी ट्रांसक्रिप्शन हैं, जिसके सारे अर्थों के साथ — ग़लत होमोफ़ोन, बिना विराम-चिह्न, बिगड़े नाम. जिस भाषा में आप पढ़ सकते हैं उसके वीडियो के लिए वे सर्च इंडेक्स हैं; जिस चीज़ से आप उद्धरण देंगे उसके लिए इंसानी ट्रैक (जब हो) ही रखने लायक है. लाइव स्ट्रीम को लाइव ऑटो-कैप्शन मिलते हैं जो स्ट्रीम ख़त्म होने के बाद ही सहेजे जाते हैं — इस साइट के लाइव-रिकॉर्डिंग विकल्प तस्वीर के लिए हैं, और ख़त्म हुई स्ट्रीम के कैप्शन सामान्य सबटाइटल विकल्पों से डाउनलोड होते हैं.

अक्सर पूछे जाने वाले प्रश्न

वीडियो के बिना सबटाइटल कैसे डाउनलोड करूँ?
.srt विकल्प चुनें और नकली चलाना चालू करें, जो वीडियो फ़ाइल लिखना छोड़ देता है पर सबटाइटल सहेज लेता है।
कोई सबटाइटल फ़ाइल क्यों नहीं आई?
वीडियो में शायद इंसान के लिखे सबटाइटल नहीं हैं। मशीन के बनाए सबटाइटल पाने के लिए स्वतः बने सबटाइटल चालू करें।
सबटाइटल की भाषाएँ कैसे चुनूँ?
कॉमा से अलग करें, जैसे en,hi। सभी उपलब्ध के लिए all, या अंग्रेज़ी के सभी रूपों के लिए en.* जैसा पैटर्न।
VTT की जगह SRT ले सकता हूँ?
हाँ — .srt विकल्प उन्हें बदल देता है, और इसके लिए ffmpeg चाहिए।