GNU Media Downloader — واجهة رسومية حديثة لتنزيل وتحويل الوسائط على غنو/لينكس.
مبنية بـ Electron 28 + React 18 + Tailwind CSS 3 مع دعم كامل للعربية والإنجليزية.
- 📸 لقطات الشاشة
- ✨ المميزات
- 📦 متطلبات النظام
- 🚀 التشغيل والتطوير
- 🏗️ البناء والتحزيم
- 📥 تنزيل الحزم الجاهزة
- 🏛️ البنية التقنية
- ⌨️ الاختصارات والتقنيات
- 📄 الترخيص
سجلُّ التغييرات الكامل في CHANGELOG.md.
| العربية | English |
|---|---|
![]() |
![]() |
| العربية | English |
|---|---|
![]() |
![]() |
| الميزة | التفاصيل |
|---|---|
| 📹 تنزيل فيديو | اختيار الجودة: أفضل متاحة، 1080p، 720p، 480p |
| 🎵 تنزيل صوت | صيغ: MP3، M4A، OGG، OPUS، FLAC، WAV |
| 🧠 تنزيل وتحويل | تنزيل وتحويل مباشر إلى أي صيغة |
| ⚡ خيارات إضافية | قوائم تشغيل · قنوات · ترجمات · صور مصغرة · تنزيل شامل · روابط مباشرة بـ wget/aria2c |
| الميزة | التفاصيل |
|---|---|
| 🔄 تحويل ملفات | فيديو · صوت · صور (JPG، PNG، WebP، GIF، BMP) — دفعة واحدة أو عدة ملفات |
| ✂️ قص وسائط | تقطيع دقيق من رابط أو ملف محلي مع معاينة فيديو/صوت ومؤقت تفاعلي |
| 📋 معلومات الوسائط | عرض تفاصيل الفيديو قبل التنزيل (العنوان، المدة، الجودة، الصيغة) |
- 🌐 تبديل اللغة: عربي (RTL) ↔ إنجليزي (LTR)
- 🔤 اختيار الخط: Noto Sans Arabic أو Ubuntu Arabic مع معاينة فورية
- 📁 مجلدات حفظ افتراضية لكل نوع (فيديو، صوت، مستندات، تنزيلات)
- ⚙️ ترميزات متقدمة عند تحويل الملفات
- 🔧 إدارة الاعتماديات: تثبيت wget/aria2c، تحديث yt-dlp مع عرض رقم الإصدار
- 🖥️ إصلاح أيقونة سطح المكتب، إلغاء التثبيت الكامل
- 🔔 تحقُّق تلقائي عند التشغيل من صدور إصدار جديد، مع شريط تنبيه في أعلى النافذة (يمكن تعطيله)
- ⬇️ تنزيل داخل البرنامج بشريط تقدُّم وسرعة، قابل للاستئناف إن انقطع الاتصال، ومُتحقَّق من حجمه
- 📦 تثبيت يناسب طريقة التثبيت: نسخة AppImage تستبدل نفسها، وحزم deb/rpm تُسلَّم لمدير حزم النظام عبر
pkexec - 🧪 خيار قبول الإصدارات التجريبية (beta) قبل استقرارها — معطَّل افتراضياً
- 🎨 ثيم داكن مع تأثيرات زجاجية ورسوم متحركة سلسة (framer-motion)
- 🖱️ تحكم مخصص بنافذة التطبيق (Frame-less window)
- 📊 شريط تقدم مباشر أثناء التنزيل مع إمكانية الإلغاء
| المتطلب | الحد الأدنى | الملاحظة |
|---|---|---|
| Node.js | 18+ | للتطوير والبناء |
| yt-dlp | آخر إصدار | ~/.local/bin/yt-dlp — يُثبَّت من الإعدادات |
| ffmpeg | أي إصدار | مطلوب للتحويل والقص |
| wget أو aria2c | اختياري | للتنزيل المباشر من روابط |
جميع أوامر التطوير تُنفَّذ داخل مجلَّد
GMD-26.9/.
cd GMD-26.9
# تثبيت التبعيات
npm install
# تشغيل وضع التطوير (Vite فقط)
npm run dev
# تشغيل مع Electron
npm run electron:dev
# بناء الإنتاج
npm run build# بناء جميع الحزم (AppImage + DEB + RPM)
npm run electron:build
# الفحوص (تتطلّب ffmpeg)
npm test
# بناء هدف محدد
npx electron-builder --linux AppImage
npx electron-builder --linux deb
npx electron-builder --linux rpm# بناء شامل (AppImage + DEB + RPM)
./build-scripts/build.sh
# بناء AppImage فقط
./build-scripts/build-appimage.sh
# بناء DEB فقط
./build-scripts/build-deb.sh
# بناء RPM (يتراجع لـ alien تلقائياً على Debian/Ubuntu)
./build-scripts/build-rpm.shملاحظة RPM: على أنظمة Debian/Ubuntu يلزم تثبيت
alien rpmمسبقاً:sudo apt install alien rpm
الحزم تُوضع في مجلد dist-electron/:
GMD-26.9/dist-electron/
├── GMD-26.9.0-beta.3-x86_64.AppImage
├── GMD-26.9.0-beta.3-amd64.deb
└── GMD-26.9.0-beta.3-x86_64.rpm
أسماءُ الحزمِ تختلفُ باختلافِ المعماريّةِ والصيغة: لاحقةُ المعماريّةِ في AppImage
x86_64/arm64، وفي debamd64/arm64، وفي rpmx86_64/aarch64.
للحواسيبِ ذاتِ المعماريّةِ x86_64:
| الحزمة | الرابط | التحقّق |
|---|---|---|
| 🐧 AppImage | GMD-26.9.0-beta.3-x86_64.AppImage | SHA256SUMS-x64.txt |
| 🐧 DEB | GMD-26.9.0-beta.3-amd64.deb | SHA256SUMS-x64.txt |
| 🐧 RPM | GMD-26.9.0-beta.3-x86_64.rpm | SHA256SUMS-x64.txt |
وللمعماريّةِ arm64: AppImage · DEB · RPM · SHA256SUMS-arm64.txt
| الحزمة | الرابط | الحجم | SHA256 |
|---|---|---|---|
| 🐧 AppImage | GMD-26.5.0.AppImage | 105 MB | bfb8386cb3bca6a547a092c2d11de3bc6f5e8a526b59a52e0a83ff5f18b0cd2c |
| 🐧 DEB | GMD-26.5.0.deb | 71.1 MB | f0d586deac8257aba29badea1ada61de973cd53c4c65b0e3d1e7d91219a197ab |
| 🐧 RPM | GMD-26.5.0.rpm | 103 MB | 8c637b0848d427099188b60fc96fa0cc391f2aea96d8b514b203571c5c41a68d |
| الإصدار | الرابط |
|---|---|
| GMD-GUI (النسخة الرسومية) | تحميل AppImage |
| GMD-CLI (النسخة الطرفية) | تحميل AppImage |
الطريقة 1: استخدام AppImage (التشغيل المباشر)
# للنسخة الرسومية (GUI)
wget https://github.com/SalehGNUTUX/GMD/releases/download/GMD_1.92_Media_Downloader/GMD-GUI_GNU_Media_Downloader-x86_64.AppImage
chmod +x GMD-GUI_GNU_Media_Downloader-x86_64.AppImage
./GMD-GUI_GNU_Media_Downloader-x86_64.AppImage
# للنسخة الطرفية (CLI)
wget https://github.com/SalehGNUTUX/GMD/releases/download/GMD_1.92_Media_Downloader/GMD_CLI_Media_Downloader-x86_64.AppImage
chmod +x GMD_CLI_Media_Downloader-x86_64.AppImage
./GMD_CLI_Media_Downloader-x86_64.AppImageالطريقة 2: إضافة GMD إلى قائمة التطبيقات باستخدام Gearlever
# تثبيت Gearlever
flatpak install flathub it.mijorus.gearlever
# تشغيل Gearlever
flatpak run it.mijorus.gearleverثم اسحب ملف AppImage وأفلته في نافذة Gearlever واضغط "Integrate".
الطريقة 3: التثبيت الكامل للنسخة الطرفية (CLI)
bash <(curl -sL "https://raw.githubusercontent.com/SalehGNUTUX/GMD/main/gmd") --install-desktopالطريقة 4: تجربة مباشرة دون تثبيت
# للنسخة الطرفية
bash <(curl -sL https://raw.githubusercontent.com/SalehGNUTUX/GMD/main/gmd)
# للنسخة الرسومية (يجب أن يكون Zenity مثبتاً)
bash <(curl -sL https://raw.githubusercontent.com/SalehGNUTUX/GMD/main/gmd-gui.sh)| استخدم GMD-GUI (الرسومية) إذا: | استخدم GMD-CLI (الطرفية) إذا: |
|---|---|
| تفضل الواجهات الرسومية | أنت مطور أو مستخدم متقدم |
| لا تريد التعامل مع سطر الأوامر | تريد دمج البرنامج في سكريبتات |
| تفضل النوافذ والقوائم المنبثقة | تعمل على خوادم بدون واجهة رسومية |
GMD-26.9/
├── electron/
│ ├── main.js # العملية الرئيسية — كل عمليات النظام
│ ├── updater.js # التحقُّق من التحديثات وتنزيلها وتثبيتها
│ └── preload.js # جسر IPC بين Electron وReact
├── src/
│ ├── App.jsx # جذر التطبيق، التوجيه بين الشاشات
│ ├── components/
│ │ ├── MainMenu.jsx # القائمة الرئيسية
│ │ ├── DownloadVideo.jsx # تنزيل فيديو
│ │ ├── DownloadAudio.jsx # تنزيل صوت
│ │ ├── DownloadConvert.jsx # تنزيل وتحويل
│ │ ├── ConvertLocal.jsx # تحويل ملفات محلية
│ │ ├── ExtraOptions.jsx # خيارات إضافية
│ │ ├── ClipMedia.jsx # قص وسائط
│ │ ├── MediaInfo.jsx # معلومات الوسائط
│ │ ├── Settings.jsx # الإعدادات
│ │ └── UpdateManager.jsx # واجهة التحديث الذاتي
│ ├── locales/
│ │ ├── ar.json # الترجمة العربية (الافتراضية)
│ │ └── en.json # الترجمة الإنجليزية
│ └── index.css # التنسيقات العامة والخطوط
├── fonts/ # خطوط مدمجة
│ ├── NotoSansArabic-Regular.ttf
│ ├── NotoSansArabic.ttf
│ ├── Ubuntu Arabic Regular.otf
│ └── Ubuntu Arabic Bold.ttf
├── build-scripts/ # سكريبتات البناء
└── public/
└── gmd-icon.png # أيقونة التطبيق
app://localhost/— يخدم ملفاتdist/بديلاً عنfile://المحظور في Electron v28media://— يخدم ملفات الوسائط المحلية للمعاينة داخل التطبيق
- أوامر الصدفة (yt-dlp, ffmpeg):
App.jsx→ IPCrun-command→spawn('bash')فيmain.js، المخرجات تُبثّ عبرcommand-output/command-done - نوافذ الحوار: تمر عبر
showDialog()فيmain.jsمعmoveTop()+focus()لضمان ظهورها - الإعدادات: محفوظة في
localStorageتحت المفتاحgmd-settings
| التقنية | الاستخدام |
|---|---|
| Electron 28 | إطار التطبيق المكتبي |
| React 18 | واجهة المستخدم |
| Vite 5 | أداة البناء |
| Tailwind CSS 3 | التنسيق |
| framer-motion | الرسوم المتحركة |
| i18next | الترجمة متعددة اللغات |
| yt-dlp | تنزيل الوسائط |
| ffmpeg / ffprobe | تحويل الوسائط والمعلومات |
GNU General Public License v3.0
هذا البرنامج برنامج حر ومفتوح المصدر. يمكنك إعادة توزيعه و/أو تعديله وفق شروط رخصة GNU العمومية الإصدار الثالث أو أي إصدار لاحق.
صُنع بـ ❤️ بواسطة GNUTUX · 2026
مستودع المشروع · الموقع الإلكتروني



