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

yt-dlp चीटशीट

याद रखने लायक yt-dlp कमांड: क्वालिटी चुनना, MP3 निकालना, प्लेलिस्ट, सबटाइटल, cookies और उन गड़बड़ियों का हल जो असल में सामने आती हैं।

yt-dlp 2026.07.21 के अनुसार लिखा गया। संस्करणों के बीच विकल्प जुड़ते और उनके नाम बदलते हैं, इसलिए अपना संस्करण yt-dlp --version से जाँचें।

बुनियादी डाउनलोड

बिना किसी विकल्प के yt-dlp वही सबसे अच्छा संयोजन चुनता है जिसे वह जोड़ सकता है और शीर्षक के नाम पर फ़ाइल रख देता है। हैरानी की बात है कि कितनी बार यही सही कमांड होती है।

yt-dlp URL

कुछ बड़ा डाउनलोड करने से पहले यह देख लेना फ़ायदेमंद है कि असल में क्या उपलब्ध है। यह फ़ॉर्मैट की तालिका छापता है और बिना कुछ डाउनलोड किए बाहर आ जाता है।

yt-dlp -F URL

उस तालिका का बायाँ स्तंभ फ़ॉर्मैट id है, जिसे आप उसके बाद सीधे माँग सकते हैं। + से जुड़े दो id का मतलब है "दोनों उतारो और जोड़ दो"।

yt-dlp -f 137+140 URL

गुणवत्ता और फ़ॉर्मैट का चुनाव

हार्डकोड किए फ़ॉर्मैट id उसी क्षण टूट जाते हैं जब कोई साइट अपनी एन्कोडिंग सीढ़ी बदलती है। सेलेक्टर अभिव्यक्ति ही टिकाऊ तरीक़ा है: जो गुण चाहिए वे माँगिए और सबसे उपयुक्त ढूँढ़ने का काम yt-dlp पर छोड़ दीजिए।

yt-dlp -f "bv*[height<=1080]+ba/b[height<=1080]" URL

इसे यूँ पढ़िए: 1080 से ऊँचा न होने वाला सबसे अच्छा वीडियो स्ट्रीम और साथ में सबसे अच्छा ऑडियो, और अगर वह जोड़ी मौजूद न हो तो 1080 से ऊँची न होने वाली सबसे अच्छी अकेली फ़ाइल। स्लैश के बाद का यही विकल्प उन साइटों पर कमांड को नाकाम होने से बचाता है जो केवल प्रोग्रेसिव स्ट्रीम देती हैं।

दो स्ट्रीम जोड़ने पर yt-dlp को कोई कंटेनर चुनना पड़ता है। MP4 हर जगह चलता है; MKV में जो डालिए वह समा जाता है, और उपशीर्षक तथा अध्याय आते ही यह बात मायने रखने लगती है।

yt-dlp -f "bv*+ba" --merge-output-format mp4 URL

सख़्त सीमा के बजाय पसंद बतानी हो तो छाँटने के बजाय क्रम लगाइए। इससे 1080p और MP4 को वरीयता मिलती है पर दोनों न होने पर भी कुछ न कुछ उतर ही जाता है।

yt-dlp -S "res:1080,ext:mp4" URL

ऑडियो और MP3

ऑडियो निकालने के लिए ffmpeg चाहिए — नई-नई स्थापना पर नीचे वाली कमांड के नाकाम होने की सबसे आम वजह यही है।

yt-dlp -x --audio-format mp3 URL

कवर आर्ट और टैग जोड़ने में दो और flag लगते हैं, और इससे नतीजा बेनाम फ़ाइलों के फ़ोल्डर के बजाय संगीत लाइब्रेरी में काम आने लायक बन जाता है।

yt-dlp -x --audio-format mp3 --audio-quality 0 --embed-thumbnail --embed-metadata URL

--audio-quality 0 का मतलब सबसे अच्छी सेटिंग पर परिवर्तनशील बिटरेट है, "शून्य गुणवत्ता" नहीं। तय बिटरेट चाहिए तो वह लिख दीजिए: --audio-quality 320K

जब स्रोत पहले से AAC या Opus हो, तो MP3 में बदलना दोबारा एन्कोड करना है और बेवजह गुणवत्ता गँवाना है। मूल को वैसा ही रखना तेज़ भी है और बेहतर भी।

yt-dlp -x --audio-format best URL

उपशीर्षक

अंतर्निहित उपशीर्षक फ़ाइल के साथ ही चलते हैं; अलग .srt फ़ाइलें संपादित करने और किसी और चीज़ को देने में आसान रहती हैं।

yt-dlp --embed-subs --sub-langs en URL
yt-dlp --write-subs --sub-langs en,vi --convert-subs srt URL

मशीन से बने कैप्शन एक अलग स्विच हैं। उसके बिना, जिस वीडियो में इंसान के बनाए उपशीर्षक न हों उससे कुछ भी नहीं निकलता, और कोई त्रुटि भी नहीं आती।

yt-dlp --write-auto-subs --sub-langs en --convert-subs srt --skip-download URL

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

YouTube का कोई URL अक्सर एक वीडियो और एक प्लेलिस्ट दोनों का होता है, और yt-dlp को अंदाज़ा लगाना पड़ता है कि आपका मतलब कौन-सा था। साफ़-साफ़ बता दीजिए।

yt-dlp --no-playlist URL
yt-dlp --yes-playlist URL

किसी भी लंबे काम में आर्काइव फ़ाइल यहाँ के बाक़ी सब विकल्पों से ज़्यादा मायने रखती है: वह दर्ज रखती है कि क्या उतर चुका है, इसलिए दोबारा चलाने पर काम वहीं से आगे बढ़ता है जहाँ रुका था, शुरू से नहीं।

yt-dlp --yes-playlist -i \
  --download-archive archive.txt \
  -o "%(playlist_index)02d - %(title)s.%(ext)s" \
  URL

-i के साथ मिलकर, क्षेत्र-बंदी वाला या हटा दिया गया एक वीडियो बाक़ी दो सौ को नहीं रोकता। पूरा नहीं बल्कि एक हिस्सा लेना हो तो -I श्रेणियाँ और सूचियाँ लेता है: -I 1:10, -I "1,3,7-10"

क्लिप, अध्याय और प्रायोजन

आप पूरे वीडियो के बजाय उसका एक हिस्सा उतार सकते हैं। शुरू का तारांकन बताता है कि यह अध्याय का नाम नहीं बल्कि समय-चिह्न है, और उद्धरण चिह्न अनिवार्य हैं — नंगे * को bash आपकी फ़ाइलों के नामों पर फैला देता है।

yt-dlp --download-sections "*00:01:30-00:03:00" URL

SponsorBlock समुदाय के भेजे निशानों से या तो पूरे हिस्से काट देता है, या उन्हें ऐसे अध्यायों के रूप में छोड़ देता है जिन्हें आप ख़ुद छोड़ सकें।

yt-dlp --sponsorblock-remove default URL
yt-dlp --sponsorblock-mark all --embed-chapters URL

लॉगिन, कुकीज़ और बॉट जाँच

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

yt-dlp --cookies-from-browser chrome URL
yt-dlp --cookies-from-browser "firefox:Profile 1" URL

पहले ब्राउज़र बंद कर दीजिए: चलते रहने पर Chrome और Edge कुकी डेटाबेस पर ताला लगाए रखते हैं, और जो त्रुटि संदेश आता है वह यह बात बताता ही नहीं।

जब कोई साइट 403 लौटाने लगे या पूछे कि आप बॉट तो नहीं हैं, तो अनुरोध को असली ब्राउज़र जैसा दिखा देना आम तौर पर काम कर जाता है।

yt-dlp --impersonate chrome URL

फ़ाइल नाम और फ़ोल्डर

आउटपुट टेम्पलेट दोनों को तय करता है। स्लैश एक निर्देशिका बनाता है, इसलिए एक ही टेम्पलेट पूरा संग्रह व्यवस्थित कर सकता है।

yt-dlp -o "%(uploader)s/%(upload_date>%Y-%m-%d)s - %(title)s.%(ext)s" URL

शीर्षकों में अक्सर ऐसे अक्षर होते हैं जिन्हें कुछ फ़ाइल सिस्टम स्वीकार नहीं करते। --restrict-filenames सब कुछ सादे ASCII पर ले आता है, और जो चीज़ मशीनों के बीच घूमने वाली हो उसके लिए यह फ़ायदे का सौदा है।

Windows की .bat फ़ाइल में हर % को दोहराना पड़ता है — %%(title)s — वरना बैच व्याख्याता yt-dlp के देखने से पहले ही टेम्पलेट चट कर जाता है। जब आप .bat उतारते हैं तो जेनरेटर यह काम आपके लिए कर देता है।

वे त्रुटियाँ जो आपको सचमुच मिलेंगी

ffmpeg not found

जो कुछ भी जोड़ता, बदलता, अंतर्निहित करता या काटता है उसे आपके PATH में ffmpeg चाहिए। उसे स्थापित कीजिए, फिर ffmpeg -version से पुष्टि कीजिए।

Sign in to confirm you are not a bot

पहले --impersonate chrome आज़माइए, फिर --cookies-from-browser। दोनों नाकाम हों तो yt-dlp अद्यतन कीजिए — यही जाँच ख़ास तौर पर बार-बार बदलती है और उसका समाधान आम तौर पर कुछ ही दिनों में किसी रिलीज़ के साथ आ जाता है।

Unable to extract player response

लगभग हमेशा पुराना पड़ चुका yt-dlp। कुछ और बदलने से पहले उसे अद्यतन कीजिए: yt-dlp -U, या आपका पैकेज प्रबंधक अगर आपने उसी से स्थापित किया था।

Requested format is not available

आपके सेलेक्टर से कुछ भी मेल नहीं खाया। क्या-क्या मौजूद है यह देखने के लिए -F चलाइए, और सख़्त छानने के बजाय क्रम (-S) को वरीयता दीजिए ताकि कोई न कोई विकल्प हमेशा बचा रहे।

HTTP Error 403

वह URL किसी और सत्र या किसी और क्षेत्र के लिए हस्ताक्षरित था। ताज़ा कुकीज़ के साथ दोबारा चलाइए, --impersonate chrome जोड़िए, या --geo-bypass आज़माइए।

yt-dlp को मौजूदा बनाए रखना

बताई गई गड़बड़ियों में से जितनी अद्यतन करने से ठीक होती हैं उतनी किसी भी flag से नहीं। अगर आपने स्वतंत्र बाइनरी स्थापित की थी:

yt-dlp -U

पैकेज प्रबंधक से स्थापित किया हो तो उसी तरीक़े से अद्यतन कीजिए — -U मना कर देगा, और ठीक ही करेगा।

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

"Sign in to confirm you are not a bot" कैसे ठीक करूँ?
पहले --impersonate chrome आज़माएँ, फिर अपने लॉगिन सत्र के लिए --cookies-from-browser chrome। दोनों न चलें तो yt-dlp अपडेट करें — यह जाँच अक्सर बदलती है और सुधार आमतौर पर कुछ दिनों में आ जाता है।
"Unable to extract player response" का मतलब क्या है?
साइट ने कुछ बदल दिया है और आपका yt-dlp सुधार से पुराना है। कुछ और बदलने से पहले अपडेट करें; यह गड़बड़ी किसी flag से लगभग कभी हल नहीं होती।
यह ffmpeg not found दिखा रहा है।
जोड़ना, बदलना, embed करना और काटना — सबके लिए PATH में ffmpeg चाहिए। इंस्टॉल करें और ffmpeg -version से पुष्टि करें।
yt-dlp कितनी बार अपडेट करना चाहिए?
जब भी कुछ काम करना बंद कर दे, और बाकी हर कुछ हफ़्ते में। साइटें लगातार बदलती हैं और ज़्यादातर टूट-फूट प्रोजेक्ट में जल्दी ठीक हो जाती है।
yt-dlp और youtube-dl में क्या अंतर है?
yt-dlp एक सक्रिय रूप से बनाए रखा जा रहा fork है जिसमें बहुत ज़्यादा extractor और सुविधाएँ हैं — SponsorBlock, हिस्से डाउनलोड करना, ब्राउज़र जैसा दिखना, साथ-साथ fragment। इसने youtube-dl के विकल्प नाम बनाए रखे हैं, इसलिए साधारण कमांड दोनों में चलते हैं।