---
## ❓ لماذا YTSage؟
تم تصميم YTSage للمستخدمين الذين يريدون **برنامج تنزيل YouTube بسيطًا وقويًا**. على عكس الأدوات الأخرى، فهو يقدم:
- واجهة PySide6 نظيفة وحديثة
- التنزيلات بنقرة واحدة للفيديو والصوت والترجمات
- ميزات متقدمة مثل SponsorBlock ودمج الترجمة واختيار قائمة التشغيل
- الوضع العام الاختياري للمواقع التي تدعم yt-dlp خارج YouTube
- دعم عبر الأنظمة الأساسية وسهولة التثبيت
## ✨المميزات
| الميزات الأساسية | الميزات المتقدمة | ميزات إضافية |
|-----------------------------------|--------------------------------------------------------|-----|
| 🎥 تنسيق الجدول | 🚫 تكامل SponsorBlock | 🎞️ عرض FPS/HDR |
| 🎵 استخراج الصوت | 📝 تحديد ودمج الترجمة المتعددة | 🔄 التحديث التلقائي yt-dlp |
| ✨ واجهة مستخدم بسيطة | 💾 حفظ الوصف والصورة المصغرة | 🛠️ كشف FFmpeg/yt-dlp/Deno |
| 📋 دعم قائمة التشغيل والمحدد | 🚀 محدد السرعة | ⚙️ أوامر مخصصة |
| 📑 تضمين الفصول | ✂️ تقليم أقسام الفيديو | 🍪 تسجيل الدخول باستخدام ملفات تعريف الارتباط |
| 📜 تحميل التاريخ | 🔄 إطلاق اختيار القناة | 🌐 دعم الوكيل |
| 🎚️ تحويل تنسيق الصوت | 🎬 إعدادات تنسيق الفيديو | 🆙 علامة تبويب التحديث المدمجة |
| 🌍 الوضع العام |
| 🌍 التعريب بـ 14 لغة | |
## 🚀التركيب
### ⚡ التثبيت السريع (موصى به)
تثبيت YTSage من PyPI:
```bash
pip install ytsage
```
🔄 تحديث التثبيت الحالي
```bash
pip install --upgrade ytsage
```
ثم قم بتشغيل التطبيق:
```bash
ytsage
```
### 📦 الملفات التنفيذية المعدة مسبقًا
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 ويندوز
| تنسيق | الوصف |
|--------|------------|
|  | المثبت القياسي |
|  | مع FFmpeg المجمعة |
|  | نسخة محمولة، لا تحتاج إلى تثبيت |
|  | محمول مع FFmpeg، مضغوط |
🛠️ خطوات التثبيت
1. **مثبت EXE (`.exe`)**: انقر نقرًا مزدوجًا فوق الملف واتبع معالج الإعداد.
2. **النسخة المحمولة (`.zip`)**: قم باستخراج الأرشيف إلى الموقع المطلوب وتشغيل `ytsage.exe`.
3. **FFmpeg Bundled**: اختر إصدارات FFmpeg المجمعة إذا لم يكن FFmpeg مثبتًا على نظامك.
#### 🐧 لينكس
| تنسيق | الوصف |
|--------|------------|
|  | حزمة دبيان |
|  | صورة التطبيق المحمولة |
|  | حزمة دورة في الدقيقة |
|  | حزمة فلاتباك |
🛠️ خطوات التثبيت
- **ديب (`.deb`)**:
```bash
sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Fix missing dependencies if any
```
- **عدد الدورات في الدقيقة (`.rpm`)**:
```bash
sudo rpm -i ytsage-*.rpm
```
- **صورة التطبيق (`.AppImage`)**:
```bash
chmod +x YTSage-*.AppImage
./YTSage-*.AppImage
```
- **Flatpak**: اتبع التعليمات الموجودة على Flathub أو قم بتشغيل:
```bash
flatpak install flathub io.github.oop7.ytsage
```
#### 🍎 ماك
| تنسيق | الوصف |
|--------|------------|
|  | تطبيق مضغوط لأبل سيليكون |
|  | مثبت صورة القرص لـ Apple Silicon |
🛠️ خطوات التثبيت
- **مثبت DMG (`.dmg`)**: انقر نقرًا مزدوجًا للتثبيت، ثم اسحب `YTSage.app` إلى مجلد التطبيقات.
- **أرشيف التطبيقات (`.zip`)**: استخرج الملف المضغوط وانقل `YTSage.app` إلى مجلد التطبيقات.
*ملاحظة: إذا واجهت خطأ "التطبيق تالف"، راجع [macOS troubleshooting section](#troubleshooting) أدناه.*
---
💻 التثبيت اليدوي من المصدر
### 1. استنساخ المستودع
```bash
git clone https://github.com/oop7/YTSage.git
cd YTSage
```
### 2. تثبيت التبعيات
#### ⚡ مع الأشعة فوق البنفسجية
```bash
uv pip install .
```
#### 📦 أو بالنقطة القياسية
```bash
pip install .
```
### 3. قم بتشغيل التطبيق
```bash
python -m ytsage.main
```
## 📸 لقطات الشاشة
إعدادات التحميل
تنزيل قائمة التشغيل
تنسيق الصوت
خيارات مخصصة
## 📖 الاستخدام
🎯 الاستخدام الأساسي
1. ** إطلاق YTSage **
2. **الصق عنوان URL لموقع YouTube** (أو استخدم الزر "لصق عنوان URL")
3. **انقر على "تحليل"**
4. **حدد التنسيق:**
- `Video` لتنزيل الفيديو
- `Audio Only` لاستخراج الصوت
5. **اختر الخيارات:**
- تمكين الترجمة واختيار اللغة
- تمكين دمج الترجمة
- حفظ الصورة المصغرة
- إزالة شرائح الراعي
- حفظ الوصف
- تضمين الفصول
6. **حدد دليل المخرجات**
7. **انقر على "تنزيل"**
> 💡 دليل التنزيل الافتراضي هو مجلد "التنزيلات" الخاص بالمستخدم.
📋 تنزيل قائمة التشغيل
1. **لصق عنوان URL لقائمة التشغيل**
2. **انقر على "تحليل"**
3. **حدد مقاطع الفيديو من محدد قائمة التشغيل (اختياري، الإعداد الافتراضي هو الكل)**
4. **اختر التنسيق/الجودة المطلوبة**
5. **انقر على "تنزيل"**
> 💡 يتعامل التطبيق تلقائيًا مع قائمة انتظار التنزيل
🌍 الوضع العام للمواقع غير التابعة لليوتيوب
استخدم الوضع العام عندما تريد أن يقبل YTSage عناوين URL من المواقع التي يدعمها yt-dlp، مثل Dailymotion وCBC Gem وTikTok وغيرها.
كيفية استخدامه:
1. افتح `Download Settings`.
2. تفعيل `Generic Mode`.
3. الصق عنوان URL لفيديو أو قائمة تشغيل مدعومة غير تابعة لـ YouTube.
4. اضغط على `Analyze`.
5. اختر التنسيق وقم بتنزيله كالمعتاد.
ملاحظات:
- الوضع العام يغير فقط التحقق من صحة عنوان URL داخل YTSage. يجب أن يظل الموقع المستهدف مدعومًا بإصدار yt-dlp المثبت لديك.
- تتطلب بعض المواقع ملفات تعريف الارتباط، أو جلسة تسجيل دخول، أو وكيلًا، أو وسائط yt-dlp إضافية اعتمادًا على المستخرج.
- إذا فشل أحد المواقع، فقم بتحديث yt-dlp أولاً من علامة تبويب المحدث المضمنة قبل الإبلاغ عن المشكلة.
🧰 خيارات الوسائط والتنزيل
- **خيارات الترجمة:** تصفية اللغات وتضمين الترجمة في ملف الفيديو
- **دمج الترجمة:** دمج الترجمات في ملف الفيديو للحصول على ترجمات مضمنة
- **حفظ الوصف:** احفظ وصف الفيديو كملف نصي
- **حفظ الصورة المصغرة:** احفظ الصورة المصغرة للفيديو كملف صورة
- **تضمين الفصول:** تضمين علامات الفصل كبيانات وصفية لمشغلات الفيديو المتوافقة
- **إزالة شرائح الجهات الراعية:** قم بإزالة شرائح الجهات الراعية من الفيديو باستخدام SponsorBlock
- **قص الفيديو:** قم بتنزيل أجزاء محددة فقط من الفيديو عن طريق تحديد نطاقات زمنية بتنسيق `HH:MM:SS`
⚙️ إعدادات الإخراج والملف
- **محدد السرعة:** حدد سرعة التنزيل، على سبيل المثال `500K` لـ 500 كيلو بايت/ثانية
- **حفظ مسار التنزيل:** احفظ مسار التنزيل الافتراضي للتنزيلات المستقبلية. متوفر في **إعدادات التنزيل → مسار التنزيل**.
- **تنسيق اسم ملف الإخراج:** قم بتخصيص تنسيق اسم ملف الإخراج باستخدام متغيرات مثل `%(title)s`، `%(uploader)s`، و`%(resolution)s`. متوفر في **إعدادات التنزيل → تنسيق اسم الملف**.
- **تنسيق الإخراج الإجباري:** فرض تنزيلات الفيديو في تنسيق حاوية محدد مثل `mp4` أو `webm` أو `mkv`. متوفر في **إعدادات التنزيل ← إعدادات تنسيق الإخراج**.
- **تحويل تنسيق الصوت:** تحويل التنزيلات الصوتية فقط إلى التنسيقات المفضلة مثل `AAC`، `MP3`، `FLAC`، `WAV`، `Opus`، `M4A`، `Vorbis` أو `Best`. متوفر في **إعدادات التنزيل → إعدادات تنسيق الصوت**.
🌐 الوصول والشبكة
- **تسجيل الدخول باستخدام ملفات تعريف الارتباط:** قم بتسجيل الدخول إلى YouTube باستخدام ملفات تعريف الارتباط للوصول إلى المحتوى الخاص.
كيفية استخدامه:
1. **موصى به:** استخدم خيار `Extract cookies from browser` المدمج في التطبيق، ثم حدد المتصفح الخاص بك وملفًا شخصيًا بشكل اختياري.
2. بدلاً من ذلك، قم باستخراج ملفات تعريف الارتباط يدويًا:
أ. قم بتصدير ملفات تعريف الارتباط من متصفحك باستخدام ملحق مثل [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
ب. انسخ ملفات تعريف الارتباط بتنسيق Netscape
ج. أنشئ ملفًا باسم `cookies.txt` والصق ملفات تعريف الارتباط فيه
د. حدد الملف `cookies.txt` في التطبيق
- **دعم الوكيل:** استخدم خادمًا وكيلاً للتنزيلات، على سبيل المثال `http://:`
- **الوضع العام:** اسمح لـ YTSage بالتحليل والتنزيل من مواقع غير تابعة لـ YouTube والتي يدعمها yt-dlp. قم بتمكينه من **إعدادات التنزيل → الوضع العام**.
🛠️ الأدوات والصيانة
- **الأوامر المخصصة:** الوصول إلى ميزات yt-dlp المتقدمة عبر وسيطات سطر الأوامر
- **علامة تبويب التحديث:** إدارة أدوات التحديث المضمنة من مكان واحد في الخيارات المخصصة:
- **تحديثات yt-dlp:** تحقق من وجود تحديثات وقم بالتبديل بين قنوات الإصدار الثابت وقنوات الإصدار الليلي
- **مدقق إصدار FFmpeg:** تحقق من إصدار FFmpeg الخاص بك وافتح أدلة التثبيت
- **تحديثات Deno:** التحقق من وقت تشغيل Deno وتحديثه
- **اكتشاف FFmpeg/yt-dlp/Deno:** اكتشاف مسارات وإصدارات FFmpeg وyt-dlp وDeno تلقائيًا من مربع الحوار "حول".
- **سجل التنزيلات:** اعرض التنزيلات السابقة باستخدام الصور المصغرة والحالات من زر **السجل**.
🌍 التعريب
يدعم YTSage **14 لغة** لسهولة الوصول إليها في جميع أنحاء العالم. اختر لغتك المفضلة من **خيارات مخصصة → اللغة**.
### اللغات المدعومة
| اللغة | الكود | اللغة | الكود |
|----------|------|---------|------|
| 🇺🇸 إنجليزي | `en` | 🇪🇸 الاسبانية | `es` |
| 🇸🇦 عربي | `ar` | 🇫🇷 فرنسي | `fr` |
| 🇩🇪 ألماني | `de` | 🇮🇳 هندي | `hi` |
| 🇮🇩 إندونيسي | `id` | 🇮🇹 إيطالي | `it` |
| 🇯🇵 ياباني | `ja` | 🇵🇱 بولندية | `pl` |
| 🇧🇷 برتغالية | `pt` | 🇷🇺 روسي | `ru` |
| 🇹🇷 تركي | `tr` | 🇨🇳 صيني | `zh` |
### ترجمات README
| اللغة | ملف | اللغة | ملف |
|----------|------|---------|------|
| 🇺🇸 إنجليزي | [README.md](../README.md) | 🇪🇸 الاسبانية | [README.es.md](README.es.md)
| 🇸🇦 عربي | [README.ar.md](README.ar.md) | 🇫🇷 فرنسي | [README.fr.md](README.fr.md) |
| 🇩🇪 ألماني | [README.de.md](README.de.md) | 🇮🇳 هندي | [README.hi.md](README.hi.md) |
| 🇮🇩 إندونيسي | [README.id.md](README.id.md) | 🇮🇹 إيطالي | [README.it.md](README.it.md) |
| 🇯🇵 ياباني | [README.ja.md](README.ja.md) | 🇵🇱 بولندية | [README.pl.md](README.pl.md) |
| 🇧🇷 برتغالية | [README.pt.md](README.pt.md) | 🇷🇺 روسي | [README.ru.md](README.ru.md) |
| 🇹🇷 تركي | [README.tr.md](README.tr.md) | 🇨🇳 صيني | [README.zh.md](README.zh.md) |
> 💡 **هل تريد المساهمة في الترجمة؟** راجع قسم [Contributing](#contributing) لمساعدتنا في إضافة المزيد من اللغات!
## 🛠️ استكشاف الأخطاء وإصلاحها
انقر لعرض المشكلات والحلول الشائعة
- **تنسيق الجدول لا يتم عرضه:** قم بتحديث yt-dlp إلى الإصدار الأحدث، ثم قم بالتبديل إلى yt-dlp ليلاً.
- **فشل التنزيل:** تحقق من اتصالك بالإنترنت وتأكد من توفر الفيديو.
- **أخطاء تنزيل محددة:**
- **مقاطع الفيديو الخاصة:** استخدم مصادقة ملفات تعريف الارتباط للوصول إلى المحتوى الخاص.
- **محتوى مقيد بالفئة العمرية:** قم بتسجيل الدخول إلى حساب YouTube لعرض مقاطع الفيديو المقيدة بالفئة العمرية.
- **مقاطع الفيديو المحظورة جغرافيًا:** فكر في استخدام VPN لتجاوز القيود الإقليمية.
- **مقاطع الفيديو المحذوفة/المحذوفة:** لم يعد الفيديو متاحًا على YouTube.
- **البث المباشر:** لا يمكن تنزيل البث المباشر؛ انتظر حتى ينتهي الدفق.
- **أخطاء الشبكة:** تحقق من اتصالك بالإنترنت وحاول مرة أخرى.
- **عناوين URL غير صالحة:** تأكد من أن عنوان URL صحيح ومن نظام أساسي مدعوم.
- **المحتوى المميز:** يتطلب عضوية YouTube Premium.
- **حظر حقوق الطبع والنشر:** تم حظر المحتوى بسبب قيود حقوق الطبع والنشر.
- **فصل ملفات الفيديو والصوت بعد التنزيل:** يحدث هذا عندما يكون FFmpeg مفقودًا أو لم يتم اكتشافه. يتطلب YTSage FFmpeg لدمج تدفقات الفيديو والصوت عالية الجودة.
- **الحل:** تأكد من تثبيت FFmpeg وإمكانية الوصول إليه في PATH الخاص بنظامك. بالنسبة لمستخدمي Windows، الخيار الأسهل هو تنزيل الملف `YTSage-v-ffmpeg.exe`، والذي يأتي مرفقًا مع FFmpeg.
---
#### 🛡️ تحذير Windows Defender / مضاد الفيروسات
قد تقوم بعض برامج مكافحة الفيروسات بوضع علامة على الملفات `.exe` على أنها ملفات إيجابية كاذبة. هذا **قيد معروف** للتطبيقات المجمعة.
**لماذا يحدث هذا:**
- يمكن للاستدلالات المضادة للفيروسات أن تخطئ في تعريف الملفات التنفيذية المعبأة على أنها مشبوهة
** البدائل الآمنة: **
- ✅ **استخدم تثبيت النقطة:** `pip install ytsage` (مستحسن)
- ✅ **البناء من المصدر**: باتباع هذا [guide](../.github/CI_CD_README.md)
- ✅ **أدرج التطبيق في القائمة البيضاء** في برنامج مكافحة الفيروسات لديك
#### 🍎 macOS: "التطبيق تالف ولا يمكن فتحه"
إذا رأيت هذا الخطأ على نظام التشغيل macOS Sonoma أو الإصدارات الأحدث، فستحتاج إلى إزالة سمة العزل.
1. **افتح الوحدة الطرفية** (يمكنك العثور عليها باستخدام Spotlight).
2. **اكتب الأمر التالي** لكن **لا** تضغط على Enter بعد. تأكد من تضمين المساحة في النهاية:
```bash
xattr -d com.apple.quarantine
```
3. **اسحب الملف `YTSage.app`** من نافذة Finder وأفلته مباشرةً في نافذة الوحدة الطرفية. سيؤدي هذا تلقائيًا إلى لصق مسار الملف الصحيح.
4. **اضغط على Enter** لتشغيل الأمر.
5. **حاول فتح YTSage.app مرة أخرى.** من المفترض الآن أن يتم تشغيله بشكل صحيح.
---
#### **مواقع التكوين (متقدمة)**
- **ويندوز:** `%LOCALAPPDATA%\YTSage`
- **ماك:** `~/Library/Application Support/YTSage`
- **لينكس:** `~/.local/share/YTSage`
## 💖 الراعي
إذا كان YTSage يوفر عليك الوقت، ففكر في رعاية المشروع. تساعد الرعاية في تغطية وقت التطوير والاختبار عبر الأنظمة الأساسية والتحسينات المستقبلية.
- رعاة GitHub: https://github.com/sponsors/oop7
- رابط الراعي متاح أيضًا مباشرة داخل التطبيق من مربع الحوار "حول".
[](https://github.com/sponsors/oop7)
## 👥 المساهمة
نحن نرحب بالمساهمات! إليك كيف يمكنك المساعدة:
1. 🍴 شوكة المستودع
2. 🌿 قم بإنشاء فرع الميزات الخاص بك:
```bash
git checkout -b feature/AmazingFeature
```
3. 💾 قم بإجراء التغييرات:
```bash
git commit -m 'Add some AmazingFeature'
```
4. 📤 اضغط على الفرع:
```bash
git push origin feature/AmazingFeature
```
5. 🔄 افتح طلب السحب
### 🌍 المساهمة بالترجمات
- قم بتحديث ملف README المترجم المطابق (على سبيل المثال `README.es.md`)
- حافظ على مزامنة سلاسل التطبيق عن طريق تحرير `ytsage/languages/.json`
- إذا كانت لغتك مفقودة، ابدأ من `README.md` وأنشئ `README..md`
📂 هيكل المشروع
## YTSage - هيكل المشروع
يصف هذا المستند بنية المجلد المنظم لـ YTSage.
### 📁 هيكل المشروع
```
YTSage/
├── 📁 .github/ # GitHub configuration
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
│ │ └── 🐛-bug-report.md # Bug report template
│ ├─── 📁 workflows/ # GitHub Actions workflows
│ │ ├── build-linux.yml # Linux build workflow
│ │ ├── build-macos.yml # macOS build workflow
│ │ │── build-windows.yml # Windows build workflow
| | └── release-all.yml # Master release workflow
│ └── 📄 CI_CD_README.md # CI/CD documentation
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
│ ├── 📁 icons/ # Application icons
│ ├── 📁 screenshots/ # Screenshots for documentation
│ └── 📁 svg/ # SVG assets
├── 📄 LICENSE # License file
├── 📄 pyproject.toml # Project metadata and dependencies
├── 📄 README.md # Project documentation
├── 📄 requirements.txt # Python dependencies (dev)
└── 📁 ytsage/ # Source package
├── 📁 assets/ # Runtime assets
│ ├── 📁 Icon/ # Application icons
│ └── 📁 sound/ # Audio files
├── 📁 languages/ # Localization files
│ ├── 📄 ar.json # Arabic translation
│ ├── 📄 de.json # German translation
│ ├── 📄 en.json # English translation
│ └── ... # Other languages
├── 📁 core/ # Core business logic
│ ├── 📄 __init__.py # Core package init
│ ├── 📄 ytsage_deno.py # Deno integration
│ ├── 📄 ytsage_downloader.py # Download functionality
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
│ ├── 📄 ytsage_utils.py # Utility functions
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
├── 📁 gui/ # User interface components
│ ├── 📄 __init__.py # GUI package init
│ ├── 📄 ytsage_gui_main.py # Main application window
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
├── 📁 utils/ # Utility modules
│ ├── 📄 __init__.py # Utils package init
│ ├── 📄 ytsage_config_manager.py # Configuration management
│ └── 📄 ytsage_logger.py # Logging utilities
├── 📄 __init__.py # Package entry point
└── 📄 main.py # Main execution script
```
## ⭐️ تاريخ النجوم
## تاريخ النجوم
## 📜 الترخيص
هذا المشروع مرخص بموجب ترخيص MIT - راجع الملف [LICENSE](../LICENSE) للحصول على التفاصيل.
## 🙏 شكر وتقدير
إظهار الشكر والتقدير
شكرًا جزيلًا لكل من ساهم في هذا المشروع من خلال فتح مشكلة لاقتراح تحسين أو الإبلاغ عن خطأ.