हिन्दी

वीडियो और उपशीर्षक · डायरेक्ट मीडिया डाउनलोडर

कैसे एक ब्राउज़र फ़ेच और ब्लॉब के साथ सीधे लिंक से फ़ाइल डाउनलोड करता है

· यह काम किस प्रकार करता है

डाउनलोड ब्राउज़र-एपिस कोर

एक दूरस्थ मीडिया फ़ाइल ब्राउज़र ब्लॉब और स्थानीय डाउनलोड में स्ट्रीमिंग होती है
मूल ToolAcre वेक्टर चित्रण

किCCधे लिंक को सहेजी गई फ़ाइल में बदलने के लिए ब्राउज़र टूल द्वारा उपयोग की जाने वाली पाइपलाइन के माध्यम से चलता है: बाइट्स प्राप्त करें, उन्हें ब्लॉब के रूप में रखें, और उन्हें डाउनलोड विशेषता को सौंप दें। बताता है कि किसी भी चरण पर सर्वर की आवश्यकता क्यों नहीं है।

लिंक किसी फ़ाइल को सहेजने के बजाय एक प्लेयर खोलता है - सीधे MP4 या MP3 लिंक पर क्लिक करने से आमतौर पर यह इनलाइन चलता है, जो कि एक डाउनलोडर द्वारा हल की जाने वाली समस्या है

सीधे MP3 लिंक पर क्लिक करने से एक प्लेयर खुल सकता है क्योंकि ब्राउज़र जानता है कि उस MIME प्रकार को कैसे चलाना है। समान बाइट्स को सहेजना एक अलग क्रिया है। मुख्य शब्द प्रत्यक्ष है: वास्तविक फ़ाइल प्रतिक्रिया का लिंक, न कि कोई वेब पेज जिसमें कोई प्लेयर या मेनिफेस्ट लिस्टिंग मीडिया सेगमेंट शामिल है। ToolAcre डाउनलोड की पेशकश करने से पहले यह भेद करता है और यह दिखावा नहीं करता है कि पेज URL एक फ़ाइल URL है।

चरण एक: फ़ेच() होस्ट से बाइट्स मांगता है - घोषित होस्ट के लिए GET अनुरोध कैसा दिखता है और वापस क्या आता है

आपके द्वारा चेक लिंक चुनने के बाद, ब्राउज़र स्थिति, प्रकार और लंबाई का निरीक्षण करने के लिए आपके द्वारा प्रदान किए गए URL को HEAD अनुरोध जारी कर सकता है। फ़ाइल लाने के लिए उस होस्ट के लिए GET अनुरोध का उपयोग किया जाता है, न कि ToolAcre प्रॉक्सी का। अनुरोध जानबूझकर क्रेडेंशियल्स को छोड़ देता है, इसलिए आपके लॉगिन की आवश्यकता वाला होस्ट इसे अस्वीकार कर सकता है। रिमोट सर्वर को क्रॉस-ओरिजिनल स्क्रिप्ट पढ़ने की भी अनुमति देनी होगी; यदि CORS पहुंच को अवरुद्ध करता है, तो टूल एक छिपे हुए रिले के माध्यम से इसके चारों ओर रूट करने के बजाय इनकार की व्याख्या करता है। एक रीडायरेक्ट गंतव्य को बदल सकता है, इसलिए घोषित होस्ट की जांच करें।

चरण दो: प्रतिक्रिया निकाय एक ब्लॉब बन जाता है - बाइट्स को मेमोरी में कैसे एकत्र किया जाता है और ब्लॉब में MIME प्रकार क्यों होता है

प्रतिक्रिया निकाय को बाइट खंडों की एक धारा के रूप में पढ़ा जाता है। जब होस्ट इसे उजागर करता है तो प्रगति सामग्री-लंबाई का उपयोग कर सकती है; ज्ञात लंबाई के बिना टूल प्राप्त बाइट्स दिखा सकता है लेकिन विश्वसनीय प्रतिशत नहीं। यह खंडों को एकत्रित करते समय एक मेमोरी सीलिंग लागू करता है, फिर लौटाए गए सामग्री प्रकार के साथ एक ब्लॉब को इकट्ठा करता है। यह असीमित स्ट्रीम पर response.blob() को कॉल करने से अधिक सुरक्षित है, लेकिन यह डिस्क पर शून्य-मेमोरी स्ट्रीमिंग नहीं है: पूरा ब्लॉब अभी भी आपके ब्राउज़र सत्र में स्थान रखता है।

चरण तीन: URL.createObjectURL और डाउनलोड विशेषता - एक अस्थायी ब्लॉब कैसे: URL प्लस एक एंकर सेव डायलॉग को ट्रिगर करता है

ब्लॉब मेमोरी में मौजूद डेटा है, इंटरनेट पता नहीं। ब्राउज़र एक अस्थायी ब्लॉब बना सकता है: ऑब्जेक्ट URL और इसे डाउनलोड फ़ाइल नाम के साथ एंकर से जोड़ सकता है; उस एंकर पर क्लिक करने से ब्राउज़र बाइट्स को सहेजने के लिए कहता है। फ़ाइल नाम पेज शीर्षक के बजाय सामग्री-विस्थापन शीर्षलेख या URL पथ से आ सकता है। चूँकि लिंक अब एक ही पेज का ब्लॉब URL है, ब्राउज़र परिणाम को ToolAcre पर होस्ट किए बिना सहेज सकता है। किसी अपरिचित स्रोत से फ़ाइल खोलने से पहले एक्सटेंशन और MIME प्रकार का निरीक्षण करना अभी भी बुद्धिमानी है।

कारगर उदाहरण: पॉडकास्ट एपिसोड को उसके एनक्लोजर लिंक से सहेजना - डिस्क पर एक फ़ाइल में चिपकाए गए URL से एक MP3 का अनुसरण करना

कल्पना कीजिए कि एक पॉडकास्ट प्रकाशक एपिसोड.एमपी3 में समाप्त होने वाले अधिकृत संलग्नक URL को उजागर कर रहा है। उस सटीक पते को चिपकाएँ, घोषित होस्ट का निरीक्षण करें और चेक लिंक का उपयोग करें। यदि HEAD की अनुमति है तो यह ऑडियो/mpeg और अपेक्षित बाइट गिनती दिखा सकता है; फ़ेच फिर प्रकाशक से MP3 बाइट्स मांगता है, उन्हें ब्लॉब में स्ट्रीम करता है और एपिसोड.mp3 सहेजता है। यदि होस्ट CORS हेडर को छोड़ देता है, तो ब्राउज़र लिंक को अपने टैब में चला सकता है, जबकि यह पेज इसे स्क्रिप्ट द्वारा नहीं ला सकता है; तब "लिंक को इस रूप में सहेजें" सही मार्ग हो सकता है। फ़ाइल को सहेजने का उपयोगकर्ता का अधिकार इस बात से अलग है कि उसका सर्वर तकनीकी रूप से इसे लाने की अनुमति देता है या नहीं।

सफाई: ऑब्जेक्ट URL को रद्द करना और मेमोरी को मुक्त करना - क्यों एक अच्छी तरह से निर्मित डाउनलोडर सेव पूरा होने के बाद ब्लॉब जारी करता है

अस्थायी ऑब्जेक्ट URL उनके बैकिंग ब्लॉब्स का संदर्भ रखते हैं। एक डाउनलोडर जो प्रत्येक URL को जीवित छोड़ देता है, बड़ी फ़ाइलों को लंबे समय तक चलने वाले टैब में रख सकता है। ToolAcre की साझा डाउनलोड उपयोगिता सेव कार्रवाई के लिए एक स्थानीय URL बनाती है और समाप्त होने पर इसे रद्द कर देती है; रद्दीकरण प्रतिक्रिया पाठक को रिलीज़ करता है और आंशिक भाग को हटा देता है। बहुत बड़ी फ़ाइलों के लिए, पेज मेमोरी में संपूर्ण प्रतिक्रिया एकत्र करने की तुलना में होस्ट से एक सामान्य ब्राउज़र डाउनलोड बेहतर उपयुक्त है।

इसमें क्या शामिल नहीं है - पेज URL, स्ट्रीमिंग मेनिफ़ेस्ट, DRM और लिंक जिनके लिए लॉगिन की आवश्यकता है

यह टूल किCVडियो पेज के पीछे छिपे मीडिया को नहीं ढूंढेगा, HLS/DASH .m3u8 या .mpd मेनिफ़ेस्ट को पार्स नहीं करेगा, DRM को बायपास नहीं करेगा, हेडर को ख़राब नहीं करेगा या सत्र-संरक्षित स्ट्रीम तक नहीं पहुंच पाएगा। यह आपके लिए निजी सामग्री डाउनलोड नहीं करता है और यह तय नहीं करता है कि लाइसेंस किसी फ़ाइल की प्रतिलिपि बनाने की अनुमति देता है या नहीं। एक 403, एक लॉगिन पेज पर रीडायरेक्ट या एक CORS त्रुटि समझने की एक सीमा है, न कि एक अनिर्दिष्ट प्रॉक्सी की खोज करने के लिए एक संकेत।

टेकअवे: तीन ब्राउज़र APआई, कोई सर्वर नहीं - डायरेक्ट मीडिया डाउनलोडर आपके द्वारा पेस्ट किए गए लिंक पर इस पाइपलाइन को कैसे लागू करता है

पाइपलाइन को आपूर्ति किए गए होस्ट से लाया जाता है → टुकड़े प्राप्त किए जाते हैं → एक ब्लॉब बनाया जाता है → एक स्थानीय डाउनलोड ट्रिगर किया जाता है। कोई ToolAcre रिले शामिल नहीं है, लेकिन तीसरे पक्ष के होस्ट के लिए एक वास्तविक अनुरोध बिल्कुल शामिल है; इसके लॉग कनेक्शन देख सकते हैं. डायरेक्ट मीडिया डाउनलोडर उस संपर्क को बनाने से पहले उसकी घोषणा करता है और आपको बताता है कि ब्राउज़र सुरक्षा नियम क्रॉस-ओरिजिनल रीड को कब अस्वीकार करते हैं।