FW Downloader Manager هو تطبيق مكتبي متقدم لإدارة تنزيل الملفات والوسائط، تم تصميمه وتطويره باستخدام Python وPyQt5، مع واجهة رسومية متعددة اللغات وبنية برمجية معيارية تهدف إلى توفير تجربة تنزيل مرنة وموثوقة وقابلة للتوسع.
أبرز الخصائص والإنجازات التقنية:
1. محرك متقدم لتنزيل الملفات (HTTP/HTTPS)
تطوير محرك تنزيل يدعم بروتوكولات HTTP وHTTPS، مع إمكانية تقسيم الملفات إلى أجزاء وتنزيلها بالتوازي عبر اتصالات متعددة، تصل إلى 32 اتصالاً لكل تنزيل.
دعم الإيقاف المؤقت والاستئناف عند توافق المورد مع آلية HTTP Range.
إدارة أجزاء التنزيل والبيانات الوصفية محلياً، والتحقق من توافق معلومات المورد مثل الحجم وETag وLast-Modified قبل استئناف التنزيل.
تنفيذ آليات إعادة المحاولة التلقائية ومعالجة أخطاء الشبكة المؤقتة، مع إمكانية ضبط عدد الاتصالات وإعادة توزيع أجزاء التنزيل أثناء التنفيذ.
إدارة أسماء الملفات ومسارات الحفظ وتجنب استبدال الملفات الموجودة، مع دعم التحقق الاختياري من سلامة الملفات باستخدام MD5 وSHA-1 وSHA-256 وSHA-512.
2. تنزيل الفيديو والصوت ومعالجة الوسائط
دمج مكتبة yt-dlp لدعم تنزيل الفيديو والصوت من المواقع والصيغ المتوافقة معها.
توفير خيارات اختيار الجودة والدقة والصيغة المتاحة، مع عرض معلومات الوسائط مثل الحجم والمدة والترميز ومعدل الإطارات ومعدل البت.
دعم تنزيل الصوت فقط واستخراجه إلى MP3 بجودات مختلفة.
التكامل مع FFmpeg لدمج مسارات الصوت والفيديو المنفصلة ومعالجة الوسائط وقص مقاطع زمنية محددة.
دعم تنزيل الترجمات المتاحة، بما فيها الترجمات التلقائية عند توفيرها من الموقع.
استكشاف عناصر قوائم التشغيل وإضافتها إلى التنزيلات وتنظيمها.
3. إدارة التنزيلات والطوابير والجدولة
إنشاء طوابير تنزيل متعددة بأسماء مخصصة، مع التحكم في تشغيلها وإيقافها.
تنظيم التنزيلات ضمن مجموعات لتسهيل إدارتها ومتابعتها.
تحديد عدد التنزيلات المتزامنة، بصورة مستقلة عن عدد الاتصالات المستخدمة داخل كل تنزيل.
توفير جدولة زمنية لتشغيل طوابير التنزيلات وإيقافها في أوقات محددة.
دعم تحديد سرعة التنزيل القصوى بشكل عام أو لكل تنزيل على حدة.
توفير خيار إيقاف تشغيل الحاسوب بعد اكتمال طابور التنزيلات.
4. إدارة الملفات والبيانات
دعم إضافة روابط متعددة واستيراد قوائم التنزيلات وتنظيمها وإجراء عمليات جماعية عليها.
تصنيف الملفات تلقائياً إلى مجلدات وفق أنواعها وفئاتها.
دعم استيراد قوائم التنزيلات من صيغ EZL وJSON وTXT، وتصديرها بالصيغ التي يدعمها مسار التصدير.
حفظ حالة التنزيلات والطوابير والمجموعات محلياً واستعادتها عند إعادة تشغيل التطبيق.
توفير خيارات البحث والفرز والتصفية، مع واجهة تعرض تفاصيل التنزيلات وسرعتها وحجمها والوقت المتبقي وحالتها.
5. تكامل المتصفحات (Browser Integration)
تطوير نظام تكامل مع متصفحات Chromium مثل Google Chrome وMicrosoft Edge وBrave وOpera وVivaldi، بالإضافة إلى Firefox.
تطوير إضافات متصفح تتيح إرسال روابط الملفات والوسائط إلى مدير التنزيلات مباشرة.
دعم اعتراض بعض تنزيلات HTTP(S) التي يبدأها المستخدم من المتصفح وتحويلها إلى التطبيق.
استخدام Native Messaging للتواصل بين إضافات المتصفح والتطبيق، إلى جانب خادم محلي لاستقبال طلبات التنزيل.
دعم تمرير ملفات تعريف الارتباط (Cookies) ذات الصلة إلى yt-dlp في الحالات التي تتطلب جلسة مستخدم، وفق صلاحيات المتصفح والموقع.
6. بنية برمجية معيارية ونظام تحديث عن بُعد
تصميم بنية معيارية تسمح بتحميل وتحديث وحدات برمجية منفصلة عن الملف التنفيذي الرئيسي.
تطوير آلية للتحقق من التوقيعات الرقمية وبصمات الملفات قبل اعتماد الوحدات المنشورة.
استخدام التشفير لحماية حزم الوحدات البرمجية أثناء توزيعها.
توفير تخزين مؤقت محلي للوحدات الصالحة، بما يساعد على استمرار عمل التطبيق عند تعذر الوصول إلى الخادم.
تطوير آلية لاكتشاف الإصدارات الجديدة وعرض صفحة الإصدار الرسمية للمستخدم عند توفر تحديث كامل للتطبيق.
7. نظام الإحصاءات والتشخيص (Telemetry & Diagnostics)
تطوير نظام إحصاءات ومراقبة باستخدام Cloudflare Workers وCloudflare D1.
متابعة مؤشرات الاستخدام والتنزيلات المكتملة وبعض الأخطاء التقنية للمساعدة في تحسين استقرار التطبيق.
تطبيق آليات تشفير وحماية للبيانات المرسلة، مع إمكانية تعطيل القياس عن بُعد من إعدادات التطبيق.
توفير سجلات تشخيصية محلية للمساعدة في تحليل المشكلات وتتبع الأخطاء.
8. واجهة المستخدم وتجربة الاستخدام
تطوير واجهة رسومية باستخدام PyQt5 مع دعم عدة لغات، منها العربية والإنجليزية والفرنسية والإسبانية والألمانية والبولندية والبرتغالية البرازيلية.
دعم اتجاه الكتابة من اليمين إلى اليسار (RTL) عند استخدام اللغة العربية.
توفير خيارات تخصيص الواجهة والثيمات وحجم العرض والأعمدة وعناصر التحكم.
دعم العمل في الخلفية وتصغير التطبيق إلى صينية النظام (System Tray).
توفير خيارات التشغيل التلقائي مع بدء النظام على Windows وLinux وmacOS.
التقنيات والأدوات المستخدمة:
Python، PyQt5، HTTP/HTTPS، yt-dlp، FFmpeg، Native Messaging، JavaScript، Chromium Extensions، Firefox Extensions، Cloudflare Workers، Cloudflare D1، Cryptography، PyInstaller.
طبيعة المشروع:
مشروع برمجي متكامل تم تصميمه وتطويره بصورة مستقلة، ويغطي دورة حياة إدارة التنزيلات، بدءاً من معالجة الروابط والاتصالات المتزامنة، مروراً بإدارة الملفات والوسائط وتكامل المتصفحات، وصولاً إلى التحديثات البرمجية والتشخيص ومراقبة الأداء
رابط البرنامج للنسخة الاخيرة