Najm Aldeen Alzorqah

Video Downloader Ultra

أداة مفتوحة المصدر لتحميل الفيديوهات على لينكس

الكود المصدريشاهد العرضدراسة حالة

01 — نظرة عامة

Video Downloader Ultra مكدس مفتوح المصدر على لينكس يتيح بدء التحميل من المتصفح ومتابعته من سطح المكتب. إضافة Chromium تلتقط الطلب، خدمة Python محلية تشغّل yt-dlp وFFmpeg، وودجت QML يعرض الطابور والتقدم دون إبقاء تبويب مفتوحًا.

02 — مساهمتي

بنيتُ إضافة MV3 (سكربتات المحتوى، النافذة المنبثقة، وإعدادات)، جسر Native Messaging إلى خدمة Python، IPC عبر مقابس Unix بين المكونات، سكربتات إعداد ملف Chromium، وودجت QML في شريط الحالة مع التحكم بالطابور.

03 — البنية التقنية

الإضافة تتواصل مع مضيف native عبر Chrome Native Messaging؛ المضيف يمرّر المهام إلى خدمة Python طويلة العمر تشغّل yt-dlp وFFmpeg. أحداث التقدم تعود إلى واجهة الإضافة وودجت QML عبر نفس طبقة المقابس. سكربتات Bash تربط ملفات المتصفح والصلاحيات ليصل المستودع إلى مسار عمل دون تخمين يدوي.

04 — تحديات هندسية

  • قيود MV3: العمل في الخلفية والصلاحيات يجب أن تبقى ضمن حدود الإضافة — التنفيذ الثقيل في خدمة native موثوقة وليس في service worker.
  • موثوقية بين العمليات: انقطاع الاتصال بين المتصفح والمضيف والخدمة تطلّب تنسيقًا واضحًا على المقبس ومعرّفات مهام لا تكرّر الملفات عند إعادة المحاولة.
  • تكامل سطح المكتب على لينكس: الودجت يعكس حالة طابور حية من عملية لا يملكها المتصفح — جعلنا الخدمة مصدر الحقيقة الوحيد للحالة.

05 — الاختبار والجودة

اختبار يدوي على Chromium مع صفحات فيديو حقيقية، وتمريرات بعد تغييرات أعلام yt-dlp. المستودع يتضمن تسجيلًا في `.github/assets/demo.mp4` يوضح المسار من النقر إلى التحميل. مسارات الخطأ تظهر في الإضافة عند غياب الخدمة أو عدم دعم الرابط.

06 — النتائج والدروس

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