सामग्री पर जाएँ

yt-dlp “HTTP Error 404: Not Found” — इसका मतलब और हर कारण का समाधान

लेखक Tunelio टीमप्रकाशित

yt-dlp से 404 का मतलब है कि जो चीज़ माँगी गई वह अब उस पते पर नहीं है। आमतौर पर यह वीडियो ही है: हटाया गया, private किया गया, या ID में typo। कभी-कभी यह media fragment है जिसका signed URL expire हो गया, playlist का हटाया गया entry, या पुराना yt-dlp जो YouTube के हटाए गए endpoint को माँग रहा है। URL browser में जाँचें, yt-dlp अपडेट करें, -v output पढ़ें — नीचे का section बताता है कि आपका मामला कौन-सा है।

पहले दो commands

yt-dlp -U                       # पुराना build उन endpoint पर 404 देता है जिन्हें YouTube ने हटा दिया
yt-dlp -vU --rm-cache-dir "URL"  # verbose: 404 कहाँ हुआ — info page, API call या media fragment?

फिर वही URL browser में खोलें। browser भी “Video unavailable” दिखाए तो कोई yt-dlp option मदद नहीं करेगा; browser चला दे तो कारण नीचे के तकनीकी कारणों में से है।

कारण 1: वीडियो हट गया, private है या ID ग़लत है

सबसे आम 404। uploader वीडियो हटा देते हैं, policy कारणों से हटते हैं, या private/प्रतिबंधित unlisted हो जाते हैं। video ID ठीक 11 अक्षर की है (अक्षर, अंक, - और _); एक अतिरिक्त अक्षर, गायब अक्षर या ID के अंदर tracking कचरे वाला copy किया URL साफ़ 404 देता है। yt-dlp इन्हें आमतौर पर कच्चे 404 की जगह “Video unavailable”, “This video has been removed” या “Private video” कहता है, पर कुछ paths HTTP status सीधे दिखाते हैं।

# URL ख़ुद normalise करें: watch?v=ID, youtu.be/ID, shorts/ID सब चलते हैं
yt-dlp "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

आपके account से साझा private वीडियो को उसी account की cookies चाहिए (cookies गाइड देखें); age-restricted वीडियो अलग error देते हैं और cookies या दूसरा client माँगते हैं।

कारण 2: media URL expire हो गया (download के बीच या fragment पर 404)

yt-dlp को मिलने वाले googlevideo URL signed होते हैं और लगभग छह घंटे valid रहते हैं। download pause करके बहुत बाद में resume किया जाए, या script ने URL निकालकर घंटों बाद इस्तेमाल किया हो, तो media server 404 (या 403) देता है। fragmented format इसे “fragment N not found” की तरह दिखाते हैं। extraction दोबारा चलाएँ — yt-dlp -c ताज़ा URL से file resume करता है।

yt-dlp -c --fragment-retries 10 --retries 5 "URL"

कारण 3: playlist या channel में हटाए गए item हैं

yt-dlp --ignore-errors --download-archive done.txt "PLAYLIST_URL"

playlist उन वीडियो के reference रखती हैं जो अब नहीं हैं। --ignore-errors (-i) के बिना yt-dlp पहले मृत entry पर पूरा run रोक देता है; इसके साथ entry skip होकर log होती है। --download-archive दोबारा चलाने को incremental बनाता है ताकि हर बार उन्हीं मृत item से न टकराएँ।

कारण 4: पुराना yt-dlp हटाए गए endpoint पर

YouTube internal API path और player asset की जगहें बदलता है। महीनों पुराना yt-dlp ऐसी player JS file या API route माँग सकता है जो अब नहीं है, और मिले 404 को extraction failure बताता है। यह सिर्फ़ अपडेट से ठीक होता है (update गाइड देखें) — और जाँचें कि PATH वाली copy वही है जिसे अपडेट किया।

कारण 5: region और account प्रतिबंध जो 404 जैसे दिखते हैं

कुछ region-blocked या members-only वीडियो “not available” page देते हैं जिन्हें कुछ code path 404 बताते हैं। region block के लिए दूसरे network या proxy से आज़माएँ (proxy गाइड); members-only content को subscribed account की cookies चाहिए।

लक्षण → कारण

  • browser भी unavailable कहता है → हटाया/private/ग़लत ID (कारण 1)। आपकी तरफ़ ठीक करने को कुछ नहीं।
  • browser चलाता है; -v में player/API URL पर 404 → पुराना yt-dlp (कारण 4)।
  • download शुरू होता है, फिर fragment पर या resume के बाद 404 → expire हुआ signed URL (कारण 2); -c से दोबारा extract करें।
  • सिर्फ़ कुछ playlist item fail → हटाए गए entries (कारण 3); --ignore-errors जोड़ें।
  • सिर्फ़ सर्वर से fail, घर पर चलता है → region/IP (कारण 5) — या असल में 403 है; 403 गाइड देखें।

script या bot में

404 को उस वीडियो के लिए स्थायी failure मानें (loop में retry न करें — हटाए गए वीडियो पर retry कुछ नहीं करता और IP reputation जलाता है), video ID और सटीक संदेश log करें, आगे बढ़ें। अगर आप URL पहले से resolve करते हैं, तो signed link cache करने की जगह download से पहले हमेशा दोबारा resolve करें।

hosted API यह वर्गीकरण आपके लिए करता है: Tunelio (हमारी अपनी सेवा) private या हटाए गए वीडियो के लिए साफ़ संदेश वाला 404 देता है और request refund करता है, तो आपका bot yt-dlp output parse किए बिना user को जवाब दे सकता है। नए account को 100 free credits।

स्रोत

  • yt-dlp README — Download options (-c, --fragment-retries, --retries), --ignore-errors, --download-archive।
  • yt-dlp wiki — “Video unavailable” और पुराने version पर FAQ।
  • yt-dlp issue tracker — expire हुए fragment URL और हटाए गए player asset से जुड़ी 404 रिपोर्टें।

सामान्य सवाल

क्या 404 का मतलब मेरा IP block है?

नहीं — block 403 या bot-check संदेश की तरह दिखते हैं। 404 का मतलब उस URL पर resource नहीं है: आमतौर पर हटाया/private वीडियो, expire हुआ media link, या हटाए गए endpoint को माँगता पुराना yt-dlp।

yt-dlp से private वीडियो कैसे download करूँ?

सिर्फ़ तब जब आपका account उसे देख सकता हो: उस account की cookies दें (private window से export की --cookies cookies.txt)। वरना यह 404/unavailable ही रहेगा।

playlist 404 पर क्यों रुक जाती है?

default में yt-dlp पहली error पर रुक जाता है। मृत entries skip करने के लिए --ignore-errors और incremental rerun के लिए --download-archive जोड़ें।

वीडियो कल चला और आज 404 — क्या बदला?

या तो uploader ने हटाया/private किया, या आपने expire हुआ (~6 घंटे) signed media URL दोबारा इस्तेमाल किया। extraction दोबारा चलाएँ; browser भी fail हो तो वीडियो चला गया।

संबंधित गाइड