Improve Arabic README translation

Refine Arabic localization and formatting in readme-translations/README.ar.md. Updates include clearer word choices (e.g., تحميل vs تنزيل), consistent UI label translations (Analyze/Download), corrected language names and links, improved table layouts, localized installation and troubleshooting instructions, updated screenshot alt texts, and additional notes about playlist export and Generic Mode. These changes tidy wording and improve consistency for Arabic readers.
This commit is contained in:
oop7
2026-05-14 14:45:43 +03:00
parent 9fd09cd0d0
commit ffa46d4a2a
2 changed files with 529 additions and 517 deletions
+282 -276
View File
@@ -12,33 +12,33 @@
[![PyPI version](https://img.shields.io/pypi/v/ytsage?color=c90000&style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/ytsage/)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7)
**أداة تنزيل حديثة من YouTube بواجهة PySide6 نظيفة.**
قم بتنزيل مقاطع الفيديو بأي جودة، واستخرج الصوت، واجلب الترجمات، والمزيد.
**برنامج تحميل من يوتيوب عصري بواجهة PySide6 أنيقة.**
قم بتحميل الفيديوهات بأي جودة، استخراج الصوت، جلب الترجمات، والمزيد.
### 🌍 اقرأني اللغات
### 🌍 لغات README
الإنجليزية: [EN](../README.md)
| العربية: [AR](README.ar.md)
| الألمانية: [DE](README.de.md)
| الاسبانية: [ES](README.es.md)
| الإسبانية: [ES](README.es.md)
| الفرنسية: [FR](README.fr.md)
| الهندية: [HI](README.hi.md)
| البهاسا الإندونيسية: [ID](README.id.md)
| إيطاليانو: [IT](README.it.md)
| العنوان: [JA](README.ja.md)
| بولسكي: [PL](README.pl.md)
| الإندونيسية: [ID](README.id.md)
| الإيطالية: [IT](README.it.md)
| اليابانية: [JA](README.ja.md)
| البولندية: [PL](README.pl.md)
| البرتغالية: [PT](README.pt.md)
| Русский: [RU](README.ru.md)
| الروسية: [RU](README.ru.md)
| التركية: [TR](README.tr.md)
| 中文: [ZH](README.zh.md)
| الصينية: [ZH](README.zh.md)
<p align="center">
<a href="#installation">التثبيت</a> •
<a href="#features">المميزات</a> •
<a href="#usage">الاستخدام</a> •
<a href="#screenshots">لقطات الشاشة</a> •
<a href="#troubleshooting">استكشاف الأخطاء وإصلاحها</a> •
<a href="#sponsor">Sponsor</a> •
<a href="#troubleshooting">استكشاف الأخطاء</a> •
<a href="#sponsor">الدعم</a> •
<a href="#contributing">المساهمة</a>
</p>
@@ -49,44 +49,45 @@
<a id="why-ytsage"></a>
## ❓ لماذا YTSage؟
تم تصميم YTSage للمستخدمين الذين يريدون **برنامج تنزيل YouTube بسيطًا وقويًا**. على عكس الأدوات الأخرى، فهو يقدم:
تم تصميم YTSage للمستخدمين الذين يريدون **أداة تحميل يوتيوب بسيطة لكن قوية**. على عكس الأدوات الأخرى، فإنه يوفر:
- واجهة PySide6 نظيفة وحديثة
- التنزيلات بنقرة واحدة للفيديو والصوت والترجمات
- ميزات متقدمة مثل SponsorBlock ودمج الترجمة واختيار قائمة التشغيل
- الوضع العام الاختياري للمواقع التي تدعم yt-dlp خارج YouTube
- دعم عبر الأنظمة الأساسية وسهولة التثبيت
- واجهة PySide6 عصرية ونظيفة
- تحميل بنقرة واحدة للفيديو والصوت والترجمات
- ميزات متقدمة مثل SponsorBlock، دمج الترجمات، واختيار قوائم التشغيل
- وضع عام (Generic Mode) اختياري للمواقع التي يدعمها yt-dlp بخلاف يوتيوب
- دعم منصات متعددة وتثبيت سهل
<a id="features"></a>
## ✨المميزات
## ✨ المميزات
<div align="center">
| الميزات الأساسية | الميزات المتقدمة | ميزات إضافية |
|-----------------------------------|--------------------------------------------------------|-----|
| 🎥 تنسيق الجدول | 🚫 تكامل SponsorBlock | 🎞️ عرض FPS/HDR |
| 🎵 استخراج الصوت | 📝 تحديد ودمج الترجمة المتعددة | 🔄 التحديث التلقائي yt-dlp |
| ✨ واجهة مستخدم بسيطة | 💾 حفظ الوصف والصورة المصغرة | 🛠️ كشف FFmpeg/yt-dlp/Deno |
| 📋 دعم قائمة التشغيل والمحدد | 🚀 محدد السرعة | ⚙️ أوامر مخصصة |
| 📑 تضمين الفصول | ✂️ تقليم أقسام الفيديو | 🍪 تسجيل الدخول باستخدام ملفات تعريف الارتباط |
| 📜 تحميل التاريخ | 🔄 إطلاق اختيار القناة | 🌐 دعم الوكيل |
| 🎚️ تحويل تنسيق الصوت | 🎬 إعدادات تنسيق الفيديو | 🆙 علامة تبويب التحديث المدمجة |
| 🌍 الوضع العام | 🔊 تسوية الصوت (EBU R128) | 🌍 التعريب بـ 14 لغة |
|-----------------------------------|-----------------------------------------|------------------------------------|
| 🎥 جدول الصيغ | 🚫 تكامل SponsorBlock | 🎞️ عرض FPS/HDR |
| 🎵 استخراج الصوت | 📝 اختيار ودمج الترجمات | 🔄 تحديث تلقائي لـ yt-dlp |
| ✨ واجهة مستخدم بسيطة | 💾 حفظ الوصف والصورة المصغرة | 🛠️ اكتشاف FFmpeg/yt-dlp/Deno |
| 📋 دعم ومحدد قوائم التشغيل | 🚀 محدد السرعة | ⚙️ أوامر مخصصة |
| 📑 دمج الفصول | ✂️ قص أجزاء الفيديو | 🍪 تسجيل الدخول بالكوكيز |
| 📜 سجل التحميلات | 🔄 اختيار قناة الإصدار | 🌐 دعم البروكسي |
| 🎚️ تحويل صيغ الصوت | 🎬 إعدادات صيغ الفيديو | 🆙 تبويب تحديث مدمج |
| 🌍 الوضع العام | 🔊 تطبيع الصوت (EBU R128) | 🌍 دعم 14 لغة |
| 💾 تصدير قوائم التشغيل | ⚙️ الجودة والترجمات الافتراضية | |
</div>
<a id="installation"></a>
## 🚀التركيب
## 🚀 التثبيت
### ⚡ التثبيت السريع (موصى به)
تثبيت YTSage من PyPI:
تثبيت YTSage عبر PyPI:
```bash
pip install ytsage
```
<details>
<summary>🔄 تحديث التثبيت الحالي</summary>
<summary>🔄 تحديث نسخة مثبتة</summary>
```bash
pip install --upgrade ytsage
@@ -100,73 +101,73 @@ pip install --upgrade ytsage
ytsage
```
### 📦 الملفات التنفيذية المعدة مسبقًا
### 📦 حزم جاهزة للتشغيل
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest)
> [👉 تحميل أحدث إصدار](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 ويندوز
#### 🪟 Windows
| تنسيق | الوصف |
|--------|------------|
| ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | المثبت القياسي |
| ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | مع FFmpeg المجمعة |
| ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | نسخة محمولة، لا تحتاج إلى تثبيت |
| ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | محمول مع FFmpeg، مضغوط |
| الصيغة | الوصف |
|--------|-------------|
| ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | مثبت قياسي |
| ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | مع FFmpeg مدمج |
| ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | نسخة محمولة، لا تحتاج لتثبيت |
| ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | محمولة مع FFmpeg، مضغوطة |
<details>
<summary>🛠️ خطوات التثبيت</summary>
1. **مثبت EXE (`.exe`)**: انقر نقرًا مزدوجًا فوق الملف واتبع معالج الإعداد.
2. **النسخة المحمولة (`.zip`)**: قم باستخراج الأرشيف إلى الموقع المطلوب وتشغيل `ytsage.exe`.
3. **FFmpeg Bundled**: اختر إصدارات FFmpeg المجمعة إذا لم يكن FFmpeg مثبتًا على نظامك.
1. **مثبت EXE (`.exe`)**: انقر نقرًا مزدوجًا على الملف واتبع معالج التثبيت.
2. **النسخة المحمولة (`.zip`)**: استخرج الملف في أي مكان وشغل `ytsage.exe`.
3. **FFmpeg المدمج**: اختر النسخة التي تحتوي على FFmpeg إذا لم يكن مثبتًا على نظامك.
</details>
#### 🐧 لينكس
#### 🐧 Linux
| تنسيق | الوصف |
|--------|------------|
| ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | حزمة دبيان |
| ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | صورة التطبيق المحمولة |
| ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | حزمة دورة في الدقيقة |
| ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | حزمة فلاتباك |
| الصيغة | الوصف |
|--------|-------------|
| ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | حزمة Debian |
| ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage، محمولة |
| ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | حزمة RPM |
| ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Flatpak Bundle |
<details>
<summary>🛠️ خطوات التثبيت</summary>
- **ديب (`.deb`)**:
- **DEB (`.deb`)**:
```bash
sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Fix missing dependencies if any
sudo apt-get install -f # لإصلاح الاعتمادات الناقصة إذا لزم الأمر
```
- **عدد الدورات في الدقيقة (`.rpm`)**:
- **RPM (`.rpm`)**:
```bash
sudo rpm -i ytsage-*.rpm
```
- **صورة التطبيق (`.AppImage`)**:
- **AppImage (`.AppImage`)**:
```bash
chmod +x YTSage-*.AppImage
./YTSage-*.AppImage
```
- **Flatpak**: اتبع التعليمات الموجودة على Flathub أو قم بتشغيل:
- **Flatpak**: اتبع التعليمات على Flathub أو شغل:
```bash
flatpak install flathub io.github.oop7.ytsage
```
</details>
#### 🍎 ماك
#### 🍎 macOS
| تنسيق | الوصف |
|--------|------------|
| ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | تطبيق مضغوط لأبل سيليكون |
| ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | مثبت صورة القرص لـ Apple Silicon |
| الصيغة | الوصف |
|--------|-------------|
| ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | تطبيق مضغوط لـ Apple Silicon |
| ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | صورة قرص لـ Apple Silicon |
<details>
<summary>🛠️ خطوات التثبيت</summary>
- **مثبت DMG (`.dmg`)**: انقر نقرًا مزدوجًا للتثبيت، ثم اسحب `YTSage.app` إلى مجلد التطبيقات.
- **أرشيف التطبيقات (`.zip`)**: استخرج الملف المضغوط وانقل `YTSage.app` إلى مجلد التطبيقات.
- **مثبت DMG (`.dmg`)**: انقر نقرًا مزدوجًا لفتح القرص، ثم اسحب `YTSage.app` إلى مجلد Applications.
- **تطبيق مضغوط (`.zip`)**: استخرج الملف وانقل `YTSage.app` إلى مجلد Applications.
*ملاحظة: إذا واجهت خطأ "التطبيق تالف"، راجع [macOS troubleshooting section](#troubleshooting) أدناه.*
*ملاحظة: إذا واجهت خطأ "التطبيق تالف"، راجع قسم استكشاف الأخطاء لنظام macOS أدناه.*
</details>
---
@@ -174,28 +175,28 @@ ytsage
<details>
<summary>💻 التثبيت اليدوي من المصدر</summary>
### 1. استنساخ المستودع
### 1. نسخ المستودع
```bash
git clone https://github.com/oop7/YTSage.git
cd YTSage
```
### 2. تثبيت التبعيات
### 2. تثبيت الاعتمادات
#### ⚡ مع الأشعة فوق البنفسجية
#### ⚡ باستخدام uv
```bash
uv pip install .
```
#### 📦 أو بالنقطة القياسية
#### 📦 أو باستخدام pip العادي
```bash
pip install .
```
### 3. قم بتشغيل التطبيق
### 3. تشغيل التطبيق
```bash
python -m ytsage.main
@@ -209,325 +210,329 @@ python -m ytsage.main
<div align="center">
<table>
<tr>
<td><img src="../branding/screenshots/Download-Settings.png" alt="Download Settings" width="400"/></td>
<td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td>
<td><img src="../branding/screenshots/Download-Settings.png" alt="إعدادات التحميل" width="400"/></td>
<td><img src="../branding/screenshots/playlist.png" alt="تحميل قوائم التشغيل" width="400"/></td>
</tr>
<tr>
<td align="center"><em>إعدادات التحميل</em></td>
<td align="center"><em>تنزيل قائمة التشغيل</em></td>
<td align="center"><em>تحميل قوائم التشغيل</em></td>
</tr>
<tr>
<td><img src="../branding/screenshots/audio_format.png" alt="Audio Format Selection with Save Thumbnail" width="400"/></td>
<td><img src="../branding/screenshots/Custom-Option.png" alt="Custom Options" width="400"/></td>
<td><img src="../branding/screenshots/audio_format.png" alt="اختيار صيغة الصوت" width="400"/></td>
<td><img src="../branding/screenshots/Custom-Option.png" alt="خيارات مخصصة" width="400"/></td>
</tr>
<tr>
<td align="center"><em>تنسيق الصوت</em></td>
<td align="center"><em>صيغة الصوت</em></td>
<td align="center"><em>خيارات مخصصة</em></td>
</tr>
</table>
</div><a id="usage"></a>
</div>
<a id="usage"></a>
## 📖 الاستخدام
<details>
<summary>🎯 الاستخدام الأساسي</summary>
1. ** إطلاق YTSage **
2. **الصق عنوان URL لموقع YouTube** (أو استخدم الزر "لصق عنوان URL")
3. **انقر على "تحليل"**
4. **حدد التنسيق:**
- `Video` لتنزيل الفيديو
- `Audio Only` لاستخراج الصوت
1. **شغل YTSage**
2. **الصق رابط يوتيوب** (أو استخدم زر "Paste URL")
3. **اضغط على "Analyze"**
4. **اختر الصيغة:**
- `Video` للتحميلات المرئية
- `Audio Only` لاستخراج الصوت فقط
5. **اختر الخيارات:**
- تمكين الترجمة واختيار اللغة
- تمكين دمج الترجمة
- تفعيل الترجمات واختيار اللغة
- تفعيل دمج الترجمات
- حفظ الصورة المصغرة
- إزالة شرائح الراعي
- حذف المقاطع الإعلانية (Sponsor segments)
- حفظ الوصف
- تضمين الفصول
6. **حدد دليل المخرجات**
7. **انقر على "تنزيل"**
- دمج الفصول (Chapters)
6. **اختر مجلد الحفظ**
7. **اضغط على "Download"**
> 💡 دليل التنزيل الافتراضي هو مجلد "التنزيلات" الخاص بالمستخدم.
> 💡 مجلد التحميل الافتراضي هو مجلد "Downloads" للمستخدم.
</details>
<details>
<summary>📋 تنزيل قائمة التشغيل</summary>
<summary>📋 تحميل قائمة تشغيل (Playlist)</summary>
1. **لصق عنوان URL لقائمة التشغيل**
2. **انقر على "تحليل"**
3. **حدد مقاطع الفيديو من محدد قائمة التشغيل (اختياري، الإعداد الافتراضي هو الكل)**
4. **اختر التنسيق/الجودة المطلوبة**
5. **انقر على "تنزيل"**
1. **الصق رابط قائمة التشغيل**
2. **اضغط على "Analyze"**
3. **اختر الفيديوهات من محدد القائمة (اختياري، يتم اختيار الكل تلقائيًا)**
4. **اختر الصيغة/الجودة المطلوبة**
5. **اضغط على "Download"**
> 💡 يتعامل التطبيق تلقائيًا مع قائمة انتظار التنزيل
> 💡 التطبيق يتعامل مع طابور التحميل تلقائيًا، ويمكنك تصدير مدخلات القائمة كملفات `.txt` أو `.csv` أو `.m3u` أو `.json`.
</details>
<details>
<summary>🌍 الوضع العام للمواقع غير التابعة لليوتيوب</summary>
<summary>🌍 الوضع العام للمواقع غير يوتيوب</summary>
استخدم الوضع العام عندما تريد أن يقبل YTSage عناوين URL من المواقع التي يدعمها yt-dlp، مثل Dailymotion وCBC Gem وTikTok وغيرها.
استخدم الوضع العام (Generic Mode) عندما تريد أن يقبل YTSage روابط من المواقع التي يدعمها yt-dlp، مثل Dailymotion و CBC Gem و TikTok وغيرها.
كيفية استخدامه:
كيفية الاستخدام:
1. افتح `Download Settings`.
2. تفعيل `Generic Mode`.
3. الصق عنوان URL لفيديو أو قائمة تشغيل مدعومة غير تابعة لـ YouTube.
2. فعل `Generic Mode`.
3. الصق رابط فيديو أو قائمة تشغيل مدعومة غير يوتيوب.
4. اضغط على `Analyze`.
5. اختر التنسيق وقم بتنزيله كالمعتاد.
5. اختر الصيغة وحمل كالمعتاد.
ملاحظات:
- الوضع العام يغير فقط التحقق من صحة عنوان URL داخل YTSage. يجب أن يظل الموقع المستهدف مدعومًا بإصدار yt-dlp المثبت لديك.
- تتطلب بعض المواقع ملفات تعريف الارتباط، أو جلسة تسجيل دخول، أو وكيلًا، أو وسائط yt-dlp إضافية اعتمادًا على المستخرج.
- إذا فشل أحد المواقع، فقم بتحديث yt-dlp أولاً من علامة تبويب المحدث المضمنة قبل الإبلاغ عن المشكلة.
- الوضع العام يغير فقط التحقق من الرابط داخل YTSage. يجب أن يكون الموقع مدعومًا من نسخة yt-dlp المثبتة لديك.
- بعض المواقع تتطلب كوكيز، تسجيل دخول، بروكسي أو وسائط yt-dlp إضافية حسب نوع الموقع.
- إذا فشل موقع ما، حدث yt-dlp أولاً من تبويب التحديث المدمج قبل الإبلاغ عن المشكلة.
</details>
<details>
<summary>🧰 خيارات الوسائط والتنزيل</summary>
<summary>🧰 خيارات الميديا والتحميل</summary>
- **خيارات الترجمة:** تصفية اللغات وتضمين الترجمة في ملف الفيديو
- **دمج الترجمة:** دمج الترجمات في ملف الفيديو للحصول على ترجمات مضمنة
- **حفظ الوصف:** احفظ وصف الفيديو كملف نصي
- **حفظ الصورة المصغرة:** احفظ الصورة المصغرة للفيديو كملف صورة
- **تضمين الفصول:** تضمين علامات الفصل كبيانات وصفية لمشغلات الفيديو المتوافقة
- **إزالة شرائح الجهات الراعية:** قم بإزالة شرائح الجهات الراعية من الفيديو باستخدام SponsorBlock
- **قص الفيديو:** قم بتنزيل أجزاء محددة فقط من الفيديو عن طريق تحديد نطاقات زمنية بتنسيق `HH:MM:SS`
- **خيارات الترجمة:** تصفية اللغات وتضمين الترجمات في ملف الفيديو.
- **دمج الترجمات:** دمج الترجمات داخل ملف الفيديو لتكون ترجمة مدمجة (Hardcoded).
- **حفظ الوصف:** حفظ وصف الفيديو كملف نصي.
- **حفظ الصورة المصغرة:** حفظ صورة الفيديو كملف صورة.
- **دمج الفصول:** تضمين علامات الفصول كبيانات وصفية لمشغلات الفيديو المتوافقة.
- **حذف مقاطع الرعاة:** حذف الأجزاء الإعلانية من الفيديو باستخدام SponsorBlock.
- **قص الفيديو:** تحميل أجزاء محددة فقط من الفيديو عن طريق تحديد أوقات البداية والنهاية بصيغة `HH:MM:SS`.
</details>
<details>
<summary>⚙️ إعدادات الإخراج والملف</summary>
<summary>⚙️ إعدادات الإخراج والملفات</summary>
- **محدد السرعة:** تحديد سرعة التحميل، مثلاً `500K` لـ 500 كيلوبايت/ثانية.
- **حفظ مسار التحميل:** يحفظ مسار التحميل الافتراضي للتحميلات المستقبلية. متاح في **Download Settings → Download Path**.
- **دقة الفيديو الافتراضية:** حدد دقة الفيديو المفضلة للاختيار التلقائي (مثل 1080p أو 720p). متاح في **Download Settings → Default Video Resolution**.
- **لغات الترجمة الافتراضية:** حدد لغات الترجمة للاختيار التلقائي (مفصولة بفواصل، مثل `ar,en`). متاح في **Download Settings → Default Subtitle Languages**.
- **صيغة اسم الملف:** تخصيص صيغة اسم الملف باستخدام متغيرات مثل `%(title)s` و `%(uploader)s` و `%(playlist_index)s` و `%(resolution)s`. متاح في **Download Settings → Filename Format**.
- **فرض صيغة الإخراج:** فرض تحميل الفيديو بصيغة محددة مثل `mp4` أو `webm` أو `mkv`. متاح في **Download Settings → Output Format Settings**.
- **تحويل صيغ الصوت:** تحويل تحميلات الصوت فقط للصيغ المفضلة مثل `AAC` أو `MP3` أو `FLAC` أو `WAV` أو `Opus` أو `M4A` أو `Vorbis` أو `Best`. متاح في **Download Settings → Audio Format Settings**.
- **تطبيع الصوت:** توحيد مستوى الصوت لتحميلات الصوت فقط باستخدام EBU R128.
- **الاتصالات المتزامنة:** زيادة سرعة التحميل بشكل كبير عن طريق تحميل الملف في أجزاء متعددة في وقت واحد. متاح في **Download Settings → General → Concurrent Connections** (القيمة الافتراضية 1، الموصى به 8-10 لتجنب حظر IP).
- **محدد السرعة:** حدد سرعة التنزيل، على سبيل المثال `500K` لـ 500 كيلو بايت/ثانية
- **حفظ مسار التنزيل:** احفظ مسار التنزيل الافتراضي للتنزيلات المستقبلية. متوفر في **إعدادات التنزيل → مسار التنزيل**.
- **تنسيق اسم ملف الإخراج:** قم بتخصيص تنسيق اسم ملف الإخراج باستخدام متغيرات مثل `%(title)s`، `%(uploader)s`، و`%(resolution)s`. متوفر في **إعدادات التنزيل → تنسيق اسم الملف**.
- **تنسيق الإخراج الإجباري:** فرض تنزيلات الفيديو في تنسيق حاوية محدد مثل `mp4` أو `webm` أو `mkv`. متوفر في **إعدادات التنزيل ← إعدادات تنسيق الإخراج**.
- **تحويل تنسيق الصوت:** تحويل التنزيلات الصوتية فقط إلى التنسيقات المفضلة مثل `AAC`، `MP3`، `FLAC`، `WAV`، `Opus`، `M4A`، `Vorbis` أو `Best`. متوفر في **إعدادات التنزيل → إعدادات تنسيق الصوت**.
- **تطبيع الصوت:** توحيد مستوى الصوت للتنزيلات الصوتية فقط باستخدام EBU R128.
- **الاتصالات المتزامنة:** زيادة سرعة التنزيل بشكل كبير عن طريق تنزيل الملفات في أجزاء متعددة بشكل متزامن. متوفر في **إعدادات التنزيل → عام → الاتصالات المتزامنة** (الافتراضي هو 1، والحد الأقصى الموصى به هو 8-10 لمنع تقييد عنوان IP).\n
</details>
<details>
<summary>🌐 الوصول والشبكة</summary>
- **تسجيل الدخول باستخدام ملفات تعريف الارتباط:** قم بتسجيل الدخول إلى 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://<proxy-server>:<port>`
- **الوضع العام:** اسمح لـ YTSage بالتحليل والتنزيل من مواقع غير تابعة لـ YouTube والتي يدعمها yt-dlp. قم بتمكينه من **إعدادات التنزيل → الوضع العام**.
- **تسجيل الدخول بالكوكيز:** سجل الدخول ليوتيوب باستخدام الكوكيز للوصول للمحتوى الخاص.
كيفية الاستخدام:
1. **موصى به:** استخدم خيار `Extract cookies from browser` المدمج في التطبيق، ثم اختر المتصفح والملف الشخصي.
2. بدلاً من ذلك، استخرج الكوكيز يدويًا:
أ. صدر الكوكيز من متصفحك باستخدام إضافة مثل [cookie-editor](https://github.com/moustachauve/cookie-editor)
ب. انسخ الكوكيز بصيغة Netscape
ج. أنشئ ملفًا باسم `cookies.txt` والصق الكوكيز فيه
د. اختر ملف `cookies.txt` في التطبيق
- **دعم البروكسي:** استخدم خادم بروكسي للتحميلات، مثلاً `http://<proxy-server>:<port>`
- **الوضع العام:** يسمح لـ YTSage بتحليل والتحميل من المواقع غير يوتيوب التي يدعمها yt-dlp. فعله من **Download Settings → Generic Mode**.
</details>
<details>
<summary>🛠️ الأدوات والصيانة</summary>
- **الأوامر المخصصة:** الوصول إلى ميزات yt-dlp المتقدمة عبر وسيطات سطر الأوامر
- **علامة تبويب التحديث:** إدارة أدوات التحديث المضمنة من مكان واحد في الخيارات المخصصة:
- **تحديثات yt-dlp:** تحقق من وجود تحديثات وقم بالتبديل بين قنوات الإصدار الثابت وقنوات الإصدار الليلي
- **مدقق إصدار FFmpeg:** تحقق من إصدار FFmpeg الخاص بك وافتح أدلة التثبيت
- **تحديثات Deno:** التحقق من وقت تشغيل Deno وتحديثه
- **اكتشاف FFmpeg/yt-dlp/Deno:** اكتشاف مسارات وإصدارات FFmpeg وyt-dlp وDeno تلقائيًا من مربع الحوار "حول".
- **سجل التنزيلات:** اعرض التنزيلات السابقة باستخدام الصور المصغرة والحالات من زر **السجل**.
- **أوامر مخصصة:** الوصول لميزات yt-dlp المتقدمة عبر وسائط موجه الأوامر.
- **تبويب التحديث:** إدارة أدوات التحديث من مكان واحد في الخيارات المخصصة:
- **تحديثات yt-dlp:** التحقق من التحديثات والتبديل بين القناة المستقرة (Stable) والليلية (Nightly).
- **فاحص نسخة FFmpeg:** التحقق من نسخة FFmpeg وعرض أدلة التثبيت.
- **تحديثات Deno:** التحقق وتحديث محرك Deno.
- **اكتشاف FFmpeg/yt-dlp/Deno:** يكتشف تلقائيًا المسارات والنسخ لـ FFmpeg و yt-dlp و Deno من نافذة "About".
- **سجل التحميلات:** عرض التحميلات السابقة مع الصور المصغرة والحالة من زر **History**.
</details>
<details>
<summary>🌍 التعريب</summary>
<summary>🌍 الترجمة</summary>
يدعم YTSage **14 لغة** لسهولة الوصول إليها في جميع أنحاء العالم. اختر لغتك المفضلة من **خيارات مخصصة → اللغة**.
يدعم YTSage **14 لغة** للوصول العالمي. اختر لغتك المفضلة من **Custom Options → Language**.
### اللغات المدعومة
| اللغة | الكود | اللغة | الكود |
|----------|------|---------|------|
| 🇺🇸 إنجليزي | `en` | 🇪🇸 الاسبانية | `es` |
| 🇸🇦 عربي | `ar` | 🇫🇷 فرنسي | `fr` |
| 🇩🇪 ألماني | `de` | 🇮🇳 هندي | `hi` |
| 🇮🇩 إندونيسي | `id` | 🇮🇹 إيطالي | `it` |
| 🇯🇵 ياباني | `ja` | 🇵🇱 بولندية | `pl` |
| 🇧🇷 برتغالية | `pt` | 🇷🇺 روسي | `ru` |
| 🇹🇷 تركي | `tr` | 🇨🇳 صيني | `zh` |
| اللغة | الرمز | اللغة | الرمز |
|----------|------|----------|------|
| 🇺🇸 الإنجليزية | `en` | 🇪🇸 الإسبانية | `es` |
| 🇸🇦 العربية | `ar` | 🇫🇷 الفرنسية | `fr` |
| 🇩🇪 الألمانية | `de` | 🇮🇳 الهندية | `hi` |
| 🇮🇩 الإندونيسية | `id` | 🇮🇹 الإيطالية | `it` |
| 🇯🇵 اليابانية | `ja` | 🇵🇱 البولندية | `pl` |
| 🇧🇷 البرتغالية | `pt` | 🇷🇺 الروسية | `ru` |
| 🇹🇷 التركية | `tr` | 🇨🇳 الصينية | `zh` |
### ترجمات README
### تراجم 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) |
| اللغة | الملف | اللغة | الملف |
|----------|------|----------|------|
| 🇺🇸 الإنجليزية | [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) لمساعدتنا في إضافة المزيد من اللغات!
> 💡 **هل تريد المساعدة في الترجمة؟** راجع قسم [المساهمة](#contributing) لمساعدتنا في إضافة المزيد من اللغات!
</details>
<a id="troubleshooting"></a>
## 🛠️ استكشاف الأخطاء وإصلاحها
## 🛠️ استكشاف الأخطاء
<details>
<summary>انقر لعرض المشكلات والحلول الشائعة</summary>
<summary>اضغط لعرض المشاكل الشائعة وحلولها</summary>
- **تنسيق الجدول لا يتم عرضه:** قم بتحديث yt-dlp إلى الإصدار الأحدث، ثم قم بالتبديل إلى yt-dlp ليلاً.
- **فشل التنزيل:** تحقق من اتصالك بالإنترنت وتأكد من توفر الفيديو.
- **أخطاء تنزيل محددة:**
- **مقاطع الفيديو الخاصة:** استخدم مصادقة ملفات تعريف الارتباط للوصول إلى المحتوى الخاص.
- **محتوى مقيد بالفئة العمرية:** قم بتسجيل الدخول إلى حساب YouTube لعرض مقاطع الفيديو المقيدة بالفئة العمرية.
- **مقاطع الفيديو المحظورة جغرافيًا:** فكر في استخدام VPN لتجاوز القيود الإقليمية.
- **مقاطع الفيديو المحذوفة/المحذوفة:** لم يعد الفيديو متاحًا على YouTube.
- **البث المباشر:** لا يمكن تنزيل البث المباشر؛ انتظر حتى ينتهي الدفق.
- **أخطاء الشبكة:** تحقق من اتصالك بالإنترنت وحاول مرة أخرى.
- **عناوين URL غير صالحة:** تأكد من أن عنوان URL صحيح ومن نظام أساسي مدعوم.
- **المحتوى المميز:** يتطلب عضوية YouTube Premium.
- **حظر حقوق الطبع والنشر:** تم حظر المحتوى بسبب قيود حقوق الطبع والنشر.
- **فصل ملفات الفيديو والصوت بعد التنزيل:** يحدث هذا عندما يكون FFmpeg مفقودًا أو لم يتم اكتشافه. يتطلب YTSage FFmpeg لدمج تدفقات الفيديو والصوت عالية الجودة.
- **الحل:** تأكد من تثبيت FFmpeg وإمكانية الوصول إليه في PATH الخاص بنظامك. بالنسبة لمستخدمي Windows، الخيار الأسهل هو تنزيل الملف `YTSage-v<version>-ffmpeg.exe`، والذي يأتي مرفقًا مع FFmpeg.
- **جدول الصيغ لا يظهر:** حدث yt-dlp لأحدث نسخة وانتقل للقناة الليلية (Nightly).
- **فشل التحميل:** تحقق من اتصال الإنترنت وتأكد أن الفيديو متاح.
- **أخطاء تحميل محددة:**
- **فيديوهات خاصة:** استخدم الكوكيز للوصول للمحتوى الخاص.
- **محتوى مقيد بالعمر:** سجل دخولك ليوتيوب لمشاهدة الفيديوهات المقيدة.
- **فيديوهات محظورة جغرافيًا:** استخدم VPN لتجاوز القيود الإقليمية.
- **فيديوهات محذوفة:** الفيديو لم يعد متاحًا على يوتيوب.
- **البث المباشر (Live):** لا يمكن تحميل البث المباشر أثناء عرضه؛ انتظر حتى ينتهي.
- **أخطاء الشبكة:** تحقق من اتصالك وحاول مرة أخرى.
- **روابط غير صالحة:** تأكد من صحة الرابط وأنه من منصة مدعومة.
- **محتوى Premium:** يتطلب اشتراك يوتيوب بريميوم.
- **حظر حقوق الملكية:** المحتوى محظور بسبب قيود حقوق النشر.
- **ملفات الفيديو والصوت منفصلة بعد التحميل:** يحدث هذا عند فقدان FFmpeg أو عدم اكتشافه. يتطلب YTSage برنامج FFmpeg لدمج مسارات الفيديو والصوت عالية الجودة.
- **الحل:** تأكد من تثبيت FFmpeg وإضافته لـ PATH النظام. لمستخدمي ويندوز، الخيار الأسهل هو تحميل ملف `YTSage-v<version>-ffmpeg.exe` الذي يأتي مع FFmpeg مدمجًا.
---
#### 🛡️ تحذير Windows Defender / مضاد الفيروسات
#### 🛡️ تنبيه Windows Defender / الأنتي فيروس
قد تقوم بعض برامج مكافحة الفيروسات بوضع علامة على الملفات `.exe` على أنها ملفات إيجابية كاذبة. هذا **قيد معروف** للتطبيقات المجمعة.
قد تصنف بعض برامج الحماية ملفات `.exe` كبرمجيات ضارة (False Positive). هذا **عيب معروف** في التطبيقات المحزمة.
**لماذا يحدث هذا:**
- يمكن للاستدلالات المضادة للفيروسات أن تخطئ في تعريف الملفات التنفيذية المعبأة على أنها مشبوهة
- أساليب الكشف في مضادات الفيروسات قد تعتبر الملفات المحزمة مشبوهة خطأً.
** البدائل الآمنة: **
- ✅ **استخدم تثبيت النقطة:** `pip install ytsage` (مستحسن)
- ✅ **البناء من المصدر**: باتباع هذا [guide](../.github/CI_CD_README.md)
- ✅ **أدرج التطبيق في القائمة البيضاء** في برنامج مكافحة الفيروسات لديك
**البدائل الآمنة:**
- ✅ **استخدم تثبيت pip:** `pip install ytsage` (موصى به)
- ✅ **البناء من المصدر:** باتباع هذا [الدليل](.github/CI_CD_README.md)
- ✅ **إضافة التطبيق للقائمة البيضاء** في برنامج الحماية لديك.
#### 🍎 macOS: "التطبيق تالف ولا يمكن فتحه"
إذا رأيت هذا الخطأ على نظام التشغيل macOS Sonoma أو الإصدارات الأحدث، فستحتاج إلى إزالة سمة العزل.
#### 🍎 macOS: "The app is damaged and cant be opened"
إذا واجهت هذا الخطأ على macOS Sonoma أو أحدث، يجب عليك إزالة سمة الحجر الصحي.
1. **افتح الوحدة الطرفية** (يمكنك العثور عليها باستخدام Spotlight).
2. **اكتب الأمر التالي** لكن **لا** تضغط على Enter بعد. تأكد من تضمين المساحة في النهاية:
1. **افتح الـ Terminal** (يمكنك البحث عنه عبر Spotlight).
2. **اكتب الأمر التالي** ولكن **لا تضغط** Enter بعد. تأكد من وجود مسافة في النهاية:
```bash
xattr -d com.apple.quarantine
```
3. **اسحب الملف `YTSage.app`** من نافذة Finder وأفلته مباشرةً في نافذة الوحدة الطرفية. سيؤدي هذا تلقائيًا إلى لصق مسار الملف الصحيح.
4. **اضغط على Enter** لتشغيل الأمر.
5. **حاول فتح YTSage.app مرة أخرى.** من المفترض الآن أن يتم تشغيله بشكل صحيح.
3. **اسحب ملف `YTSage.app`** من نافذة Finder وأفلته في نافذة الـ Terminal. سيقوم بلصق المسار الصحيح تلقائيًا.
4. **اضغط Enter** لتنفيذ الأمر.
5. **حاول فتح YTSage.app مجددًا.** يجب أن يعمل الآن بشكل صحيح.
---
#### **مواقع التكوين (متقدمة)**
- **ويندوز:** `%LOCALAPPDATA%\YTSage`
- **ماك:** `~/Library/Application Support/YTSage`
- **لينكس:** `~/.local/share/YTSage`
#### **مواقع الإعدادات (للمتقدمين)**
- **Windows:** `%LOCALAPPDATA%\YTSage`
- **macOS:** `~/Library/Application Support/YTSage`
- **Linux:** `~/.local/share/YTSage`
</details>
<a id="sponsor"></a>
## 💖 الراعي
## 💖 الدعم
إذا كان YTSage يوفر عليك الوقت، ففكر في رعاية المشروع. تساعد الرعاية في تغطية وقت التطوير والاختبار عبر الأنظمة الأساسية والتحسينات المستقبلية.
إذا وفر لك YTSage الوقت، يرجى التفكير في دعم المشروع. يساعد الدعم في تغطية وقت التطوير، الاختبار على المنصات المختلفة، والتحسينات المستقبلية.
- رعاة GitHub: https://github.com/sponsors/oop7
- رابط الراعي متاح أيضًا مباشرة داخل التطبيق من مربع الحوار "حول".
- GitHub Sponsors: https://github.com/sponsors/oop7
- رابط الدعم متاح أيضًا داخل التطبيق عبر نافذة "About".
[![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7)
<a id="contributing"></a>
## 👥 المساهمة
نحن نرحب بالمساهمات! إليك كيف يمكنك المساعدة:
نرحب بالمساهمات! إليك كيف يمكنك المساعدة:
1. 🍴 شوكة المستودع
2. 🌿 قم بإنشاء فرع الميزات الخاص بك:
1. 🍴 عمل Fork للمستودع
2. 🌿 إنشاء فرع جديد للميزة:
```bash
git checkout -b feature/AmazingFeature
```
3. 💾 قم بإجراء التغييرات:
3. 💾 حفظ التغييرات:
```bash
git commit -m 'Add some AmazingFeature'
```
4. 📤 اضغط على الفرع:
4. 📤 رفع التغييرات:
```bash
git push origin feature/AmazingFeature
```
5. 🔄 افتح طلب السحب
5. 🔄 فتح Pull Request
### 🌍 المساهمة بالترجمات
### 🌍 المساهمة في الترجمة
- قم بتحديث ملف README المترجم المطابق (على سبيل المثال `README.es.md`)
- حافظ على مزامنة سلاسل التطبيق عن طريق تحرير `ytsage/languages/<code>.json`
- إذا كانت لغتك مفقودة، ابدأ من `README.md` وأنشئ `README.<code>.md`
- حدث ملف README المترجم (مثل `readme-translations/README.ar.md`)
- حافظ على تزامن نصوص التطبيق بتعديل `ytsage/languages/<code>.json`
- إذا كانت لغتك غير موجودة، ابدأ من `README.md` وأنشئ ملفًا جديدًا باسم `README.<code>.md`
<details>
<summary>📂 هيكل المشروع</summary>
## YTSage - هيكل المشروع
يصف هذا المستند بنية المجلد المنظم لـ 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
├── 📁 .github/ # إعدادات GitHub
│ ├── 📁 ISSUE_TEMPLATE/ # نماذج التذاكر
│ │ └── 🐛-bug-report.md # نموذج تقرير الأخطاء
│ ├─── 📁 workflows/ # سير عمل GitHub Actions
│ │ ├── build-linux.yml # بناء نسخة لينكس
│ │ ├── build-macos.yml # بناء نسخة ماك
│ │ │── build-windows.yml # بناء نسخة ويندوز
| | └── release-all.yml # سير عمل الإصدارات
│ └── 📄 CI_CD_README.md # توثيق CI/CD
├── 📁 branding/ # أصول العلامة التجارية (لقطات شاشة، SVG)
│ ├── 📁 icons/ # أيقونات التطبيق
│ ├── 📁 screenshots/ # لقطات شاشة للتوثيق
│ └── 📁 svg/ # أصول بصيغة SVG
├── 📄 LICENSE # ملف الرخصة
├── 📄 pyproject.toml # بيانات المشروع والاعتمادات
├── 📄 README.md # التوثيق الرئيسي
├── 📄 requirements.txt # اعتمادات بايثون (للمطورين)
└── 📁 ytsage/ # مجلد الأكواد المصدرية
├── 📁 assets/ # الأصول اللازمة للتشغيل
│ ├── 📁 Icon/ # أيقونات التطبيق
│ └── 📁 sound/ # ملفات صوتية
├── 📁 languages/ # ملفات الترجمة
│ ├── 📄 ar.json # الترجمة العربية
│ ├── 📄 de.json # الترجمة الألمانية
│ ├── 📄 en.json # الترجمة الإنجليزية
│ └── ... # لغات أخرى
├── 📁 core/ # المنطق البرمجي الأساسي
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_deno.py # تكامل Deno
│ ├── 📄 ytsage_downloader.py # وظائف التحميل
│ ├── 📄 ytsage_ffmpeg.py # تكامل FFmpeg
│ ├── 📄 ytsage_utils.py # وظائف مساعدة
│ └── 📄 ytsage_yt_dlp.py # تكامل yt-dlp
├── 📁 gui/ # مكونات واجهة المستخدم
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_gui_main.py # نافذة التطبيق الرئيسية
│ └── 📁 ytsage_gui_dialogs/ # كلاسات النوافذ الحوارية
├── 📁 utils/ # موديلات مساعدة
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_config_manager.py # مدير الإعدادات
│ └── 📄 ytsage_logger.py # أداة تسجيل السجلات
├── 📄 __init__.py # نقطة دخول الحزمة
└── 📄 main.py # سكربت التشغيل الرئيسي
```
</details>
## ⭐️ تاريخ النجوم
## ⭐️ سجل النجوم
<div align="center">
## تاريخ النجوم
## Star History
<a href="https://www.star-history.com/#oop7/YTSage&Date">
<picture>
@@ -539,65 +544,66 @@ YTSage/
</div>
## 📜 الترخيص
## 📜 الرخصة
هذا المشروع مرخص بموجب ترخيص MIT - راجع الملف [LICENSE](../LICENSE) للحصول على التفاصيل.
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف [LICENSE](LICENSE) لمزيد من التفاصيل.
## 🙏 شكر وتقدير
<details>
<summary>إظهار الشكر والتقدير</summary>
<summary>عرض الشكر والتقدير</summary>
<div align="center">
<p>شكرًا جزيلًا لكل من ساهم في هذا المشروع من خلال فتح مشكلة لاقتراح تحسين أو الإبلاغ عن خطأ.</p>
<p>شكر كبير لكل من ساهم في هذا المشروع بفتح تذكرة لاقتراح تحسين أو الإبلاغ عن خطأ.</p>
<table>
<tr class="section"><th colspan="2">المكونات الأساسية</th></tr>
<tr>
<td width="35%"><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a></td>
<td>تحميل المحرك</td>
<td>محرك التحميل</td>
</tr>
<tr>
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
<td>معالجة الوسائط</td>
</tr>
<tr>
<td><a href="https://deno.com/">دينو</a></td>
<td>وقت التشغيل للتكامل مع yt-dlp</td>
<td><a href="https://deno.com/">Deno</a></td>
<td>بيئة التشغيل لتكامل yt-dlp</td>
</tr>
<tr class="section"><th colspan="2">المكتبات والأطر</th></tr>
<tr class="section"><th colspan="2">المكتبات وإطارات العمل</th></tr>
<tr>
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
<td>إطار واجهة المستخدم الرسومية</td>
<td>إطار عمل الواجهة الرسومية</td>
</tr>
<tr>
<td><a href="https://python-pillow.org/">الوسادة</a></td>
<td><a href="https://python-pillow.org/">Pillow</a></td>
<td>معالجة الصور</td>
</tr>
<tr><td><a href="https://requests.readthedocs.io/">الطلبات</a></td>
<tr>
<td><a href="https://requests.readthedocs.io/">requests</a></td>
<td>طلبات HTTP</td>
</tr>
<tr>
<td><a href="https://packaging.python.org/">التغليف</a></td>
<td>التعامل مع الإصدار والحزمة</td>
<td><a href="https://packaging.python.org/">packaging</a></td>
<td>إدارة الإصدارات والحزم</td>
</tr>
<tr>
<td><a href="https://python-markdown.github.io/">تخفيض السعر</a></td>
<td>عرض تخفيض السعر</td>
<td><a href="https://python-markdown.github.io/">markdown</a></td>
<td>معالجة Markdown</td>
</tr>
<tr>
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
<td>التسجيل</td>
<td>تسجيل السجلات</td>
</tr>
<tr class="section"><th colspan="2">الأصول والمساهمون</th></tr>
<tr>
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">إشعار جديد 09 من Universfield</a></td>
<td>صوت الإشعارات</td>
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">New Notification 09 by Universfield</a></td>
<td>صوت التنبيه</td>
</tr>
<tr>
<td><a href="https://github.com/viru185">الفيروس185</a></td>
<td>مساهم الكود</td>
<td><a href="https://github.com/viru185">viru185</a></td>
<td>مساهم بالكود</td>
</tr>
</table>
@@ -605,14 +611,14 @@ YTSage/
</details>
## ⚠️إخلاء المسؤولية
## ⚠️ إخلاء مسؤولية
هذه الأداة للاستخدام الشخصي فقط. يرجى احترام شروط خدمة YouTube وحقوق منشئي المحتوى.
تُستخدم هذه الأداة للاستخدام الشخصي فقط. يرجى احترام شروط خدمة يوتيوب وحقوق منشئي المحتوى.
---
<div align="center">
صُنع باستخدام ❤️ بواسطة [oop7](https://github.com/oop7)
صنع بـ ❤️ بواسطة [oop7](https://github.com/oop7)
</div>