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:
+280
-274
@@ -12,33 +12,33 @@
|
||||
[](https://pypi.org/project/ytsage/)
|
||||
[](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,13 +49,13 @@
|
||||
<a id="why-ytsage"></a>
|
||||
## ❓ لماذا YTSage؟
|
||||
|
||||
تم تصميم YTSage للمستخدمين الذين يريدون **برنامج تنزيل YouTube بسيطًا وقويًا**. على عكس الأدوات الأخرى، فهو يقدم:
|
||||
تم تصميم YTSage للمستخدمين الذين يريدون **أداة تحميل يوتيوب بسيطة لكن قوية**. على عكس الأدوات الأخرى، فإنه يوفر:
|
||||
|
||||
- واجهة PySide6 نظيفة وحديثة
|
||||
- التنزيلات بنقرة واحدة للفيديو والصوت والترجمات
|
||||
- ميزات متقدمة مثل SponsorBlock ودمج الترجمة واختيار قائمة التشغيل
|
||||
- الوضع العام الاختياري للمواقع التي تدعم yt-dlp خارج YouTube
|
||||
- دعم عبر الأنظمة الأساسية وسهولة التثبيت
|
||||
- واجهة PySide6 عصرية ونظيفة
|
||||
- تحميل بنقرة واحدة للفيديو والصوت والترجمات
|
||||
- ميزات متقدمة مثل SponsorBlock، دمج الترجمات، واختيار قوائم التشغيل
|
||||
- وضع عام (Generic Mode) اختياري للمواقع التي يدعمها yt-dlp بخلاف يوتيوب
|
||||
- دعم منصات متعددة وتثبيت سهل
|
||||
|
||||
<a id="features"></a>
|
||||
## ✨ المميزات
|
||||
@@ -63,30 +63,31 @@
|
||||
<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
|
||||
|
||||
| تنسيق | الوصف |
|
||||
|--------|------------|
|
||||
|  | المثبت القياسي |
|
||||
|  | مع FFmpeg المجمعة |
|
||||
|  | نسخة محمولة، لا تحتاج إلى تثبيت |
|
||||
|  | محمول مع FFmpeg، مضغوط |
|
||||
| الصيغة | الوصف |
|
||||
|--------|-------------|
|
||||
|  | مثبت قياسي |
|
||||
|  | مع FFmpeg مدمج |
|
||||
|  | نسخة محمولة، لا تحتاج لتثبيت |
|
||||
|  | محمولة مع 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
|
||||
|
||||
| تنسيق | الوصف |
|
||||
|--------|------------|
|
||||
|  | حزمة دبيان |
|
||||
|  | صورة التطبيق المحمولة |
|
||||
|  | حزمة دورة في الدقيقة |
|
||||
|  | حزمة فلاتباك |
|
||||
| الصيغة | الوصف |
|
||||
|--------|-------------|
|
||||
|  | حزمة Debian |
|
||||
|  | AppImage، محمولة |
|
||||
|  | حزمة RPM |
|
||||
|  | 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
|
||||
|
||||
| تنسيق | الوصف |
|
||||
|--------|------------|
|
||||
|  | تطبيق مضغوط لأبل سيليكون |
|
||||
|  | مثبت صورة القرص لـ Apple Silicon |
|
||||
| الصيغة | الوصف |
|
||||
|--------|-------------|
|
||||
|  | تطبيق مضغوط لـ Apple Silicon |
|
||||
|  | صورة قرص لـ 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 can’t 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".
|
||||
|
||||
[](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>
|
||||
|
||||
+240
-234
@@ -13,33 +13,33 @@
|
||||
[](https://github.com/sponsors/oop7)
|
||||
|
||||
**Un téléchargeur YouTube moderne avec une interface PySide6 épurée.**
|
||||
Téléchargez des vidéos dans n'importe quelle qualité, extrayez l'audio, récupérez des sous-titres, et bien plus encore.
|
||||
Téléchargez des vidéos dans n'importe quelle qualité, extrayez l'audio, récupérez les sous-titres, et plus encore.
|
||||
|
||||
### 🌍 Langues README
|
||||
### 🌍 Langues du README
|
||||
|
||||
Anglais : [EN](../README.md)
|
||||
| Titre : [AR](README.ar.md)
|
||||
| Allemand : [DE](README.de.md)
|
||||
| Espagnol : [ES](README.es.md)
|
||||
| Anglais: [FR](README.fr.md)
|
||||
| Nom : [HI](README.hi.md)
|
||||
| Bahasa Indonésie : [ID](README.id.md)
|
||||
| Italien : [IT](README.it.md)
|
||||
| Nom : [JA](README.ja.md)
|
||||
| Polski : [PL](README.pl.md)
|
||||
| Portugais : [PT](README.pt.md)
|
||||
| Russe : [RU](README.ru.md)
|
||||
| Turc : [TR](README.tr.md)
|
||||
| Nom : [ZH](README.zh.md)
|
||||
Anglais : [EN](../README.md)
|
||||
| Arabe : [AR](README.ar.md)
|
||||
| Allemand : [DE](README.de.md)
|
||||
| Espagnol : [ES](README.es.md)
|
||||
| Français : [FR](README.fr.md)
|
||||
| Hindi : [HI](README.hi.md)
|
||||
| Indonésien : [ID](README.id.md)
|
||||
| Italien : [IT](README.it.md)
|
||||
| Japonais : [JA](README.ja.md)
|
||||
| Polonais : [PL](README.pl.md)
|
||||
| Portugais : [PT](README.pt.md)
|
||||
| Russe : [RU](README.ru.md)
|
||||
| Turc : [TR](README.tr.md)
|
||||
| Chinois : [ZH](README.zh.md)
|
||||
|
||||
<p align="center">
|
||||
<a href="#installation">Installation</a> •
|
||||
<a href="#features">Caractéristiques</a> •
|
||||
<a href="#features">Fonctionnalités</a> •
|
||||
<a href="#usage">Utilisation</a> •
|
||||
<a href="#screenshots">Captures d'écran</a> •
|
||||
<a href="#troubleshooting">Dépannage</a> •
|
||||
<a href="#sponsor">Commanditaire</a> •
|
||||
<a href="#contributing">Contribuer</a>
|
||||
<a href="#sponsor">Sponsor</a> •
|
||||
<a href="#contributing">Contribution</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@@ -49,37 +49,38 @@ Anglais : [EN](../README.md)
|
||||
<a id="why-ytsage"></a>
|
||||
## ❓ Pourquoi YTSage ?
|
||||
|
||||
YTSage est conçu pour les utilisateurs qui souhaitent un **téléchargeur YouTube simple mais puissant**. Contrairement à d’autres outils, il propose :
|
||||
YTSage est conçu pour les utilisateurs qui recherchent un **téléchargeur YouTube simple mais puissant**. Contrairement à d'autres outils, il offre :
|
||||
|
||||
- Une interface PySide6 propre et moderne
|
||||
- Une interface PySide6 moderne et épurée
|
||||
- Téléchargements en un clic pour la vidéo, l'audio et les sous-titres
|
||||
- Fonctionnalités avancées telles que SponsorBlock, la fusion de sous-titres et la sélection de listes de lecture
|
||||
- Mode générique en option pour les sites pris en charge par yt-dlp au-delà de YouTube
|
||||
- Prise en charge multiplateforme et installation facile
|
||||
- Fonctionnalités avancées comme SponsorBlock, la fusion des sous-titres et la sélection de playlists
|
||||
- Mode générique (Generic Mode) optionnel pour les sites pris en charge par yt-dlp au-delà de YouTube
|
||||
- Support multiplateforme et installation facile
|
||||
|
||||
<a id="features"></a>
|
||||
## ✨ Caractéristiques
|
||||
## ✨ Fonctionnalités
|
||||
|
||||
<div align="center">
|
||||
|
||||
| Fonctionnalités principales | Fonctionnalités avancées | Fonctionnalités supplémentaires |
|
||||
|--------------------------------------------------|-----------------------------------------|--------------------------------------------------|
|
||||
| 🎥 Formater le tableau | 🚫 Intégration SponsorBlock | 🎞️ Affichage FPS/HDR |
|
||||
| 🎵 Extraction audio | 📝 Sélection et fusion de sous-titres multiples | 🔄 Mise à jour automatique yt-dlp |
|
||||
| ✨ Interface utilisateur simple | 💾 Enregistrer la description et la vignette | 🛠️ Détection FFmpeg/yt-dlp/Deno |
|
||||
| 📋 Prise en charge et sélecteur de playlist | 🚀 Limiteur de vitesse | ⚙️ Commandes personnalisées |
|
||||
| 📑 Intégrer les chapitres | ✂️ Couper les sections vidéo | 🍪 Connectez-vous avec les cookies |
|
||||
| 📜 Historique des téléchargements | 🔄 Sélection des chaînes de sortie | 🌐 Assistance proxy |
|
||||
| 🎚️ Conversion de formats audio | 🎬 Paramètres de format vidéo | 🆙 Onglet de mise à jour intégré |
|
||||
| Fonctionnalités de base | Fonctionnalités avancées | Fonctionnalités supplémentaires |
|
||||
|-----------------------------------|-----------------------------------------|------------------------------------|
|
||||
| 🎥 Tableau des formats | 🚫 Intégration de SponsorBlock | 🎞️ Affichage FPS/HDR |
|
||||
| 🎵 Extraction audio | 📝 Sélection et fusion de sous-titres | 🔄 Mise à jour automatique de yt-dlp |
|
||||
| ✨ Interface utilisateur simple | 💾 Enregistrement de la description et de la miniature | 🛠️ Détection de FFmpeg/yt-dlp/Deno |
|
||||
| 📋 Support et sélecteur de playlists | 🚀 Limiteur de vitesse | ⚙️ Commandes personnalisées |
|
||||
| 📑 Intégration des chapitres | ✂️ Découpage de sections vidéo | 🍪 Connexion avec Cookies |
|
||||
| 📜 Historique des téléchargements | 🔄 Sélection du canal de version | 🌐 Support Proxy |
|
||||
| 🎚️ Conversion du format audio | 🎬 Paramètres de format vidéo | 🆙 Onglet de mise à jour intégré |
|
||||
| 🌍 Mode générique | 🔊 Normalisation audio (EBU R128) | 🌍 Localisation en 14 langues |
|
||||
| 💾 Exportation de playlists | ⚙️ Qualité et sous-titres par défaut | |
|
||||
</div>
|
||||
|
||||
<a id="installation"></a>
|
||||
## 🚀 Installation
|
||||
|
||||
### ⚡ Installation rapide (recommandé)
|
||||
### ⚡ Installation rapide (Recommandé)
|
||||
|
||||
Installez YTSage depuis PyPI :
|
||||
Installez YTSage via PyPI :
|
||||
|
||||
```bash
|
||||
pip install ytsage
|
||||
@@ -100,54 +101,54 @@ Lancez ensuite l'application :
|
||||
ytsage
|
||||
```
|
||||
|
||||
### 📦 Exécutables prédéfinis
|
||||
### 📦 Exécutables pré-construits
|
||||
|
||||
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest)
|
||||
> [👉 Télécharger la dernière version](https://github.com/oop7/YTSage/releases/latest)
|
||||
|
||||
#### 🪟Fenêtres
|
||||
#### 🪟 Windows
|
||||
|
||||
| Formater | Descriptif |
|
||||
| Format | Description |
|
||||
|--------|-------------|
|
||||
|  | Installateur standard |
|
||||
|  | Avec FFmpeg fourni |
|
||||
|  | Avec FFmpeg inclus |
|
||||
|  | Version portable, aucune installation requise |
|
||||
|  | Portable avec FFmpeg, zippé |
|
||||
|
||||
<details>
|
||||
<summary>🛠️ Étapes d'installation</summary>
|
||||
|
||||
1. **EXE Installer (`.exe`)** : Double-cliquez sur le fichier et suivez l'assistant d'installation.
|
||||
2. **Version portable (`.zip`)** : Extrayez l'archive à l'emplacement souhaité et exécutez `ytsage.exe`.
|
||||
3. **FFmpeg Bundled** : Choisissez les versions groupées de FFmpeg si FFmpeg n'est pas installé sur votre système.
|
||||
1. **Installateur EXE (`.exe`)** : Double-cliquez sur le fichier et suivez l'assistant de configuration.
|
||||
2. **Version portable (`.zip`)** : Extrayez l'archive vers l'emplacement souhaité et lancez `ytsage.exe`.
|
||||
3. **FFmpeg inclus** : Choisissez les versions avec FFmpeg inclus si vous n'avez pas FFmpeg installé sur votre système.
|
||||
</details>
|
||||
|
||||
#### 🐧 Linux
|
||||
|
||||
| Formater | Descriptif |
|
||||
| Format | Description |
|
||||
|--------|-------------|
|
||||
|  | Paquet Debian |
|
||||
|  | AppImage, portable |
|
||||
|  | Paquet RPM |
|
||||
|  | Paquet Flatpak |
|
||||
|  | Flatpak Bundle |
|
||||
|
||||
<details>
|
||||
<summary>🛠️ Étapes d'installation</summary>
|
||||
|
||||
- **DEB (`.deb`)** :
|
||||
- **DEB (`.deb`)** :
|
||||
```bash
|
||||
sudo dpkg -i ytsage_*.deb
|
||||
sudo apt-get install -f # Fix missing dependencies if any
|
||||
sudo apt-get install -f # Répare les dépendances manquantes si nécessaire
|
||||
```
|
||||
- **RPM (`.rpm`)** :
|
||||
- **RPM (`.rpm`)** :
|
||||
```bash
|
||||
sudo rpm -i ytsage-*.rpm
|
||||
```
|
||||
- **AppImage (`.AppImage`)** :
|
||||
- **AppImage (`.AppImage`)** :
|
||||
```bash
|
||||
chmod +x YTSage-*.AppImage
|
||||
./YTSage-*.AppImage
|
||||
```
|
||||
- **Flatpak** : suivez les instructions sur Flathub ou exécutez :
|
||||
- **Flatpak** : Suivez les instructions sur Flathub ou lancez :
|
||||
```bash
|
||||
flatpak install flathub io.github.oop7.ytsage
|
||||
```
|
||||
@@ -155,26 +156,26 @@ ytsage
|
||||
|
||||
#### 🍎 macOS
|
||||
|
||||
| Formater | Descriptif |
|
||||
| Format | Description |
|
||||
|--------|-------------|
|
||||
|  | Application zippée pour Apple Silicon |
|
||||
|  | Programme d’installation d’image disque pour Apple Silicon |
|
||||
|  | Installateur d'image disque pour Apple Silicon |
|
||||
|
||||
<details>
|
||||
<summary>🛠️ Étapes d'installation</summary>
|
||||
|
||||
- **DMG Installer (`.dmg`)** : Double-cliquez pour monter, puis faites glisser `YTSage.app` dans votre dossier Applications.
|
||||
- **App Archive (`.zip`)** : Extrayez le zip et déplacez `YTSage.app` vers votre dossier Applications.
|
||||
- **Installateur DMG (`.dmg`)** : Double-cliquez pour monter, puis faites glisser `YTSage.app` dans votre dossier Applications.
|
||||
- **Archive d'application (`.zip`)** : Extrayez le zip et déplacez `YTSage.app` dans votre dossier Applications.
|
||||
|
||||
*Remarque : si vous rencontrez une erreur « L'application est endommagée », consultez le [macOS troubleshooting section](#troubleshooting) ci-dessous.*
|
||||
*Note : Si vous rencontrez une erreur "L'application est endommagée", consultez la section de dépannage macOS ci-dessous.*
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
<details>
|
||||
<summary>💻 Installation manuelle à partir de la source</summary>
|
||||
<summary>💻 Installation manuelle à partir des sources</summary>
|
||||
|
||||
### 1. Cloner le référentiel
|
||||
### 1. Cloner le dépôt
|
||||
|
||||
```bash
|
||||
git clone https://github.com/oop7/YTSage.git
|
||||
@@ -195,7 +196,7 @@ uv pip install .
|
||||
pip install .
|
||||
```
|
||||
|
||||
### 3. Exécutez l'application
|
||||
### 3. Lancer l'application
|
||||
|
||||
```bash
|
||||
python -m ytsage.main
|
||||
@@ -209,147 +210,151 @@ 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="Paramètres de téléchargement" width="400"/></td>
|
||||
<td><img src="../branding/screenshots/playlist.png" alt="Téléchargement de playlist" width="400"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><em>Paramètres de téléchargement</em></td>
|
||||
<td align="center"><em>Téléchargement de la liste de lecture</em></td>
|
||||
<td align="center"><em>Téléchargement de playlist</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="Sélection du format audio" width="400"/></td>
|
||||
<td><img src="../branding/screenshots/Custom-Option.png" alt="Options personnalisées" width="400"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><em>Format audio</em></td>
|
||||
<td align="center"><em>Options personnalisées</em></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><a id="usage"></a>
|
||||
</div>
|
||||
|
||||
<a id="usage"></a>
|
||||
## 📖 Utilisation
|
||||
|
||||
<details>
|
||||
<summary>🎯 Utilisation de base</summary>
|
||||
|
||||
1. **Lancer YTSage**
|
||||
2. **Collez l'URL YouTube** (ou utilisez le bouton « Coller l'URL »)
|
||||
3. **Cliquez sur « Analyser »**
|
||||
4. **Sélectionnez le format :**
|
||||
- `Video` pour les téléchargements de vidéos
|
||||
1. **Lancez YTSage**
|
||||
2. **Collez l'URL YouTube** (ou utilisez le bouton "Paste URL")
|
||||
3. **Cliquez sur "Analyze"**
|
||||
4. **Sélectionnez le format :**
|
||||
- `Video` pour les téléchargements vidéo
|
||||
- `Audio Only` pour l'extraction audio
|
||||
5. **Choisissez les options :**
|
||||
5. **Choisissez les options :**
|
||||
- Activer les sous-titres et sélectionner la langue
|
||||
- Activer la fusion des sous-titres
|
||||
- Enregistrer la vignette
|
||||
- Supprimer les segments de sponsors
|
||||
- Enregistrer la miniature
|
||||
- Supprimer les segments sponsorisés
|
||||
- Enregistrer la description
|
||||
- Intégrer des chapitres
|
||||
- Intégrer les chapitres
|
||||
6. **Sélectionnez le répertoire de sortie**
|
||||
7. **Cliquez sur "Télécharger"**
|
||||
7. **Cliquez sur "Download"**
|
||||
|
||||
> 💡 Le répertoire de téléchargement par défaut est le dossier « Téléchargements » de l'utilisateur.
|
||||
> 💡 Le répertoire de téléchargement par défaut est le dossier "Téléchargements" de l'utilisateur.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>📋 Téléchargement de la liste de lecture</summary>
|
||||
<summary>📋 Téléchargement de playlist</summary>
|
||||
|
||||
1. **Coller l'URL de la liste de lecture**
|
||||
2. **Cliquez sur « Analyser »**
|
||||
3. ** Sélectionnez des vidéos dans le sélecteur de playlist (facultatif, par défaut : toutes) **
|
||||
4. **Choisissez le format/qualité souhaité**
|
||||
5. **Cliquez sur "Télécharger"**
|
||||
1. **Collez l'URL de la playlist**
|
||||
2. **Cliquez sur "Analyze"**
|
||||
3. **Sélectionnez les vidéos du sélecteur de playlist (optionnel, toutes par défaut)**
|
||||
4. **Choisissez le format/la qualité souhaitée**
|
||||
5. **Cliquez sur "Download"**
|
||||
|
||||
> 💡 L'application gère automatiquement la file d'attente de téléchargement
|
||||
> 💡 L'application gère automatiquement la file d'attente de téléchargement, et vous pouvez exporter les entrées de la playlist au format `.txt`, `.csv`, `.m3u` ou `.json`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🌍 Mode générique pour les sites non YouTube</summary>
|
||||
<summary>🌍 Mode générique pour les sites non-YouTube</summary>
|
||||
|
||||
Utilisez le mode générique lorsque vous souhaitez que YTSage accepte les URL de sites pris en charge par yt-dlp, tels que Dailymotion, CBC Gem, TikTok et autres.
|
||||
Utilisez le mode générique (Generic Mode) lorsque vous souhaitez que YTSage accepte des URL de sites pris en charge par yt-dlp, tels que Dailymotion, CBC Gem, TikTok, et d'autres.
|
||||
|
||||
Comment l'utiliser :
|
||||
Comment l'utiliser :
|
||||
|
||||
1. Ouvrez `Download Settings`.
|
||||
2. Activez `Generic Mode`.
|
||||
3. Collez une URL de vidéo ou de playlist non YouTube prise en charge.
|
||||
3. Collez une URL de vidéo ou de playlist prise en charge qui n'est pas YouTube.
|
||||
4. Cliquez sur `Analyze`.
|
||||
5. Choisissez un format et téléchargez comme d'habitude.
|
||||
|
||||
Remarques :
|
||||
Notes :
|
||||
|
||||
- Le mode générique modifie uniquement la validation de l'URL dans YTSage. Le site cible doit toujours être pris en charge par votre version yt-dlp installée.
|
||||
- Le mode générique ne modifie que la validation de l'URL à l'intérieur de YTSage. Le site cible doit toujours être pris en charge par votre version installée de yt-dlp.
|
||||
- Certains sites nécessitent des cookies, une session de connexion, un proxy ou des arguments yt-dlp supplémentaires selon l'extracteur.
|
||||
- Si un site échoue, mettez d'abord à jour yt-dlp à partir de l'onglet de mise à jour intégré avant de signaler le problème.
|
||||
- Si un site échoue, mettez d'abord à jour yt-dlp depuis l'onglet de mise à jour intégré avant de signaler le problème.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🧰 Options multimédia et de téléchargement</summary>
|
||||
<summary>🧰 Options média et de téléchargement</summary>
|
||||
|
||||
- **Options de sous-titres :** Filtrez les langues et intégrez des sous-titres dans le fichier vidéo
|
||||
- **Fusion des sous-titres :** Fusionnez les sous-titres dans le fichier vidéo pour les sous-titres codés en dur
|
||||
- **Enregistrer la description :** Enregistrez la description de la vidéo sous forme de fichier texte
|
||||
- **Enregistrer la vignette :** Enregistrez la vignette de la vidéo en tant que fichier image
|
||||
- **Intégrer les chapitres :** Intégrer des marqueurs de chapitre en tant que métadonnées pour les lecteurs vidéo compatibles
|
||||
- **Supprimer les segments de sponsor :** Supprimez les segments de sponsor de la vidéo à l'aide de SponsorBlock
|
||||
- **Découper la vidéo :** Téléchargez uniquement des parties spécifiques d'une vidéo en spécifiant des plages de temps au format `HH:MM:SS`
|
||||
- **Options de sous-titres :** Filtrer les langues et intégrer les sous-titres dans le fichier vidéo.
|
||||
- **Fusion de sous-titres :** Fusionner les sous-titres dans le fichier vidéo pour des sous-titres incrustés (hardcoded).
|
||||
- **Enregistrer la description :** Enregistrer la description de la vidéo sous forme de fichier texte.
|
||||
- **Enregistrer la miniature :** Enregistrer la miniature de la vidéo sous forme de fichier image.
|
||||
- **Intégrer les chapitres :** Intégrer les marqueurs de chapitres comme métadonnées pour les lecteurs vidéo compatibles.
|
||||
- **Supprimer les segments sponsorisés :** Supprimer les segments sponsorisés de la vidéo à l'aide de SponsorBlock.
|
||||
- **Découper la vidéo :** Téléchargez uniquement des parties spécifiques d'une vidéo en spécifiant des plages temporelles au format `HH:MM:SS`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>⚙️ Paramètres de sortie et de fichier</summary>
|
||||
|
||||
- **Speed Limiter :** Limitez la vitesse de téléchargement, par exemple `500K` à 500 Ko/s
|
||||
- **Enregistrer le chemin de téléchargement :** Enregistrez le chemin de téléchargement par défaut pour les prochains téléchargements. Disponible dans **Paramètres de téléchargement → Chemin de téléchargement**.
|
||||
- **Format du nom de fichier de sortie :** Personnalisez le format du nom de fichier de sortie à l'aide de variables telles que `%(title)s`, `%(uploader)s` et `%(resolution)s`. Disponible dans **Paramètres de téléchargement → Format du nom de fichier**.
|
||||
- **Forcer le format de sortie :** Forcer les téléchargements de vidéos dans un format de conteneur spécifique tel que `mp4`, `webm` ou `mkv`. Disponible dans **Paramètres de téléchargement → Paramètres du format de sortie**.
|
||||
- **Conversion de format audio :** Convertissez les téléchargements audio uniquement vers les formats préférés tels que `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis`, ou `Best`. Disponible dans **Paramètres de téléchargement → Paramètres de format audio**.
|
||||
- **Normalisation audio :** Standardisez le volume pour les téléchargements audio uniquement à l'aide de l'EBU R128.
|
||||
- **Connexions Simultanées:** Augmentez considérablement la vitesse de téléchargement en téléchargeant des fichiers en plusieurs fragments simultanément. Disponible dans **Paramètres de téléchargement → Général → Connexions Simultanées** (Par défaut à 1, le maximum recommandé est de 8 à 10 pour éviter le blocage d'IP).\n
|
||||
- **Limiteur de vitesse :** Limiter la vitesse de téléchargement, par exemple `500K` pour 500 Ko/s.
|
||||
- **Enregistrer le chemin de téléchargement :** Enregistre le chemin de téléchargement par défaut pour les futurs téléchargements. Disponible dans **Download Settings → Download Path**.
|
||||
- **Résolution vidéo par défaut :** Définissez votre résolution vidéo préférée par défaut pour la sélection automatique (ex : 1080p, 720p). Disponible dans **Download Settings → Default Video Resolution**.
|
||||
- **Langues de sous-titres par défaut :** Définissez les langues de sous-titres par défaut pour une sélection automatique (séparées par des virgules, ex : `fr,en`). Disponible dans **Download Settings → Default Subtitle Languages**.
|
||||
- **Format du nom de fichier de sortie :** Personnalisez le format du nom de fichier de sortie à l'aide de variables telles que `%(title)s`, `%(uploader)s`, `%(playlist_index)s` et `%(resolution)s`. Disponible dans **Download Settings → Filename Format**.
|
||||
- **Forcer le format de sortie :** Forcer les téléchargements vidéo dans un format de conteneur spécifique tel que `mp4`, `webm` ou `mkv`. Disponible dans **Download Settings → Output Format Settings**.
|
||||
- **Conversion du format audio :** Convertir les téléchargements audio uniquement dans les formats préférés tels que `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` ou `Best`. Disponible dans **Download Settings → Audio Format Settings**.
|
||||
- **Normalisation audio :** Standardiser le volume pour les téléchargements audio uniquement à l'aide de l'EBU R128.
|
||||
- **Connexions simultanées :** Augmentez considérablement la vitesse de téléchargement en téléchargeant les fichiers en plusieurs fragments simultanément. Disponible dans **Download Settings → General → Concurrent Connections** (1 par défaut, le maximum recommandé est de 8 à 10 pour éviter la limitation par IP).
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🌐 Accès et réseau</summary>
|
||||
|
||||
- **Connexion avec des cookies :** Connectez-vous à YouTube en utilisant des cookies pour accéder au contenu privé.
|
||||
Comment l'utiliser :
|
||||
1. **Recommandé :** Utilisez l'option intégrée `Extract cookies from browser` dans l'application, puis sélectionnez votre navigateur et éventuellement un profil.
|
||||
2. Vous pouvez également extraire les cookies manuellement :
|
||||
une. Exportez les cookies de votre navigateur en utilisant une extension comme [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
|
||||
- **Connexion avec cookies :** Connectez-vous à YouTube à l'aide de cookies pour accéder au contenu privé.
|
||||
Comment l'utiliser :
|
||||
1. **Recommandé :** Utilisez l'option intégrée `Extract cookies from browser` dans l'application, puis sélectionnez votre navigateur et éventuellement un profil.
|
||||
2. Alternativement, extrayez les cookies manuellement :
|
||||
a. Exportez les cookies de votre navigateur à l'aide d'une extension comme [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
|
||||
b. Copiez les cookies au format Netscape
|
||||
c. Créez un fichier nommé `cookies.txt` et collez-y les cookies
|
||||
d. Sélectionnez le fichier `cookies.txt` dans l'application
|
||||
- **Prise en charge du proxy :** Utilisez un serveur proxy pour les téléchargements, par exemple `http://<proxy-server>:<port>`
|
||||
- **Mode générique :** Autorisez YTSage à analyser et à télécharger à partir de sites non YouTube pris en charge par yt-dlp. Activez-le depuis **Paramètres de téléchargement → Mode générique**.
|
||||
- **Support Proxy :** Utilisez un serveur proxy pour les téléchargements, par exemple `http://<proxy-server>:<port>`
|
||||
- **Mode générique :** Permet à YTSage d'analyser et de télécharger à partir de sites non-YouTube pris en charge par yt-dlp. Activez-le depuis **Download Settings → Generic Mode**.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🛠️ Outils et entretien</summary>
|
||||
<summary>🛠️ Outils et maintenance</summary>
|
||||
|
||||
- **Commandes personnalisées :** Accédez aux fonctionnalités avancées de yt-dlp via des arguments de ligne de commande
|
||||
- **Onglet Mise à jour :** Gérez les outils de mise à jour intégrés à partir d'un seul endroit dans les options personnalisées :
|
||||
- **Mises à jour yt-dlp :** Vérifiez les mises à jour et basculez entre les versions stables et nocturnes
|
||||
- **FFmpeg Version Checker :** Vérifiez votre version de FFmpeg et ouvrez les guides d'installation
|
||||
- **Mises à jour Deno :** Vérifiez et mettez à jour le runtime Deno
|
||||
- **Détection FFmpeg/yt-dlp/Deno :** Détecte automatiquement les chemins et versions FFmpeg, yt-dlp et Deno à partir de la boîte de dialogue À propos.
|
||||
- **Historique des téléchargements :** affichez les téléchargements passés avec des vignettes et des statuts à partir du bouton **Historique**.
|
||||
- **Commandes personnalisées :** Accédez aux fonctionnalités avancées de yt-dlp via des arguments de ligne de commande.
|
||||
- **Onglet de mise à jour :** Gérez les outils de mise à jour intégrés depuis un seul endroit dans Options personnalisées :
|
||||
- **Mises à jour de yt-dlp :** Vérifiez les mises à jour et basculez entre les canaux de version Stable et Nightly.
|
||||
- **Vérificateur de version FFmpeg :** Vérifiez votre version de FFmpeg et ouvrez les guides d'installation.
|
||||
- **Mises à jour de Deno :** Vérifiez et mettez à jour le moteur d'exécution Deno.
|
||||
- **Détection de FFmpeg/yt-dlp/Deno :** Détecte automatiquement les chemins et les versions de FFmpeg, yt-dlp et Deno à partir de la boîte de dialogue À propos.
|
||||
- **Historique des téléchargements :** Affichez les téléchargements passés avec les miniatures et les statuts depuis le bouton **History**.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🌍 Localisation</summary>
|
||||
|
||||
YTSage prend en charge **14 langues** pour une accessibilité mondiale. Sélectionnez votre langue préférée dans **Options personnalisées → Langue**.
|
||||
YTSage prend en charge **14 langues** pour une accessibilité mondiale. Sélectionnez votre langue préférée dans **Custom Options → Language**.
|
||||
|
||||
### Langues prises en charge
|
||||
|
||||
| Langue | Codes | Langue | Codes |
|
||||
|--------------|------|--------------|------|
|
||||
| 🇺🇸 Anglais | `en` | Espagnol | `es` |
|
||||
| Langue | Code | Langue | Code |
|
||||
|----------|------|----------|------|
|
||||
| 🇺🇸 Anglais | `en` | 🇪🇸 Espagnol | `es` |
|
||||
| 🇸🇦 Arabe | `ar` | 🇫🇷 Français | `fr` |
|
||||
| 🇩🇪 Allemand | `de` | 🇮🇳 Hindi | `hi` |
|
||||
| 🇮🇩 Indonésien | `id` | 🇮🇹 Italien | `it` |
|
||||
@@ -357,11 +362,11 @@ YTSage prend en charge **14 langues** pour une accessibilité mondiale. Sélecti
|
||||
| 🇧🇷 Portugais | `pt` | 🇷🇺 Russe | `ru` |
|
||||
| 🇹🇷 Turc | `tr` | 🇨🇳 Chinois | `zh` |
|
||||
|
||||
### Traductions README
|
||||
### Traductions du README
|
||||
|
||||
| Langue | Fichier | Langue | Fichier |
|
||||
|--------------|------|--------------|------|
|
||||
| 🇺🇸 Anglais | [README.md](../README.md) | Espagnol | [README.es.md](README.es.md)
|
||||
|----------|------|----------|------|
|
||||
| 🇺🇸 Anglais | [README.md](README.md) | 🇪🇸 Espagnol | [README.es.md](README.es.md) |
|
||||
| 🇸🇦 Arabe | [README.ar.md](README.ar.md) | 🇫🇷 Français | [README.fr.md](README.fr.md) |
|
||||
| 🇩🇪 Allemand | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) |
|
||||
| 🇮🇩 Indonésien | [README.id.md](README.id.md) | 🇮🇹 Italien | [README.it.md](README.it.md) |
|
||||
@@ -369,7 +374,7 @@ YTSage prend en charge **14 langues** pour une accessibilité mondiale. Sélecti
|
||||
| 🇧🇷 Portugais | [README.pt.md](README.pt.md) | 🇷🇺 Russe | [README.ru.md](README.ru.md) |
|
||||
| 🇹🇷 Turc | [README.tr.md](README.tr.md) | 🇨🇳 Chinois | [README.zh.md](README.zh.md) |
|
||||
|
||||
> 💡 **Vous voulez contribuer à une traduction ?** Consultez la section [Contributing](#contributing) pour nous aider à ajouter plus de langues !
|
||||
> 💡 **Vous souhaitez contribuer à une traduction ?** Consultez la section [Contribution](#contributing) pour nous aider à ajouter d'autres langues !
|
||||
|
||||
</details>
|
||||
|
||||
@@ -377,22 +382,22 @@ YTSage prend en charge **14 langues** pour une accessibilité mondiale. Sélecti
|
||||
## 🛠️ Dépannage
|
||||
|
||||
<details>
|
||||
<summary>Cliquez pour afficher les problèmes courants et les solutions</summary>
|
||||
<summary>Cliquez pour voir les problèmes courants et les solutions</summary>
|
||||
|
||||
- **Le tableau de format ne s'affiche pas :** Mettez à jour yt-dlp vers la dernière version et passez à yt-dlp tous les soirs.
|
||||
- **Échec du téléchargement :** Vérifiez votre connexion Internet et assurez-vous que la vidéo est disponible.
|
||||
- **Erreurs de téléchargement spécifiques :**
|
||||
- **Vidéos privées :** Utilisez l'authentification par cookie pour accéder au contenu privé.
|
||||
- **Contenu soumis à une limite d'âge :** Connectez-vous à votre compte YouTube pour visionner des vidéos soumises à une limite d'âge.
|
||||
- **Vidéos géo-bloquées :** Pensez à utiliser un VPN pour contourner les restrictions régionales.
|
||||
- **Vidéos supprimées/supprimées :** La vidéo n'est plus disponible sur YouTube.
|
||||
- **Diffusions en direct :** Les diffusions en direct ne peuvent pas être téléchargées ; attendez la fin du flux.
|
||||
- **Erreurs réseau :** Vérifiez votre connexion Internet et réessayez.
|
||||
- **URL invalides :** Assurez-vous que l'URL est correcte et qu'elle provient d'une plate-forme prise en charge.
|
||||
- **Contenu Premium :** Nécessite un abonnement YouTube Premium.
|
||||
- **Blocs de droits d'auteur :** Le contenu est bloqué en raison de restrictions de droits d'auteur.
|
||||
- **Séparez les fichiers vidéo et audio après le téléchargement :** Cela se produit lorsque FFmpeg est manquant ou n'est pas détecté. YTSage nécessite FFmpeg pour fusionner des flux vidéo et audio de haute qualité.
|
||||
- **Solution :** Assurez-vous que FFmpeg est installé et accessible dans le PATH de votre système. Pour les utilisateurs Windows, l'option la plus simple consiste à télécharger le fichier `YTSage-v<version>-ffmpeg.exe`, fourni avec FFmpeg.
|
||||
- **Le tableau des formats ne s'affiche pas :** Mettez à jour yt-dlp à la dernière version et passez à yt-dlp nightly.
|
||||
- **Échec du téléchargement :** Vérifiez votre connexion Internet et assurez-vous que la vidéo est disponible.
|
||||
- **Erreurs de téléchargement spécifiques :**
|
||||
- **Vidéos privées :** Utilisez l'authentification par cookies pour accéder au contenu privé.
|
||||
- **Contenu soumis à une limite d'âge :** Connectez-vous à votre compte YouTube pour visionner les vidéos avec limite d'âge.
|
||||
- **Vidéos géo-bloquées :** Envisagez d'utiliser un VPN pour contourner les restrictions régionales.
|
||||
- **Vidéos supprimées :** La vidéo n'est plus disponible sur YouTube.
|
||||
- **Directs (Live streams) :** Les directs ne peuvent pas être téléchargés ; attendez la fin de la diffusion.
|
||||
- **Erreurs réseau :** Vérifiez votre connexion Internet et réessayez.
|
||||
- **URL non valides :** Assurez-vous que l'URL est correcte et provient d'une plateforme prise en charge.
|
||||
- **Contenu Premium :** Nécessite un abonnement YouTube Premium.
|
||||
- **Blocages pour droits d'auteur :** Le contenu est bloqué en raison de restrictions de droits d'auteur.
|
||||
- **Fichiers vidéo et audio séparés après le téléchargement :** Cela se produit lorsque FFmpeg est manquant ou non détecté. YTSage nécessite FFmpeg pour fusionner les flux vidéo et audio de haute qualité.
|
||||
- **Solution :** Assurez-vous que FFmpeg est installé et accessible dans le PATH de votre système. Pour les utilisateurs Windows, l'option la plus simple est de télécharger le fichier `YTSage-v<version>-ffmpeg.exe`, qui est livré avec FFmpeg.
|
||||
|
||||
---
|
||||
|
||||
@@ -400,134 +405,134 @@ YTSage prend en charge **14 langues** pour une accessibilité mondiale. Sélecti
|
||||
|
||||
Certains logiciels antivirus peuvent signaler les fichiers `.exe` comme de faux positifs. Il s'agit d'une **limitation connue** des applications packagées.
|
||||
|
||||
**Pourquoi cela se produit :**
|
||||
- L'heuristique antivirus peut identifier à tort les exécutables compressés comme suspects
|
||||
**Pourquoi cela se produit :**
|
||||
- L'heuristique des antivirus peut identifier par erreur les exécutables packagés comme suspects.
|
||||
|
||||
**Alternatives sûres :**
|
||||
- ✅ **Utiliser l'installation pip :** `pip install ytsage` (recommandé)
|
||||
- ✅ **Construire à partir des sources** : en suivant ceci [guide](../.github/CI_CD_README.md)
|
||||
- ✅ **Liste blanche de l'application** dans votre logiciel antivirus
|
||||
**Alternatives sûres :**
|
||||
- ✅ **Utilisez l'installation pip :** `pip install ytsage` (recommandé)
|
||||
- ✅ **Compiler à partir des sources** : en suivant ce [guide](.github/CI_CD_README.md)
|
||||
- ✅ **Mettre l'application en liste blanche** dans votre logiciel antivirus.
|
||||
|
||||
#### 🍎 macOS : "L'application est endommagée et ne peut pas être ouverte"
|
||||
Si vous voyez cette erreur sur macOS Sonoma ou version ultérieure, vous devez supprimer l'attribut de quarantaine.
|
||||
#### 🍎 macOS : "L'application est endommagée et ne peut pas être ouverte"
|
||||
Si vous voyez cette erreur sur macOS Sonoma ou une version plus récente, vous devez supprimer l'attribut de quarantaine.
|
||||
|
||||
1. **Ouvrez le terminal** (vous pouvez le trouver en utilisant Spotlight).
|
||||
2. **Tapez la commande suivante** mais **n'appuyez pas** encore sur Entrée. Assurez-vous d'inclure l'espace à la fin :
|
||||
1. **Ouvrez le Terminal** (vous pouvez le trouver en utilisant Spotlight).
|
||||
2. **Tapez la commande suivante** mais **n'appuyez pas** encore sur Entrée. Assurez-vous d'inclure l'espace à la fin :
|
||||
```bash
|
||||
xattr -d com.apple.quarantine
|
||||
```
|
||||
3. **Faites glisser le fichier `YTSage.app`** depuis votre fenêtre du Finder et déposez-le directement dans la fenêtre du Terminal. Cela collera automatiquement le chemin de fichier correct.
|
||||
3. **Faites glisser le fichier `YTSage.app`** depuis votre fenêtre Finder et déposez-le directement dans la fenêtre du Terminal. Cela collera automatiquement le chemin correct du fichier.
|
||||
4. **Appuyez sur Entrée** pour exécuter la commande.
|
||||
5. **Essayez d'ouvrir à nouveau YTSage.app.** Il devrait maintenant se lancer correctement.
|
||||
|
||||
---
|
||||
|
||||
#### **Emplacements de configuration (avancé)**
|
||||
- **Windows :** `%LOCALAPPDATA%\YTSage`
|
||||
- **macOS :** `~/Library/Application Support/YTSage`
|
||||
- **Linux :** `~/.local/share/YTSage`
|
||||
#### **Emplacements de configuration (Avancé)**
|
||||
- **Windows :** `%LOCALAPPDATA%\YTSage`
|
||||
- **macOS :** `~/Library/Application Support/YTSage`
|
||||
- **Linux :** `~/.local/share/YTSage`
|
||||
|
||||
</details>
|
||||
|
||||
<a id="sponsor"></a>
|
||||
## 💖 Parrainer
|
||||
## 💖 Sponsor
|
||||
|
||||
Si YTSage vous fait gagner du temps, envisagez de parrainer le projet. Le parrainage permet de couvrir le temps de développement, les tests sur toutes les plateformes et les améliorations futures.
|
||||
Si YTSage vous fait gagner du temps, envisagez de sponsoriser le projet. Le parrainage aide à couvrir le temps de développement, les tests sur toutes les plateformes et les améliorations futures.
|
||||
|
||||
- Commanditaires GitHub : https://github.com/sponsors/oop7
|
||||
- Le lien du sponsor est également disponible directement dans l'application à partir de la boîte de dialogue À propos.
|
||||
- GitHub Sponsors : https://github.com/sponsors/oop7
|
||||
- Le lien de parrainage est également disponible directement dans l'application via la boîte de dialogue À propos.
|
||||
|
||||
[](https://github.com/sponsors/oop7)
|
||||
|
||||
<a id="contributing"></a>
|
||||
## 👥 Contribuer
|
||||
## 👥 Contribution
|
||||
|
||||
Nous apprécions les contributions ! Voici comment vous pouvez aider :
|
||||
Nous accueillons les contributions avec plaisir ! Voici comment vous pouvez aider :
|
||||
|
||||
1. 🍴 Forkez le référentiel
|
||||
2. 🌿 Créez votre branche de fonctionnalités :
|
||||
1. 🍴 Forkez le dépôt
|
||||
2. 🌿 Créez votre branche de fonctionnalité :
|
||||
```bash
|
||||
git checkout -b feature/AmazingFeature
|
||||
```
|
||||
3. 💾 Validez vos modifications :
|
||||
3. 💾 Committez vos modifications :
|
||||
```bash
|
||||
git commit -m 'Add some AmazingFeature'
|
||||
```
|
||||
4. 📤 Push vers l'agence :
|
||||
4. 📤 Pushez vers la branche :
|
||||
```bash
|
||||
git push origin feature/AmazingFeature
|
||||
```
|
||||
5. 🔄 Ouvrir une Pull Request
|
||||
5. 🔄 Ouvrez une Pull Request
|
||||
|
||||
### 🌍 Contribuer aux traductions
|
||||
|
||||
- Mettez à jour le fichier README localisé correspondant (par exemple `README.es.md`)
|
||||
- Mettez à jour le fichier README localisé correspondant (par exemple `readme-translations/README.fr.md`)
|
||||
- Gardez les chaînes de l'application synchronisées en éditant `ytsage/languages/<code>.json`
|
||||
- Si votre langue est manquante, partez de `README.md` et créez `README.<code>.md`
|
||||
- Si votre langue est manquante, commencez par `README.md` et créez `README.<code>.md`
|
||||
|
||||
<details>
|
||||
<summary>📂 Structure du projet</summary>
|
||||
|
||||
## YTSage – Structure du projet
|
||||
## YTSage - Structure du projet
|
||||
|
||||
Ce document décrit la structure des dossiers organisés de YTSage.
|
||||
Ce document décrit la structure organisée des dossiers de YTSage.
|
||||
|
||||
### 📁 Structure du projet
|
||||
|
||||
```
|
||||
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/ # Configuration GitHub
|
||||
│ ├── 📁 ISSUE_TEMPLATE/ # Modèles de tickets
|
||||
│ │ └── 🐛-bug-report.md # Modèle de rapport de bug
|
||||
│ ├─── 📁 workflows/ # Workflows GitHub Actions
|
||||
│ │ ├── build-linux.yml # Workflow de build Linux
|
||||
│ │ ├── build-macos.yml # Workflow de build macOS
|
||||
│ │ │── build-windows.yml # Workflow de build Windows
|
||||
| | └── release-all.yml # Workflow de release master
|
||||
│ └── 📄 CI_CD_README.md # Documentation CI/CD
|
||||
├── 📁 branding/ # Actifs de marque (Captures d'écran, SVGs)
|
||||
│ ├── 📁 icons/ # Icônes de l'application
|
||||
│ ├── 📁 screenshots/ # Captures d'écran pour la documentation
|
||||
│ └── 📁 svg/ # Actifs SVG
|
||||
├── 📄 LICENSE # Fichier de licence
|
||||
├── 📄 pyproject.toml # Métadonnées du projet et dépendances
|
||||
├── 📄 README.md # Documentation du projet
|
||||
├── 📄 requirements.txt # Dépendances Python (dev)
|
||||
└── 📁 ytsage/ # Paquet source
|
||||
├── 📁 assets/ # Actifs d'exécution
|
||||
│ ├── 📁 Icon/ # Icônes de l'application
|
||||
│ └── 📁 sound/ # Fichiers audio
|
||||
├── 📁 languages/ # Fichiers de localisation
|
||||
│ ├── 📄 ar.json # Traduction arabe
|
||||
│ ├── 📄 de.json # Traduction allemande
|
||||
│ ├── 📄 en.json # Traduction anglaise
|
||||
│ └── ... # Autres langues
|
||||
├── 📁 core/ # Logique métier principale
|
||||
│ ├── 📄 __init__.py # Initialisation du paquet core
|
||||
│ ├── 📄 ytsage_deno.py # Intégration Deno
|
||||
│ ├── 📄 ytsage_downloader.py # Fonctionnalité de téléchargement
|
||||
│ ├── 📄 ytsage_ffmpeg.py # Intégration FFmpeg
|
||||
│ ├── 📄 ytsage_utils.py # Fonctions utilitaires
|
||||
│ └── 📄 ytsage_yt_dlp.py # Intégration yt-dlp
|
||||
├── 📁 gui/ # Composants de l'interface utilisateur
|
||||
│ ├── 📄 __init__.py # Initialisation du paquet GUI
|
||||
│ ├── 📄 ytsage_gui_main.py # Fenêtre principale de l'application
|
||||
│ └── 📁 ytsage_gui_dialogs/ # Classes de dialogues
|
||||
├── 📁 utils/ # Modules utilitaires
|
||||
│ ├── 📄 __init__.py # Initialisation du paquet utils
|
||||
│ ├── 📄 ytsage_config_manager.py # Gestion de la configuration
|
||||
│ └── 📄 ytsage_logger.py # Utilitaires de log
|
||||
├── 📄 __init__.py # Point d'entrée du paquet
|
||||
└── 📄 main.py # Script d'exécution principal
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## ⭐️ Histoire des étoiles
|
||||
## ⭐️ Historique des étoiles
|
||||
|
||||
<div align="center">
|
||||
|
||||
## Historique des étoiles
|
||||
## Star History
|
||||
|
||||
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
||||
<picture>
|
||||
@@ -541,7 +546,7 @@ YTSage/
|
||||
|
||||
## 📜 Licence
|
||||
|
||||
Ce projet est sous licence MIT - voir le fichier [LICENSE](../LICENSE) pour plus de détails.
|
||||
Ce projet est sous licence MIT - voir le fichier [LICENSE](LICENSE) pour plus de détails.
|
||||
|
||||
## 🙏 Remerciements
|
||||
|
||||
@@ -550,7 +555,7 @@ Ce projet est sous licence MIT - voir le fichier [LICENSE](../LICENSE) pour plus
|
||||
|
||||
<div align="center">
|
||||
|
||||
<p>Un merci sincère à tous ceux qui ont contribué à ce projet en ouvrant un ticket pour suggérer une amélioration ou signaler un bug.</p>
|
||||
<p>Un grand merci à tous ceux qui ont contribué à ce projet en ouvrant un ticket pour suggérer une amélioration ou signaler un bug.</p>
|
||||
|
||||
<table>
|
||||
<tr class="section"><th colspan="2">Composants de base</th></tr>
|
||||
@@ -560,27 +565,28 @@ Ce projet est sous licence MIT - voir le fichier [LICENSE](../LICENSE) pour plus
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
||||
<td>Traitement multimédia</td>
|
||||
<td>Traitement média</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://deno.com/">Déno</a></td>
|
||||
<td><a href="https://deno.com/">Deno</a></td>
|
||||
<td>Runtime pour l'intégration avec yt-dlp</td>
|
||||
</tr>
|
||||
<tr class="section"><th colspan="2">Bibliothèques et frameworks</th></tr>
|
||||
<tr class="section"><th colspan="2">Bibliothèques et Frameworks</th></tr>
|
||||
<tr>
|
||||
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
||||
<td>Cadre GUI</td>
|
||||
<td>Framework GUI</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://python-pillow.org/">Oreiller</a></td>
|
||||
<td><a href="https://python-pillow.org/">Pillow</a></td>
|
||||
<td>Traitement d'images</td>
|
||||
</tr>
|
||||
<tr><td><a href="https://requests.readthedocs.io/">demandes</a></td>
|
||||
<td>Demandes HTTP</td>
|
||||
<tr>
|
||||
<td><a href="https://requests.readthedocs.io/">requests</a></td>
|
||||
<td>Requêtes HTTP</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://packaging.python.org/">emballage</a></td>
|
||||
<td>Version et gestion des packages</td>
|
||||
<td><a href="https://packaging.python.org/">packaging</a></td>
|
||||
<td>Gestion des versions et des paquets</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://python-markdown.github.io/">markdown</a></td>
|
||||
@@ -588,11 +594,11 @@ Ce projet est sous licence MIT - voir le fichier [LICENSE](../LICENSE) pour plus
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
||||
<td>Journalisation</td>
|
||||
<td>Logging</td>
|
||||
</tr>
|
||||
<tr class="section"><th colspan="2">Actifs et contributeurs</th></tr>
|
||||
<tr class="section"><th colspan="2">Actifs & Contributeurs</th></tr>
|
||||
<tr>
|
||||
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Nouvelle notification 09 par Universfield</a></td>
|
||||
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">New Notification 09 by Universfield</a></td>
|
||||
<td>Son de notification</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -605,7 +611,7 @@ Ce projet est sous licence MIT - voir le fichier [LICENSE](../LICENSE) pour plus
|
||||
|
||||
</details>
|
||||
|
||||
## ⚠️ Avis de non-responsabilité
|
||||
## ⚠️ Clause de non-responsabilité
|
||||
|
||||
Cet outil est destiné à un usage personnel uniquement. Veuillez respecter les conditions d'utilisation de YouTube et les droits des créateurs de contenu.
|
||||
|
||||
@@ -613,6 +619,6 @@ Cet outil est destiné à un usage personnel uniquement. Veuillez respecter les
|
||||
|
||||
<div align="center">
|
||||
|
||||
Réalisé avec ❤️ par [oop7](https://github.com/oop7)
|
||||
Fait avec ❤️ par [oop7](https://github.com/oop7)
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user