العربية

الفيديو والترجمات · تنزيل الوسائط المباشرة

كيف يقوم المتصفح بتنزيل ملف من رابط مباشر باستخدام الجلب وBlob

· كيف يعمل

التنزيلات متصفح API كورس

ملف وسائط عن بعد يتدفق إلى متصفح Blob ويتم تنزيله محليًا
الرسم التوضيحي المتجه الأصلي ToolAcre

يتجول عبر المسار الذي تستخدمه أداة المتصفح لتحويل رابط مباشر إلى ملف محفوظ: قم بإحضار البايتات، واحتفظ بها ككائن ثنائي كبير الحجم، وقم بتسليمها إلى سمة التنزيل. يشرح سبب عدم الحاجة إلى خادم في أي خطوة.

يفتح الرابط مشغلًا بدلاً من حفظ ملف — يؤدي النقر فوق رابط مباشر MP4 أو MP3 عادةً إلى تشغيله بشكل مضمّن، وهي المشكلة التي يحلها برنامج التنزيل

قد يؤدي النقر فوق رابط MP3 المباشر إلى فتح مشغل لأن المتصفح يعرف كيفية تشغيل هذا النوع MIME. يعد حفظ نفس البايتات إجراءً منفصلاً. الكلمة الأساسية هي مباشرة: رابط لاستجابة ملف فعلية، وليست صفحة ويب تحتوي على مشغل أو قائمة واضحة لقطاعات الوسائط. ToolAcre يقوم بهذا التمييز قبل عرض التنزيل ولا يتظاهر بأن الصفحة URL عبارة عن ملف URL.

الخطوة الأولى: fetch() يطلب من المضيف البايتات - كيف يبدو طلب GET للمضيف المُعلن وما الذي يعود

بعد اختيار التحقق من الارتباط، قد يصدر المتصفح طلب HEAD إلى URL الذي قدمته لفحص الحالة والنوع والطول. يستخدم جلب الملف طلب GET لذلك المضيف، وليس وكيل ToolAcre. يحذف الطلب بيانات الاعتماد عمدًا، لذلك قد يرفضه المضيف الذي يطلب تسجيل الدخول الخاص بك. يجب أن يسمح الخادم البعيد أيضًا بقراءة البرامج النصية عبر الأصل؛ إذا قام CORS بحظر الوصول، فستشرح الأداة الرفض بدلاً من التوجيه حوله من خلال مرحل مخفي. قد تؤدي عملية إعادة التوجيه إلى تغيير الوجهة، لذا تحقق من المضيف المُعلن عنه.

الخطوة الثانية: يصبح نص الاستجابة Blob - كيف يتم جمع البايتات في الذاكرة ولماذا يحمل Blob نوع MIME

تتم قراءة نص الاستجابة كتدفق من قطع البايت. يمكن للتقدم استخدام طول المحتوى عندما يعرضه المضيف؛ بدون طول معروف، يمكن للأداة إظهار البايتات المستلمة ولكن ليس نسبة مئوية موثوقة. فهو يفرض سقفًا للذاكرة أثناء جمع القطع، ثم يقوم بتجميع كائن ثنائي كبير الحجم مع نوع المحتوى الذي تم إرجاعه. يعد هذا أكثر أمانًا من استدعاء response.blob() على دفق غير محدود، ولكنه ليس دفقًا بذاكرة صفرية إلى القرص: لا يزال Blob المكتمل يشغل مساحة في جلسة متصفحك.

الخطوة الثالثة: URL.createObjectURL وسمة التنزيل - كيف يقوم كائن ثنائي كبير الحجم مؤقت: URL بالإضافة إلى نقطة الارتساء بتشغيل مربع حوار الحفظ

Blob عبارة عن بيانات في الذاكرة، وليست عنوان إنترنت. يمكن للمتصفح إنشاء كائن ثنائي كبير الحجم مؤقت: الكائن URL وإرفاقه بنقطة ارتساء باسم ملف التنزيل؛ يؤدي النقر فوق هذا المرساة إلى مطالبة المتصفح بحفظ وحدات البايت. قد يأتي اسم الملف من رأس ترتيب المحتوى أو المسار URL بدلاً من عنوان الصفحة. نظرًا لأن الرابط أصبح الآن عبارة عن كائن ثنائي كبير الحجم من نفس الصفحة URL، فيمكن للمتصفح حفظ النتيجة دون استضافتها على ToolAcre. لا يزال من الحكمة فحص الامتداد ونوع MIME قبل فتح ملف من مصدر غير مألوف.

مثال عملي: حفظ حلقة بودكاست من رابط غلافها - متابعة MP3 من URL الملصقة إلى ملف على القرص

تخيل أن ناشر البودكاست يعرض غلافًا معتمدًا URL ينتهي بالحلقة mp3. الصق هذا العنوان بالضبط، وافحص المضيف المعلن واستخدم رابط التحقق. إذا تم السماح بـ HEAD، فقد يعرض الصوت /mpeg وعدد البايت المتوقع؛ يطلب Fetch بعد ذلك من الناشر MP3 بايت، ويقوم بدفقها في Blob ويحفظ الحلقة.mp3. إذا أغفل المضيف رؤوس CORS، فيمكن للمتصفح تشغيل الرابط في علامة التبويب الخاصة به بينما لا تستطيع هذه الصفحة جلبه بواسطة البرنامج النصي؛ قد يكون "حفظ الرابط باسم" هو المسار الصحيح. إن حق المستخدم في حفظ الملف منفصل عما إذا كان خادمه يسمح من الناحية الفنية بجلبه.

التنظيف: إلغاء الكائن URL وتحرير الذاكرة - لماذا يقوم برنامج التنزيل الجيد بإصدار Blob بعد اكتمال الحفظ

تحتفظ عناوين URL للكائنات المؤقتة بمراجع إلى Blobs الداعمة لها. يمكن لبرنامج التنزيل الذي يترك كل URL على قيد الحياة أن يحتفظ بالملفات الكبيرة في علامة تبويب طويلة الأمد. تقوم أداة التنزيل المشتركة لـ ToolAcre بإنشاء URL محلي لإجراء الحفظ وإبطاله عند الانتهاء؛ يؤدي الإلغاء إلى تحرير قارئ الاستجابة وتجاهل الأجزاء الجزئية. بالنسبة للملفات الكبيرة جدًا، يعد تنزيل المتصفح العادي من المضيف أكثر ملاءمة من جمع الاستجابة بالكامل في ذاكرة الصفحة.

ما لا يغطيه هذا — عناوين URL للصفحات وبيانات البث وDRM والروابط التي تحتاج إلى تسجيل دخول

لن تتمكن هذه الأداة من العثور على الوسائط المخفية خلف صفحة الفيديو، أو تحليل HLS/DASH بيانات .m3u8 أو .mpd، أو تجاوز DRM، أو الرؤوس المخادعة، أو الوصول إلى التدفق المحمي بالجلسة. فهو لا يقوم بتنزيل محتوى خاص لك ولا يقرر ما إذا كان الترخيص يمنح الإذن بنسخ ملف. يعتبر 403، أو إعادة التوجيه إلى صفحة تسجيل الدخول، أو خطأ CORS حدًا يجب فهمه، وليس إشارة للبحث عن وكيل غير موثق.

الوجبات الجاهزة: ثلاث واجهات برمجة تطبيقات للمتصفح، بدون خادم - كيف يقوم برنامج Direct Media Downloader بتطبيق هذا المسار على الرابط الذي تلصقه

يتم جلب خط الأنابيب من المضيف المتوفر ← تلقي القطع ← إنشاء Blob ← تشغيل تنزيل محلي. لا يوجد أي ترحيل ToolAcre، ولكن يتم تضمين طلب حقيقي لمضيف الطرف الثالث بشكل مطلق؛ يمكن لسجلاته رؤية الاتصال. يعلن Direct Media Downloader عن جهة الاتصال هذه قبل إجرائها ويخبرك عندما ترفض قواعد أمان المتصفح القراءة عبر الأصل.