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:
+282
-276
@@ -12,33 +12,33 @@
|
|||||||
[](https://pypi.org/project/ytsage/)
|
[](https://pypi.org/project/ytsage/)
|
||||||
[](https://github.com/sponsors/oop7)
|
[](https://github.com/sponsors/oop7)
|
||||||
|
|
||||||
**أداة تنزيل حديثة من YouTube بواجهة PySide6 نظيفة.**
|
**برنامج تحميل من يوتيوب عصري بواجهة PySide6 أنيقة.**
|
||||||
قم بتنزيل مقاطع الفيديو بأي جودة، واستخرج الصوت، واجلب الترجمات، والمزيد.
|
قم بتحميل الفيديوهات بأي جودة، استخراج الصوت، جلب الترجمات، والمزيد.
|
||||||
|
|
||||||
### 🌍 اقرأني اللغات
|
### 🌍 لغات README
|
||||||
|
|
||||||
الإنجليزية: [EN](../README.md)
|
الإنجليزية: [EN](../README.md)
|
||||||
| العربية: [AR](README.ar.md)
|
| العربية: [AR](README.ar.md)
|
||||||
| الألمانية: [DE](README.de.md)
|
| الألمانية: [DE](README.de.md)
|
||||||
| الاسبانية: [ES](README.es.md)
|
| الإسبانية: [ES](README.es.md)
|
||||||
| الفرنسية: [FR](README.fr.md)
|
| الفرنسية: [FR](README.fr.md)
|
||||||
| الهندية: [HI](README.hi.md)
|
| الهندية: [HI](README.hi.md)
|
||||||
| البهاسا الإندونيسية: [ID](README.id.md)
|
| الإندونيسية: [ID](README.id.md)
|
||||||
| إيطاليانو: [IT](README.it.md)
|
| الإيطالية: [IT](README.it.md)
|
||||||
| العنوان: [JA](README.ja.md)
|
| اليابانية: [JA](README.ja.md)
|
||||||
| بولسكي: [PL](README.pl.md)
|
| البولندية: [PL](README.pl.md)
|
||||||
| البرتغالية: [PT](README.pt.md)
|
| البرتغالية: [PT](README.pt.md)
|
||||||
| Русский: [RU](README.ru.md)
|
| الروسية: [RU](README.ru.md)
|
||||||
| التركية: [TR](README.tr.md)
|
| التركية: [TR](README.tr.md)
|
||||||
| 中文: [ZH](README.zh.md)
|
| الصينية: [ZH](README.zh.md)
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="#installation">التثبيت</a> •
|
<a href="#installation">التثبيت</a> •
|
||||||
<a href="#features">المميزات</a> •
|
<a href="#features">المميزات</a> •
|
||||||
<a href="#usage">الاستخدام</a> •
|
<a href="#usage">الاستخدام</a> •
|
||||||
<a href="#screenshots">لقطات الشاشة</a> •
|
<a href="#screenshots">لقطات الشاشة</a> •
|
||||||
<a href="#troubleshooting">استكشاف الأخطاء وإصلاحها</a> •
|
<a href="#troubleshooting">استكشاف الأخطاء</a> •
|
||||||
<a href="#sponsor">Sponsor</a> •
|
<a href="#sponsor">الدعم</a> •
|
||||||
<a href="#contributing">المساهمة</a>
|
<a href="#contributing">المساهمة</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -49,44 +49,45 @@
|
|||||||
<a id="why-ytsage"></a>
|
<a id="why-ytsage"></a>
|
||||||
## ❓ لماذا YTSage؟
|
## ❓ لماذا YTSage؟
|
||||||
|
|
||||||
تم تصميم YTSage للمستخدمين الذين يريدون **برنامج تنزيل YouTube بسيطًا وقويًا**. على عكس الأدوات الأخرى، فهو يقدم:
|
تم تصميم YTSage للمستخدمين الذين يريدون **أداة تحميل يوتيوب بسيطة لكن قوية**. على عكس الأدوات الأخرى، فإنه يوفر:
|
||||||
|
|
||||||
- واجهة PySide6 نظيفة وحديثة
|
- واجهة PySide6 عصرية ونظيفة
|
||||||
- التنزيلات بنقرة واحدة للفيديو والصوت والترجمات
|
- تحميل بنقرة واحدة للفيديو والصوت والترجمات
|
||||||
- ميزات متقدمة مثل SponsorBlock ودمج الترجمة واختيار قائمة التشغيل
|
- ميزات متقدمة مثل SponsorBlock، دمج الترجمات، واختيار قوائم التشغيل
|
||||||
- الوضع العام الاختياري للمواقع التي تدعم yt-dlp خارج YouTube
|
- وضع عام (Generic Mode) اختياري للمواقع التي يدعمها yt-dlp بخلاف يوتيوب
|
||||||
- دعم عبر الأنظمة الأساسية وسهولة التثبيت
|
- دعم منصات متعددة وتثبيت سهل
|
||||||
|
|
||||||
<a id="features"></a>
|
<a id="features"></a>
|
||||||
## ✨المميزات
|
## ✨ المميزات
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
| الميزات الأساسية | الميزات المتقدمة | ميزات إضافية |
|
| الميزات الأساسية | الميزات المتقدمة | ميزات إضافية |
|
||||||
|-----------------------------------|--------------------------------------------------------|-----|
|
|-----------------------------------|-----------------------------------------|------------------------------------|
|
||||||
| 🎥 تنسيق الجدول | 🚫 تكامل SponsorBlock | 🎞️ عرض FPS/HDR |
|
| 🎥 جدول الصيغ | 🚫 تكامل SponsorBlock | 🎞️ عرض FPS/HDR |
|
||||||
| 🎵 استخراج الصوت | 📝 تحديد ودمج الترجمة المتعددة | 🔄 التحديث التلقائي yt-dlp |
|
| 🎵 استخراج الصوت | 📝 اختيار ودمج الترجمات | 🔄 تحديث تلقائي لـ yt-dlp |
|
||||||
| ✨ واجهة مستخدم بسيطة | 💾 حفظ الوصف والصورة المصغرة | 🛠️ كشف FFmpeg/yt-dlp/Deno |
|
| ✨ واجهة مستخدم بسيطة | 💾 حفظ الوصف والصورة المصغرة | 🛠️ اكتشاف FFmpeg/yt-dlp/Deno |
|
||||||
| 📋 دعم قائمة التشغيل والمحدد | 🚀 محدد السرعة | ⚙️ أوامر مخصصة |
|
| 📋 دعم ومحدد قوائم التشغيل | 🚀 محدد السرعة | ⚙️ أوامر مخصصة |
|
||||||
| 📑 تضمين الفصول | ✂️ تقليم أقسام الفيديو | 🍪 تسجيل الدخول باستخدام ملفات تعريف الارتباط |
|
| 📑 دمج الفصول | ✂️ قص أجزاء الفيديو | 🍪 تسجيل الدخول بالكوكيز |
|
||||||
| 📜 تحميل التاريخ | 🔄 إطلاق اختيار القناة | 🌐 دعم الوكيل |
|
| 📜 سجل التحميلات | 🔄 اختيار قناة الإصدار | 🌐 دعم البروكسي |
|
||||||
| 🎚️ تحويل تنسيق الصوت | 🎬 إعدادات تنسيق الفيديو | 🆙 علامة تبويب التحديث المدمجة |
|
| 🎚️ تحويل صيغ الصوت | 🎬 إعدادات صيغ الفيديو | 🆙 تبويب تحديث مدمج |
|
||||||
| 🌍 الوضع العام | 🔊 تسوية الصوت (EBU R128) | 🌍 التعريب بـ 14 لغة |
|
| 🌍 الوضع العام | 🔊 تطبيع الصوت (EBU R128) | 🌍 دعم 14 لغة |
|
||||||
|
| 💾 تصدير قوائم التشغيل | ⚙️ الجودة والترجمات الافتراضية | |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a id="installation"></a>
|
<a id="installation"></a>
|
||||||
## 🚀التركيب
|
## 🚀 التثبيت
|
||||||
|
|
||||||
### ⚡ التثبيت السريع (موصى به)
|
### ⚡ التثبيت السريع (موصى به)
|
||||||
|
|
||||||
تثبيت YTSage من PyPI:
|
تثبيت YTSage عبر PyPI:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install ytsage
|
pip install ytsage
|
||||||
```
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🔄 تحديث التثبيت الحالي</summary>
|
<summary>🔄 تحديث نسخة مثبتة</summary>
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install --upgrade ytsage
|
pip install --upgrade ytsage
|
||||||
@@ -100,73 +101,73 @@ pip install --upgrade ytsage
|
|||||||
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>
|
<details>
|
||||||
<summary>🛠️ خطوات التثبيت</summary>
|
<summary>🛠️ خطوات التثبيت</summary>
|
||||||
|
|
||||||
1. **مثبت EXE (`.exe`)**: انقر نقرًا مزدوجًا فوق الملف واتبع معالج الإعداد.
|
1. **مثبت EXE (`.exe`)**: انقر نقرًا مزدوجًا على الملف واتبع معالج التثبيت.
|
||||||
2. **النسخة المحمولة (`.zip`)**: قم باستخراج الأرشيف إلى الموقع المطلوب وتشغيل `ytsage.exe`.
|
2. **النسخة المحمولة (`.zip`)**: استخرج الملف في أي مكان وشغل `ytsage.exe`.
|
||||||
3. **FFmpeg Bundled**: اختر إصدارات FFmpeg المجمعة إذا لم يكن FFmpeg مثبتًا على نظامك.
|
3. **FFmpeg المدمج**: اختر النسخة التي تحتوي على FFmpeg إذا لم يكن مثبتًا على نظامك.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
#### 🐧 لينكس
|
#### 🐧 Linux
|
||||||
|
|
||||||
| تنسيق | الوصف |
|
| الصيغة | الوصف |
|
||||||
|--------|------------|
|
|--------|-------------|
|
||||||
|  | حزمة دبيان |
|
|  | حزمة Debian |
|
||||||
|  | صورة التطبيق المحمولة |
|
|  | AppImage، محمولة |
|
||||||
|  | حزمة دورة في الدقيقة |
|
|  | حزمة RPM |
|
||||||
|  | حزمة فلاتباك |
|
|  | Flatpak Bundle |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ خطوات التثبيت</summary>
|
<summary>🛠️ خطوات التثبيت</summary>
|
||||||
|
|
||||||
- **ديب (`.deb`)**:
|
- **DEB (`.deb`)**:
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i ytsage_*.deb
|
sudo dpkg -i ytsage_*.deb
|
||||||
sudo apt-get install -f # Fix missing dependencies if any
|
sudo apt-get install -f # لإصلاح الاعتمادات الناقصة إذا لزم الأمر
|
||||||
```
|
```
|
||||||
- **عدد الدورات في الدقيقة (`.rpm`)**:
|
- **RPM (`.rpm`)**:
|
||||||
```bash
|
```bash
|
||||||
sudo rpm -i ytsage-*.rpm
|
sudo rpm -i ytsage-*.rpm
|
||||||
```
|
```
|
||||||
- **صورة التطبيق (`.AppImage`)**:
|
- **AppImage (`.AppImage`)**:
|
||||||
```bash
|
```bash
|
||||||
chmod +x YTSage-*.AppImage
|
chmod +x YTSage-*.AppImage
|
||||||
./YTSage-*.AppImage
|
./YTSage-*.AppImage
|
||||||
```
|
```
|
||||||
- **Flatpak**: اتبع التعليمات الموجودة على Flathub أو قم بتشغيل:
|
- **Flatpak**: اتبع التعليمات على Flathub أو شغل:
|
||||||
```bash
|
```bash
|
||||||
flatpak install flathub io.github.oop7.ytsage
|
flatpak install flathub io.github.oop7.ytsage
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
#### 🍎 ماك
|
#### 🍎 macOS
|
||||||
|
|
||||||
| تنسيق | الوصف |
|
| الصيغة | الوصف |
|
||||||
|--------|------------|
|
|--------|-------------|
|
||||||
|  | تطبيق مضغوط لأبل سيليكون |
|
|  | تطبيق مضغوط لـ Apple Silicon |
|
||||||
|  | مثبت صورة القرص لـ Apple Silicon |
|
|  | صورة قرص لـ Apple Silicon |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ خطوات التثبيت</summary>
|
<summary>🛠️ خطوات التثبيت</summary>
|
||||||
|
|
||||||
- **مثبت DMG (`.dmg`)**: انقر نقرًا مزدوجًا للتثبيت، ثم اسحب `YTSage.app` إلى مجلد التطبيقات.
|
- **مثبت DMG (`.dmg`)**: انقر نقرًا مزدوجًا لفتح القرص، ثم اسحب `YTSage.app` إلى مجلد Applications.
|
||||||
- **أرشيف التطبيقات (`.zip`)**: استخرج الملف المضغوط وانقل `YTSage.app` إلى مجلد التطبيقات.
|
- **تطبيق مضغوط (`.zip`)**: استخرج الملف وانقل `YTSage.app` إلى مجلد Applications.
|
||||||
|
|
||||||
*ملاحظة: إذا واجهت خطأ "التطبيق تالف"، راجع [macOS troubleshooting section](#troubleshooting) أدناه.*
|
*ملاحظة: إذا واجهت خطأ "التطبيق تالف"، راجع قسم استكشاف الأخطاء لنظام macOS أدناه.*
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -174,28 +175,28 @@ ytsage
|
|||||||
<details>
|
<details>
|
||||||
<summary>💻 التثبيت اليدوي من المصدر</summary>
|
<summary>💻 التثبيت اليدوي من المصدر</summary>
|
||||||
|
|
||||||
### 1. استنساخ المستودع
|
### 1. نسخ المستودع
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/oop7/YTSage.git
|
git clone https://github.com/oop7/YTSage.git
|
||||||
cd YTSage
|
cd YTSage
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. تثبيت التبعيات
|
### 2. تثبيت الاعتمادات
|
||||||
|
|
||||||
#### ⚡ مع الأشعة فوق البنفسجية
|
#### ⚡ باستخدام uv
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uv pip install .
|
uv pip install .
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 📦 أو بالنقطة القياسية
|
#### 📦 أو باستخدام pip العادي
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install .
|
pip install .
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. قم بتشغيل التطبيق
|
### 3. تشغيل التطبيق
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python -m ytsage.main
|
python -m ytsage.main
|
||||||
@@ -209,325 +210,329 @@ python -m ytsage.main
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="../branding/screenshots/Download-Settings.png" alt="Download Settings" width="400"/></td>
|
<td><img src="../branding/screenshots/Download-Settings.png" alt="إعدادات التحميل" width="400"/></td>
|
||||||
<td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td>
|
<td><img src="../branding/screenshots/playlist.png" alt="تحميل قوائم التشغيل" width="400"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><em>إعدادات التحميل</em></td>
|
<td align="center"><em>إعدادات التحميل</em></td>
|
||||||
<td align="center"><em>تنزيل قائمة التشغيل</em></td>
|
<td align="center"><em>تحميل قوائم التشغيل</em></td>
|
||||||
</tr>
|
</tr>
|
||||||
<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/audio_format.png" alt="اختيار صيغة الصوت" width="400"/></td>
|
||||||
<td><img src="../branding/screenshots/Custom-Option.png" alt="Custom Options" width="400"/></td>
|
<td><img src="../branding/screenshots/Custom-Option.png" alt="خيارات مخصصة" width="400"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><em>تنسيق الصوت</em></td>
|
<td align="center"><em>صيغة الصوت</em></td>
|
||||||
<td align="center"><em>خيارات مخصصة</em></td>
|
<td align="center"><em>خيارات مخصصة</em></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div><a id="usage"></a>
|
</div>
|
||||||
|
|
||||||
|
<a id="usage"></a>
|
||||||
## 📖 الاستخدام
|
## 📖 الاستخدام
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🎯 الاستخدام الأساسي</summary>
|
<summary>🎯 الاستخدام الأساسي</summary>
|
||||||
|
|
||||||
1. ** إطلاق YTSage **
|
1. **شغل YTSage**
|
||||||
2. **الصق عنوان URL لموقع YouTube** (أو استخدم الزر "لصق عنوان URL")
|
2. **الصق رابط يوتيوب** (أو استخدم زر "Paste URL")
|
||||||
3. **انقر على "تحليل"**
|
3. **اضغط على "Analyze"**
|
||||||
4. **حدد التنسيق:**
|
4. **اختر الصيغة:**
|
||||||
- `Video` لتنزيل الفيديو
|
- `Video` للتحميلات المرئية
|
||||||
- `Audio Only` لاستخراج الصوت
|
- `Audio Only` لاستخراج الصوت فقط
|
||||||
5. **اختر الخيارات:**
|
5. **اختر الخيارات:**
|
||||||
- تمكين الترجمة واختيار اللغة
|
- تفعيل الترجمات واختيار اللغة
|
||||||
- تمكين دمج الترجمة
|
- تفعيل دمج الترجمات
|
||||||
- حفظ الصورة المصغرة
|
- حفظ الصورة المصغرة
|
||||||
- إزالة شرائح الراعي
|
- حذف المقاطع الإعلانية (Sponsor segments)
|
||||||
- حفظ الوصف
|
- حفظ الوصف
|
||||||
- تضمين الفصول
|
- دمج الفصول (Chapters)
|
||||||
6. **حدد دليل المخرجات**
|
6. **اختر مجلد الحفظ**
|
||||||
7. **انقر على "تنزيل"**
|
7. **اضغط على "Download"**
|
||||||
|
|
||||||
> 💡 دليل التنزيل الافتراضي هو مجلد "التنزيلات" الخاص بالمستخدم.
|
> 💡 مجلد التحميل الافتراضي هو مجلد "Downloads" للمستخدم.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📋 تنزيل قائمة التشغيل</summary>
|
<summary>📋 تحميل قائمة تشغيل (Playlist)</summary>
|
||||||
|
|
||||||
1. **لصق عنوان URL لقائمة التشغيل**
|
1. **الصق رابط قائمة التشغيل**
|
||||||
2. **انقر على "تحليل"**
|
2. **اضغط على "Analyze"**
|
||||||
3. **حدد مقاطع الفيديو من محدد قائمة التشغيل (اختياري، الإعداد الافتراضي هو الكل)**
|
3. **اختر الفيديوهات من محدد القائمة (اختياري، يتم اختيار الكل تلقائيًا)**
|
||||||
4. **اختر التنسيق/الجودة المطلوبة**
|
4. **اختر الصيغة/الجودة المطلوبة**
|
||||||
5. **انقر على "تنزيل"**
|
5. **اضغط على "Download"**
|
||||||
|
|
||||||
> 💡 يتعامل التطبيق تلقائيًا مع قائمة انتظار التنزيل
|
> 💡 التطبيق يتعامل مع طابور التحميل تلقائيًا، ويمكنك تصدير مدخلات القائمة كملفات `.txt` أو `.csv` أو `.m3u` أو `.json`.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<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`.
|
1. افتح `Download Settings`.
|
||||||
2. تفعيل `Generic Mode`.
|
2. فعل `Generic Mode`.
|
||||||
3. الصق عنوان URL لفيديو أو قائمة تشغيل مدعومة غير تابعة لـ YouTube.
|
3. الصق رابط فيديو أو قائمة تشغيل مدعومة غير يوتيوب.
|
||||||
4. اضغط على `Analyze`.
|
4. اضغط على `Analyze`.
|
||||||
5. اختر التنسيق وقم بتنزيله كالمعتاد.
|
5. اختر الصيغة وحمل كالمعتاد.
|
||||||
|
|
||||||
ملاحظات:
|
ملاحظات:
|
||||||
|
|
||||||
- الوضع العام يغير فقط التحقق من صحة عنوان URL داخل YTSage. يجب أن يظل الموقع المستهدف مدعومًا بإصدار yt-dlp المثبت لديك.
|
- الوضع العام يغير فقط التحقق من الرابط داخل YTSage. يجب أن يكون الموقع مدعومًا من نسخة yt-dlp المثبتة لديك.
|
||||||
- تتطلب بعض المواقع ملفات تعريف الارتباط، أو جلسة تسجيل دخول، أو وكيلًا، أو وسائط yt-dlp إضافية اعتمادًا على المستخرج.
|
- بعض المواقع تتطلب كوكيز، تسجيل دخول، بروكسي أو وسائط yt-dlp إضافية حسب نوع الموقع.
|
||||||
- إذا فشل أحد المواقع، فقم بتحديث yt-dlp أولاً من علامة تبويب المحدث المضمنة قبل الإبلاغ عن المشكلة.
|
- إذا فشل موقع ما، حدث yt-dlp أولاً من تبويب التحديث المدمج قبل الإبلاغ عن المشكلة.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🧰 خيارات الوسائط والتنزيل</summary>
|
<summary>🧰 خيارات الميديا والتحميل</summary>
|
||||||
|
|
||||||
- **خيارات الترجمة:** تصفية اللغات وتضمين الترجمة في ملف الفيديو
|
- **خيارات الترجمة:** تصفية اللغات وتضمين الترجمات في ملف الفيديو.
|
||||||
- **دمج الترجمة:** دمج الترجمات في ملف الفيديو للحصول على ترجمات مضمنة
|
- **دمج الترجمات:** دمج الترجمات داخل ملف الفيديو لتكون ترجمة مدمجة (Hardcoded).
|
||||||
- **حفظ الوصف:** احفظ وصف الفيديو كملف نصي
|
- **حفظ الوصف:** حفظ وصف الفيديو كملف نصي.
|
||||||
- **حفظ الصورة المصغرة:** احفظ الصورة المصغرة للفيديو كملف صورة
|
- **حفظ الصورة المصغرة:** حفظ صورة الفيديو كملف صورة.
|
||||||
- **تضمين الفصول:** تضمين علامات الفصل كبيانات وصفية لمشغلات الفيديو المتوافقة
|
- **دمج الفصول:** تضمين علامات الفصول كبيانات وصفية لمشغلات الفيديو المتوافقة.
|
||||||
- **إزالة شرائح الجهات الراعية:** قم بإزالة شرائح الجهات الراعية من الفيديو باستخدام SponsorBlock
|
- **حذف مقاطع الرعاة:** حذف الأجزاء الإعلانية من الفيديو باستخدام SponsorBlock.
|
||||||
- **قص الفيديو:** قم بتنزيل أجزاء محددة فقط من الفيديو عن طريق تحديد نطاقات زمنية بتنسيق `HH:MM:SS`
|
- **قص الفيديو:** تحميل أجزاء محددة فقط من الفيديو عن طريق تحديد أوقات البداية والنهاية بصيغة `HH:MM:SS`.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<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>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌐 الوصول والشبكة</summary>
|
<summary>🌐 الوصول والشبكة</summary>
|
||||||
|
|
||||||
- **تسجيل الدخول باستخدام ملفات تعريف الارتباط:** قم بتسجيل الدخول إلى YouTube باستخدام ملفات تعريف الارتباط للوصول إلى المحتوى الخاص.
|
- **تسجيل الدخول بالكوكيز:** سجل الدخول ليوتيوب باستخدام الكوكيز للوصول للمحتوى الخاص.
|
||||||
كيفية استخدامه:
|
كيفية الاستخدام:
|
||||||
1. **موصى به:** استخدم خيار `Extract cookies from browser` المدمج في التطبيق، ثم حدد المتصفح الخاص بك وملفًا شخصيًا بشكل اختياري.
|
1. **موصى به:** استخدم خيار `Extract cookies from browser` المدمج في التطبيق، ثم اختر المتصفح والملف الشخصي.
|
||||||
2. بدلاً من ذلك، قم باستخراج ملفات تعريف الارتباط يدويًا:
|
2. بدلاً من ذلك، استخرج الكوكيز يدويًا:
|
||||||
أ. قم بتصدير ملفات تعريف الارتباط من متصفحك باستخدام ملحق مثل [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
|
أ. صدر الكوكيز من متصفحك باستخدام إضافة مثل [cookie-editor](https://github.com/moustachauve/cookie-editor)
|
||||||
ب. انسخ ملفات تعريف الارتباط بتنسيق Netscape
|
ب. انسخ الكوكيز بصيغة Netscape
|
||||||
ج. أنشئ ملفًا باسم `cookies.txt` والصق ملفات تعريف الارتباط فيه
|
ج. أنشئ ملفًا باسم `cookies.txt` والصق الكوكيز فيه
|
||||||
د. حدد الملف `cookies.txt` في التطبيق
|
د. اختر ملف `cookies.txt` في التطبيق
|
||||||
- **دعم الوكيل:** استخدم خادمًا وكيلاً للتنزيلات، على سبيل المثال `http://<proxy-server>:<port>`
|
- **دعم البروكسي:** استخدم خادم بروكسي للتحميلات، مثلاً `http://<proxy-server>:<port>`
|
||||||
- **الوضع العام:** اسمح لـ YTSage بالتحليل والتنزيل من مواقع غير تابعة لـ YouTube والتي يدعمها yt-dlp. قم بتمكينه من **إعدادات التنزيل → الوضع العام**.
|
- **الوضع العام:** يسمح لـ YTSage بتحليل والتحميل من المواقع غير يوتيوب التي يدعمها yt-dlp. فعله من **Download Settings → Generic Mode**.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ الأدوات والصيانة</summary>
|
<summary>🛠️ الأدوات والصيانة</summary>
|
||||||
|
|
||||||
- **الأوامر المخصصة:** الوصول إلى ميزات yt-dlp المتقدمة عبر وسيطات سطر الأوامر
|
- **أوامر مخصصة:** الوصول لميزات yt-dlp المتقدمة عبر وسائط موجه الأوامر.
|
||||||
- **علامة تبويب التحديث:** إدارة أدوات التحديث المضمنة من مكان واحد في الخيارات المخصصة:
|
- **تبويب التحديث:** إدارة أدوات التحديث من مكان واحد في الخيارات المخصصة:
|
||||||
- **تحديثات yt-dlp:** تحقق من وجود تحديثات وقم بالتبديل بين قنوات الإصدار الثابت وقنوات الإصدار الليلي
|
- **تحديثات yt-dlp:** التحقق من التحديثات والتبديل بين القناة المستقرة (Stable) والليلية (Nightly).
|
||||||
- **مدقق إصدار FFmpeg:** تحقق من إصدار FFmpeg الخاص بك وافتح أدلة التثبيت
|
- **فاحص نسخة FFmpeg:** التحقق من نسخة FFmpeg وعرض أدلة التثبيت.
|
||||||
- **تحديثات Deno:** التحقق من وقت تشغيل Deno وتحديثه
|
- **تحديثات Deno:** التحقق وتحديث محرك Deno.
|
||||||
- **اكتشاف FFmpeg/yt-dlp/Deno:** اكتشاف مسارات وإصدارات FFmpeg وyt-dlp وDeno تلقائيًا من مربع الحوار "حول".
|
- **اكتشاف FFmpeg/yt-dlp/Deno:** يكتشف تلقائيًا المسارات والنسخ لـ FFmpeg و yt-dlp و Deno من نافذة "About".
|
||||||
- **سجل التنزيلات:** اعرض التنزيلات السابقة باستخدام الصور المصغرة والحالات من زر **السجل**.
|
- **سجل التحميلات:** عرض التحميلات السابقة مع الصور المصغرة والحالة من زر **History**.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌍 التعريب</summary>
|
<summary>🌍 الترجمة</summary>
|
||||||
|
|
||||||
يدعم YTSage **14 لغة** لسهولة الوصول إليها في جميع أنحاء العالم. اختر لغتك المفضلة من **خيارات مخصصة → اللغة**.
|
يدعم YTSage **14 لغة** للوصول العالمي. اختر لغتك المفضلة من **Custom Options → Language**.
|
||||||
|
|
||||||
### اللغات المدعومة
|
### اللغات المدعومة
|
||||||
|
|
||||||
| اللغة | الكود | اللغة | الكود |
|
| اللغة | الرمز | اللغة | الرمز |
|
||||||
|----------|------|---------|------|
|
|----------|------|----------|------|
|
||||||
| 🇺🇸 إنجليزي | `en` | 🇪🇸 الاسبانية | `es` |
|
| 🇺🇸 الإنجليزية | `en` | 🇪🇸 الإسبانية | `es` |
|
||||||
| 🇸🇦 عربي | `ar` | 🇫🇷 فرنسي | `fr` |
|
| 🇸🇦 العربية | `ar` | 🇫🇷 الفرنسية | `fr` |
|
||||||
| 🇩🇪 ألماني | `de` | 🇮🇳 هندي | `hi` |
|
| 🇩🇪 الألمانية | `de` | 🇮🇳 الهندية | `hi` |
|
||||||
| 🇮🇩 إندونيسي | `id` | 🇮🇹 إيطالي | `it` |
|
| 🇮🇩 الإندونيسية | `id` | 🇮🇹 الإيطالية | `it` |
|
||||||
| 🇯🇵 ياباني | `ja` | 🇵🇱 بولندية | `pl` |
|
| 🇯🇵 اليابانية | `ja` | 🇵🇱 البولندية | `pl` |
|
||||||
| 🇧🇷 برتغالية | `pt` | 🇷🇺 روسي | `ru` |
|
| 🇧🇷 البرتغالية | `pt` | 🇷🇺 الروسية | `ru` |
|
||||||
| 🇹🇷 تركي | `tr` | 🇨🇳 صيني | `zh` |
|
| 🇹🇷 التركية | `tr` | 🇨🇳 الصينية | `zh` |
|
||||||
|
|
||||||
### ترجمات README
|
### تراجم README
|
||||||
|
|
||||||
| اللغة | ملف | اللغة | ملف |
|
| اللغة | الملف | اللغة | الملف |
|
||||||
|----------|------|---------|------|
|
|----------|------|----------|------|
|
||||||
| 🇺🇸 إنجليزي | [README.md](../README.md) | 🇪🇸 الاسبانية | [README.es.md](README.es.md)
|
| 🇺🇸 الإنجليزية | [README.md](README.md) | 🇪🇸 الإسبانية | [README.es.md](README.es.md) |
|
||||||
| 🇸🇦 عربي | [README.ar.md](README.ar.md) | 🇫🇷 فرنسي | [README.fr.md](README.fr.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.de.md](README.de.md) | 🇮🇳 الهندية | [README.hi.md](README.hi.md) |
|
||||||
| 🇮🇩 إندونيسي | [README.id.md](README.id.md) | 🇮🇹 إيطالي | [README.it.md](README.it.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.ja.md](README.ja.md) | 🇵🇱 البولندية | [README.pl.md](README.pl.md) |
|
||||||
| 🇧🇷 برتغالية | [README.pt.md](README.pt.md) | 🇷🇺 روسي | [README.ru.md](README.ru.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.tr.md](README.tr.md) | 🇨🇳 الصينية | [README.zh.md](README.zh.md) |
|
||||||
|
|
||||||
> 💡 **هل تريد المساهمة في الترجمة؟** راجع قسم [Contributing](#contributing) لمساعدتنا في إضافة المزيد من اللغات!
|
> 💡 **هل تريد المساعدة في الترجمة؟** راجع قسم [المساهمة](#contributing) لمساعدتنا في إضافة المزيد من اللغات!
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="troubleshooting"></a>
|
<a id="troubleshooting"></a>
|
||||||
## 🛠️ استكشاف الأخطاء وإصلاحها
|
## 🛠️ استكشاف الأخطاء
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>انقر لعرض المشكلات والحلول الشائعة</summary>
|
<summary>اضغط لعرض المشاكل الشائعة وحلولها</summary>
|
||||||
|
|
||||||
- **تنسيق الجدول لا يتم عرضه:** قم بتحديث yt-dlp إلى الإصدار الأحدث، ثم قم بالتبديل إلى yt-dlp ليلاً.
|
- **جدول الصيغ لا يظهر:** حدث yt-dlp لأحدث نسخة وانتقل للقناة الليلية (Nightly).
|
||||||
- **فشل التنزيل:** تحقق من اتصالك بالإنترنت وتأكد من توفر الفيديو.
|
- **فشل التحميل:** تحقق من اتصال الإنترنت وتأكد أن الفيديو متاح.
|
||||||
- **أخطاء تنزيل محددة:**
|
- **أخطاء تحميل محددة:**
|
||||||
- **مقاطع الفيديو الخاصة:** استخدم مصادقة ملفات تعريف الارتباط للوصول إلى المحتوى الخاص.
|
- **فيديوهات خاصة:** استخدم الكوكيز للوصول للمحتوى الخاص.
|
||||||
- **محتوى مقيد بالفئة العمرية:** قم بتسجيل الدخول إلى حساب YouTube لعرض مقاطع الفيديو المقيدة بالفئة العمرية.
|
- **محتوى مقيد بالعمر:** سجل دخولك ليوتيوب لمشاهدة الفيديوهات المقيدة.
|
||||||
- **مقاطع الفيديو المحظورة جغرافيًا:** فكر في استخدام VPN لتجاوز القيود الإقليمية.
|
- **فيديوهات محظورة جغرافيًا:** استخدم VPN لتجاوز القيود الإقليمية.
|
||||||
- **مقاطع الفيديو المحذوفة/المحذوفة:** لم يعد الفيديو متاحًا على YouTube.
|
- **فيديوهات محذوفة:** الفيديو لم يعد متاحًا على يوتيوب.
|
||||||
- **البث المباشر:** لا يمكن تنزيل البث المباشر؛ انتظر حتى ينتهي الدفق.
|
- **البث المباشر (Live):** لا يمكن تحميل البث المباشر أثناء عرضه؛ انتظر حتى ينتهي.
|
||||||
- **أخطاء الشبكة:** تحقق من اتصالك بالإنترنت وحاول مرة أخرى.
|
- **أخطاء الشبكة:** تحقق من اتصالك وحاول مرة أخرى.
|
||||||
- **عناوين URL غير صالحة:** تأكد من أن عنوان URL صحيح ومن نظام أساسي مدعوم.
|
- **روابط غير صالحة:** تأكد من صحة الرابط وأنه من منصة مدعومة.
|
||||||
- **المحتوى المميز:** يتطلب عضوية YouTube Premium.
|
- **محتوى Premium:** يتطلب اشتراك يوتيوب بريميوم.
|
||||||
- **حظر حقوق الطبع والنشر:** تم حظر المحتوى بسبب قيود حقوق الطبع والنشر.
|
- **حظر حقوق الملكية:** المحتوى محظور بسبب قيود حقوق النشر.
|
||||||
- **فصل ملفات الفيديو والصوت بعد التنزيل:** يحدث هذا عندما يكون FFmpeg مفقودًا أو لم يتم اكتشافه. يتطلب YTSage FFmpeg لدمج تدفقات الفيديو والصوت عالية الجودة.
|
- **ملفات الفيديو والصوت منفصلة بعد التحميل:** يحدث هذا عند فقدان FFmpeg أو عدم اكتشافه. يتطلب YTSage برنامج FFmpeg لدمج مسارات الفيديو والصوت عالية الجودة.
|
||||||
- **الحل:** تأكد من تثبيت FFmpeg وإمكانية الوصول إليه في PATH الخاص بنظامك. بالنسبة لمستخدمي Windows، الخيار الأسهل هو تنزيل الملف `YTSage-v<version>-ffmpeg.exe`، والذي يأتي مرفقًا مع FFmpeg.
|
- **الحل:** تأكد من تثبيت FFmpeg وإضافته لـ PATH النظام. لمستخدمي ويندوز، الخيار الأسهل هو تحميل ملف `YTSage-v<version>-ffmpeg.exe` الذي يأتي مع FFmpeg مدمجًا.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### 🛡️ تحذير Windows Defender / مضاد الفيروسات
|
#### 🛡️ تنبيه Windows Defender / الأنتي فيروس
|
||||||
|
|
||||||
قد تقوم بعض برامج مكافحة الفيروسات بوضع علامة على الملفات `.exe` على أنها ملفات إيجابية كاذبة. هذا **قيد معروف** للتطبيقات المجمعة.
|
قد تصنف بعض برامج الحماية ملفات `.exe` كبرمجيات ضارة (False Positive). هذا **عيب معروف** في التطبيقات المحزمة.
|
||||||
|
|
||||||
**لماذا يحدث هذا:**
|
**لماذا يحدث هذا:**
|
||||||
- يمكن للاستدلالات المضادة للفيروسات أن تخطئ في تعريف الملفات التنفيذية المعبأة على أنها مشبوهة
|
- أساليب الكشف في مضادات الفيروسات قد تعتبر الملفات المحزمة مشبوهة خطأً.
|
||||||
|
|
||||||
** البدائل الآمنة: **
|
**البدائل الآمنة:**
|
||||||
- ✅ **استخدم تثبيت النقطة:** `pip install ytsage` (مستحسن)
|
- ✅ **استخدم تثبيت pip:** `pip install ytsage` (موصى به)
|
||||||
- ✅ **البناء من المصدر**: باتباع هذا [guide](../.github/CI_CD_README.md)
|
- ✅ **البناء من المصدر:** باتباع هذا [الدليل](.github/CI_CD_README.md)
|
||||||
- ✅ **أدرج التطبيق في القائمة البيضاء** في برنامج مكافحة الفيروسات لديك
|
- ✅ **إضافة التطبيق للقائمة البيضاء** في برنامج الحماية لديك.
|
||||||
|
|
||||||
#### 🍎 macOS: "التطبيق تالف ولا يمكن فتحه"
|
#### 🍎 macOS: "The app is damaged and can’t be opened"
|
||||||
إذا رأيت هذا الخطأ على نظام التشغيل macOS Sonoma أو الإصدارات الأحدث، فستحتاج إلى إزالة سمة العزل.
|
إذا واجهت هذا الخطأ على macOS Sonoma أو أحدث، يجب عليك إزالة سمة الحجر الصحي.
|
||||||
|
|
||||||
1. **افتح الوحدة الطرفية** (يمكنك العثور عليها باستخدام Spotlight).
|
1. **افتح الـ Terminal** (يمكنك البحث عنه عبر Spotlight).
|
||||||
2. **اكتب الأمر التالي** لكن **لا** تضغط على Enter بعد. تأكد من تضمين المساحة في النهاية:
|
2. **اكتب الأمر التالي** ولكن **لا تضغط** Enter بعد. تأكد من وجود مسافة في النهاية:
|
||||||
```bash
|
```bash
|
||||||
xattr -d com.apple.quarantine
|
xattr -d com.apple.quarantine
|
||||||
```
|
```
|
||||||
3. **اسحب الملف `YTSage.app`** من نافذة Finder وأفلته مباشرةً في نافذة الوحدة الطرفية. سيؤدي هذا تلقائيًا إلى لصق مسار الملف الصحيح.
|
3. **اسحب ملف `YTSage.app`** من نافذة Finder وأفلته في نافذة الـ Terminal. سيقوم بلصق المسار الصحيح تلقائيًا.
|
||||||
4. **اضغط على Enter** لتشغيل الأمر.
|
4. **اضغط Enter** لتنفيذ الأمر.
|
||||||
5. **حاول فتح YTSage.app مرة أخرى.** من المفترض الآن أن يتم تشغيله بشكل صحيح.
|
5. **حاول فتح YTSage.app مجددًا.** يجب أن يعمل الآن بشكل صحيح.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### **مواقع التكوين (متقدمة)**
|
#### **مواقع الإعدادات (للمتقدمين)**
|
||||||
- **ويندوز:** `%LOCALAPPDATA%\YTSage`
|
- **Windows:** `%LOCALAPPDATA%\YTSage`
|
||||||
- **ماك:** `~/Library/Application Support/YTSage`
|
- **macOS:** `~/Library/Application Support/YTSage`
|
||||||
- **لينكس:** `~/.local/share/YTSage`
|
- **Linux:** `~/.local/share/YTSage`
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="sponsor"></a>
|
<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)
|
[](https://github.com/sponsors/oop7)
|
||||||
|
|
||||||
<a id="contributing"></a>
|
<a id="contributing"></a>
|
||||||
## 👥 المساهمة
|
## 👥 المساهمة
|
||||||
|
|
||||||
نحن نرحب بالمساهمات! إليك كيف يمكنك المساعدة:
|
نرحب بالمساهمات! إليك كيف يمكنك المساعدة:
|
||||||
|
|
||||||
1. 🍴 شوكة المستودع
|
1. 🍴 عمل Fork للمستودع
|
||||||
2. 🌿 قم بإنشاء فرع الميزات الخاص بك:
|
2. 🌿 إنشاء فرع جديد للميزة:
|
||||||
```bash
|
```bash
|
||||||
git checkout -b feature/AmazingFeature
|
git checkout -b feature/AmazingFeature
|
||||||
```
|
```
|
||||||
3. 💾 قم بإجراء التغييرات:
|
3. 💾 حفظ التغييرات:
|
||||||
```bash
|
```bash
|
||||||
git commit -m 'Add some AmazingFeature'
|
git commit -m 'Add some AmazingFeature'
|
||||||
```
|
```
|
||||||
4. 📤 اضغط على الفرع:
|
4. 📤 رفع التغييرات:
|
||||||
```bash
|
```bash
|
||||||
git push origin feature/AmazingFeature
|
git push origin feature/AmazingFeature
|
||||||
```
|
```
|
||||||
5. 🔄 افتح طلب السحب
|
5. 🔄 فتح Pull Request
|
||||||
|
|
||||||
### 🌍 المساهمة بالترجمات
|
### 🌍 المساهمة في الترجمة
|
||||||
|
|
||||||
- قم بتحديث ملف README المترجم المطابق (على سبيل المثال `README.es.md`)
|
- حدث ملف README المترجم (مثل `readme-translations/README.ar.md`)
|
||||||
- حافظ على مزامنة سلاسل التطبيق عن طريق تحرير `ytsage/languages/<code>.json`
|
- حافظ على تزامن نصوص التطبيق بتعديل `ytsage/languages/<code>.json`
|
||||||
- إذا كانت لغتك مفقودة، ابدأ من `README.md` وأنشئ `README.<code>.md`
|
- إذا كانت لغتك غير موجودة، ابدأ من `README.md` وأنشئ ملفًا جديدًا باسم `README.<code>.md`
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📂 هيكل المشروع</summary>
|
<summary>📂 هيكل المشروع</summary>
|
||||||
|
|
||||||
## YTSage - هيكل المشروع
|
## YTSage - هيكل المشروع
|
||||||
|
|
||||||
يصف هذا المستند بنية المجلد المنظم لـ YTSage.
|
يوضح هذا المستند التنظيم الهيكلي لمجلدات YTSage.
|
||||||
|
|
||||||
### 📁 هيكل المشروع
|
### 📁 هيكل المشروع
|
||||||
|
|
||||||
```
|
```
|
||||||
YTSage/
|
YTSage/
|
||||||
├── 📁 .github/ # GitHub configuration
|
├── 📁 .github/ # إعدادات GitHub
|
||||||
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
|
│ ├── 📁 ISSUE_TEMPLATE/ # نماذج التذاكر
|
||||||
│ │ └── 🐛-bug-report.md # Bug report template
|
│ │ └── 🐛-bug-report.md # نموذج تقرير الأخطاء
|
||||||
│ ├─── 📁 workflows/ # GitHub Actions workflows
|
│ ├─── 📁 workflows/ # سير عمل GitHub Actions
|
||||||
│ │ ├── build-linux.yml # Linux build workflow
|
│ │ ├── build-linux.yml # بناء نسخة لينكس
|
||||||
│ │ ├── build-macos.yml # macOS build workflow
|
│ │ ├── build-macos.yml # بناء نسخة ماك
|
||||||
│ │ │── build-windows.yml # Windows build workflow
|
│ │ │── build-windows.yml # بناء نسخة ويندوز
|
||||||
| | └── release-all.yml # Master release workflow
|
| | └── release-all.yml # سير عمل الإصدارات
|
||||||
│ └── 📄 CI_CD_README.md # CI/CD documentation
|
│ └── 📄 CI_CD_README.md # توثيق CI/CD
|
||||||
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
|
├── 📁 branding/ # أصول العلامة التجارية (لقطات شاشة، SVG)
|
||||||
│ ├── 📁 icons/ # Application icons
|
│ ├── 📁 icons/ # أيقونات التطبيق
|
||||||
│ ├── 📁 screenshots/ # Screenshots for documentation
|
│ ├── 📁 screenshots/ # لقطات شاشة للتوثيق
|
||||||
│ └── 📁 svg/ # SVG assets
|
│ └── 📁 svg/ # أصول بصيغة SVG
|
||||||
├── 📄 LICENSE # License file
|
├── 📄 LICENSE # ملف الرخصة
|
||||||
├── 📄 pyproject.toml # Project metadata and dependencies
|
├── 📄 pyproject.toml # بيانات المشروع والاعتمادات
|
||||||
├── 📄 README.md # Project documentation
|
├── 📄 README.md # التوثيق الرئيسي
|
||||||
├── 📄 requirements.txt # Python dependencies (dev)
|
├── 📄 requirements.txt # اعتمادات بايثون (للمطورين)
|
||||||
└── 📁 ytsage/ # Source package
|
└── 📁 ytsage/ # مجلد الأكواد المصدرية
|
||||||
├── 📁 assets/ # Runtime assets
|
├── 📁 assets/ # الأصول اللازمة للتشغيل
|
||||||
│ ├── 📁 Icon/ # Application icons
|
│ ├── 📁 Icon/ # أيقونات التطبيق
|
||||||
│ └── 📁 sound/ # Audio files
|
│ └── 📁 sound/ # ملفات صوتية
|
||||||
├── 📁 languages/ # Localization files
|
├── 📁 languages/ # ملفات الترجمة
|
||||||
│ ├── 📄 ar.json # Arabic translation
|
│ ├── 📄 ar.json # الترجمة العربية
|
||||||
│ ├── 📄 de.json # German translation
|
│ ├── 📄 de.json # الترجمة الألمانية
|
||||||
│ ├── 📄 en.json # English translation
|
│ ├── 📄 en.json # الترجمة الإنجليزية
|
||||||
│ └── ... # Other languages
|
│ └── ... # لغات أخرى
|
||||||
├── 📁 core/ # Core business logic
|
├── 📁 core/ # المنطق البرمجي الأساسي
|
||||||
│ ├── 📄 __init__.py # Core package init
|
│ ├── 📄 __init__.py
|
||||||
│ ├── 📄 ytsage_deno.py # Deno integration
|
│ ├── 📄 ytsage_deno.py # تكامل Deno
|
||||||
│ ├── 📄 ytsage_downloader.py # Download functionality
|
│ ├── 📄 ytsage_downloader.py # وظائف التحميل
|
||||||
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
|
│ ├── 📄 ytsage_ffmpeg.py # تكامل FFmpeg
|
||||||
│ ├── 📄 ytsage_utils.py # Utility functions
|
│ ├── 📄 ytsage_utils.py # وظائف مساعدة
|
||||||
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
|
│ └── 📄 ytsage_yt_dlp.py # تكامل yt-dlp
|
||||||
├── 📁 gui/ # User interface components
|
├── 📁 gui/ # مكونات واجهة المستخدم
|
||||||
│ ├── 📄 __init__.py # GUI package init
|
│ ├── 📄 __init__.py
|
||||||
│ ├── 📄 ytsage_gui_main.py # Main application window
|
│ ├── 📄 ytsage_gui_main.py # نافذة التطبيق الرئيسية
|
||||||
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
|
│ └── 📁 ytsage_gui_dialogs/ # كلاسات النوافذ الحوارية
|
||||||
├── 📁 utils/ # Utility modules
|
├── 📁 utils/ # موديلات مساعدة
|
||||||
│ ├── 📄 __init__.py # Utils package init
|
│ ├── 📄 __init__.py
|
||||||
│ ├── 📄 ytsage_config_manager.py # Configuration management
|
│ ├── 📄 ytsage_config_manager.py # مدير الإعدادات
|
||||||
│ └── 📄 ytsage_logger.py # Logging utilities
|
│ └── 📄 ytsage_logger.py # أداة تسجيل السجلات
|
||||||
├── 📄 __init__.py # Package entry point
|
├── 📄 __init__.py # نقطة دخول الحزمة
|
||||||
└── 📄 main.py # Main execution script
|
└── 📄 main.py # سكربت التشغيل الرئيسي
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## ⭐️ تاريخ النجوم
|
## ⭐️ سجل النجوم
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
## تاريخ النجوم
|
## Star History
|
||||||
|
|
||||||
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
||||||
<picture>
|
<picture>
|
||||||
@@ -539,65 +544,66 @@ YTSage/
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## 📜 الترخيص
|
## 📜 الرخصة
|
||||||
|
|
||||||
هذا المشروع مرخص بموجب ترخيص MIT - راجع الملف [LICENSE](../LICENSE) للحصول على التفاصيل.
|
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف [LICENSE](LICENSE) لمزيد من التفاصيل.
|
||||||
|
|
||||||
## 🙏 شكر وتقدير
|
## 🙏 شكر وتقدير
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>إظهار الشكر والتقدير</summary>
|
<summary>عرض الشكر والتقدير</summary>
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<p>شكرًا جزيلًا لكل من ساهم في هذا المشروع من خلال فتح مشكلة لاقتراح تحسين أو الإبلاغ عن خطأ.</p>
|
<p>شكر كبير لكل من ساهم في هذا المشروع بفتح تذكرة لاقتراح تحسين أو الإبلاغ عن خطأ.</p>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr class="section"><th colspan="2">المكونات الأساسية</th></tr>
|
<tr class="section"><th colspan="2">المكونات الأساسية</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td width="35%"><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a></td>
|
<td width="35%"><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a></td>
|
||||||
<td>تحميل المحرك</td>
|
<td>محرك التحميل</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
||||||
<td>معالجة الوسائط</td>
|
<td>معالجة الوسائط</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://deno.com/">دينو</a></td>
|
<td><a href="https://deno.com/">Deno</a></td>
|
||||||
<td>وقت التشغيل للتكامل مع yt-dlp</td>
|
<td>بيئة التشغيل لتكامل yt-dlp</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="section"><th colspan="2">المكتبات والأطر</th></tr>
|
<tr class="section"><th colspan="2">المكتبات وإطارات العمل</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
||||||
<td>إطار واجهة المستخدم الرسومية</td>
|
<td>إطار عمل الواجهة الرسومية</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://python-pillow.org/">الوسادة</a></td>
|
<td><a href="https://python-pillow.org/">Pillow</a></td>
|
||||||
<td>معالجة الصور</td>
|
<td>معالجة الصور</td>
|
||||||
</tr>
|
</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>
|
<td>طلبات HTTP</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://packaging.python.org/">التغليف</a></td>
|
<td><a href="https://packaging.python.org/">packaging</a></td>
|
||||||
<td>التعامل مع الإصدار والحزمة</td>
|
<td>إدارة الإصدارات والحزم</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://python-markdown.github.io/">تخفيض السعر</a></td>
|
<td><a href="https://python-markdown.github.io/">markdown</a></td>
|
||||||
<td>عرض تخفيض السعر</td>
|
<td>معالجة Markdown</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
||||||
<td>التسجيل</td>
|
<td>تسجيل السجلات</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="section"><th colspan="2">الأصول والمساهمون</th></tr>
|
<tr class="section"><th colspan="2">الأصول والمساهمون</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">إشعار جديد 09 من Universfield</a></td>
|
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">New Notification 09 by Universfield</a></td>
|
||||||
<td>صوت الإشعارات</td>
|
<td>صوت التنبيه</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/viru185">الفيروس185</a></td>
|
<td><a href="https://github.com/viru185">viru185</a></td>
|
||||||
<td>مساهم الكود</td>
|
<td>مساهم بالكود</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -605,14 +611,14 @@ YTSage/
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## ⚠️إخلاء المسؤولية
|
## ⚠️ إخلاء مسؤولية
|
||||||
|
|
||||||
هذه الأداة للاستخدام الشخصي فقط. يرجى احترام شروط خدمة YouTube وحقوق منشئي المحتوى.
|
تُستخدم هذه الأداة للاستخدام الشخصي فقط. يرجى احترام شروط خدمة يوتيوب وحقوق منشئي المحتوى.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
صُنع باستخدام ❤️ بواسطة [oop7](https://github.com/oop7)
|
صنع بـ ❤️ بواسطة [oop7](https://github.com/oop7)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+247
-241
@@ -13,33 +13,33 @@
|
|||||||
[](https://github.com/sponsors/oop7)
|
[](https://github.com/sponsors/oop7)
|
||||||
|
|
||||||
**Un téléchargeur YouTube moderne avec une interface PySide6 épurée.**
|
**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)
|
Anglais : [EN](../README.md)
|
||||||
| Titre : [AR](README.ar.md)
|
| Arabe : [AR](README.ar.md)
|
||||||
| Allemand : [DE](README.de.md)
|
| Allemand : [DE](README.de.md)
|
||||||
| Espagnol : [ES](README.es.md)
|
| Espagnol : [ES](README.es.md)
|
||||||
| Anglais: [FR](README.fr.md)
|
| Français : [FR](README.fr.md)
|
||||||
| Nom : [HI](README.hi.md)
|
| Hindi : [HI](README.hi.md)
|
||||||
| Bahasa Indonésie : [ID](README.id.md)
|
| Indonésien : [ID](README.id.md)
|
||||||
| Italien : [IT](README.it.md)
|
| Italien : [IT](README.it.md)
|
||||||
| Nom : [JA](README.ja.md)
|
| Japonais : [JA](README.ja.md)
|
||||||
| Polski : [PL](README.pl.md)
|
| Polonais : [PL](README.pl.md)
|
||||||
| Portugais : [PT](README.pt.md)
|
| Portugais : [PT](README.pt.md)
|
||||||
| Russe : [RU](README.ru.md)
|
| Russe : [RU](README.ru.md)
|
||||||
| Turc : [TR](README.tr.md)
|
| Turc : [TR](README.tr.md)
|
||||||
| Nom : [ZH](README.zh.md)
|
| Chinois : [ZH](README.zh.md)
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="#installation">Installation</a> •
|
<a href="#installation">Installation</a> •
|
||||||
<a href="#features">Caractéristiques</a> •
|
<a href="#features">Fonctionnalités</a> •
|
||||||
<a href="#usage">Utilisation</a> •
|
<a href="#usage">Utilisation</a> •
|
||||||
<a href="#screenshots">Captures d'écran</a> •
|
<a href="#screenshots">Captures d'écran</a> •
|
||||||
<a href="#troubleshooting">Dépannage</a> •
|
<a href="#troubleshooting">Dépannage</a> •
|
||||||
<a href="#sponsor">Commanditaire</a> •
|
<a href="#sponsor">Sponsor</a> •
|
||||||
<a href="#contributing">Contribuer</a>
|
<a href="#contributing">Contribution</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -47,39 +47,40 @@ Anglais : [EN](../README.md)
|
|||||||
---
|
---
|
||||||
|
|
||||||
<a id="why-ytsage"></a>
|
<a id="why-ytsage"></a>
|
||||||
## ❓Pourquoi YTSage ?
|
## ❓ 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
|
- 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
|
- Fonctionnalités avancées comme SponsorBlock, la fusion des sous-titres et la sélection de playlists
|
||||||
- Mode générique en option pour les sites pris en charge par yt-dlp au-delà de YouTube
|
- Mode générique (Generic Mode) optionnel pour les sites pris en charge par yt-dlp au-delà de YouTube
|
||||||
- Prise en charge multiplateforme et installation facile
|
- Support multiplateforme et installation facile
|
||||||
|
|
||||||
<a id="features"></a>
|
<a id="features"></a>
|
||||||
## ✨ Caractéristiques
|
## ✨ Fonctionnalités
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
| Fonctionnalités principales | Fonctionnalités avancées | Fonctionnalités supplémentaires |
|
| Fonctionnalités de base | Fonctionnalités avancées | Fonctionnalités supplémentaires |
|
||||||
|--------------------------------------------------|-----------------------------------------|--------------------------------------------------|
|
|-----------------------------------|-----------------------------------------|------------------------------------|
|
||||||
| 🎥 Formater le tableau | 🚫 Intégration SponsorBlock | 🎞️ Affichage FPS/HDR |
|
| 🎥 Tableau des formats | 🚫 Intégration de SponsorBlock | 🎞️ Affichage FPS/HDR |
|
||||||
| 🎵 Extraction audio | 📝 Sélection et fusion de sous-titres multiples | 🔄 Mise à jour automatique yt-dlp |
|
| 🎵 Extraction audio | 📝 Sélection et fusion de sous-titres | 🔄 Mise à jour automatique de yt-dlp |
|
||||||
| ✨ Interface utilisateur simple | 💾 Enregistrer la description et la vignette | 🛠️ Détection FFmpeg/yt-dlp/Deno |
|
| ✨ Interface utilisateur simple | 💾 Enregistrement de la description et de la miniature | 🛠️ Détection de FFmpeg/yt-dlp/Deno |
|
||||||
| 📋 Prise en charge et sélecteur de playlist | 🚀 Limiteur de vitesse | ⚙️ Commandes personnalisées |
|
| 📋 Support et sélecteur de playlists | 🚀 Limiteur de vitesse | ⚙️ Commandes personnalisées |
|
||||||
| 📑 Intégrer les chapitres | ✂️ Couper les sections vidéo | 🍪 Connectez-vous avec les cookies |
|
| 📑 Intégration des chapitres | ✂️ Découpage de sections vidéo | 🍪 Connexion avec Cookies |
|
||||||
| 📜 Historique des téléchargements | 🔄 Sélection des chaînes de sortie | 🌐 Assistance proxy |
|
| 📜 Historique des téléchargements | 🔄 Sélection du canal de version | 🌐 Support Proxy |
|
||||||
| 🎚️ Conversion de formats audio | 🎬 Paramètres de format vidéo | 🆙 Onglet de mise à jour intégré |
|
| 🎚️ 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 |
|
| 🌍 Mode générique | 🔊 Normalisation audio (EBU R128) | 🌍 Localisation en 14 langues |
|
||||||
|
| 💾 Exportation de playlists | ⚙️ Qualité et sous-titres par défaut | |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a id="installation"></a>
|
<a id="installation"></a>
|
||||||
## 🚀Installation
|
## 🚀 Installation
|
||||||
|
|
||||||
### ⚡ Installation rapide (recommandé)
|
### ⚡ Installation rapide (Recommandé)
|
||||||
|
|
||||||
Installez YTSage depuis PyPI :
|
Installez YTSage via PyPI :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install ytsage
|
pip install ytsage
|
||||||
@@ -100,81 +101,81 @@ Lancez ensuite l'application :
|
|||||||
ytsage
|
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 |
|
|  | Installateur standard |
|
||||||
|  | Avec FFmpeg fourni |
|
|  | Avec FFmpeg inclus |
|
||||||
|  | Version portable, aucune installation requise |
|
|  | Version portable, aucune installation requise |
|
||||||
|  | Portable avec FFmpeg, zippé |
|
|  | Portable avec FFmpeg, zippé |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ Étapes d'installation</summary>
|
<summary>🛠️ Étapes d'installation</summary>
|
||||||
|
|
||||||
1. **EXE Installer (`.exe`)** : Double-cliquez sur le fichier et suivez l'assistant d'installation.
|
1. **Installateur EXE (`.exe`)** : Double-cliquez sur le fichier et suivez l'assistant de configuration.
|
||||||
2. **Version portable (`.zip`)** : Extrayez l'archive à l'emplacement souhaité et exécutez `ytsage.exe`.
|
2. **Version portable (`.zip`)** : Extrayez l'archive vers l'emplacement souhaité et lancez `ytsage.exe`.
|
||||||
3. **FFmpeg Bundled** : Choisissez les versions groupées de FFmpeg si FFmpeg n'est pas installé sur votre système.
|
3. **FFmpeg inclus** : Choisissez les versions avec FFmpeg inclus si vous n'avez pas FFmpeg installé sur votre système.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
#### 🐧Linux
|
#### 🐧 Linux
|
||||||
|
|
||||||
| Formater | Descriptif |
|
| Format | Description |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
|  | Paquet Debian |
|
|  | Paquet Debian |
|
||||||
|  | AppImage, portable |
|
|  | AppImage, portable |
|
||||||
|  | Paquet RPM |
|
|  | Paquet RPM |
|
||||||
|  | Paquet Flatpak |
|
|  | Flatpak Bundle |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ Étapes d'installation</summary>
|
<summary>🛠️ Étapes d'installation</summary>
|
||||||
|
|
||||||
- **DEB (`.deb`)** :
|
- **DEB (`.deb`)** :
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i ytsage_*.deb
|
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
|
```bash
|
||||||
sudo rpm -i ytsage-*.rpm
|
sudo rpm -i ytsage-*.rpm
|
||||||
```
|
```
|
||||||
- **AppImage (`.AppImage`)** :
|
- **AppImage (`.AppImage`)** :
|
||||||
```bash
|
```bash
|
||||||
chmod +x YTSage-*.AppImage
|
chmod +x YTSage-*.AppImage
|
||||||
./YTSage-*.AppImage
|
./YTSage-*.AppImage
|
||||||
```
|
```
|
||||||
- **Flatpak** : suivez les instructions sur Flathub ou exécutez :
|
- **Flatpak** : Suivez les instructions sur Flathub ou lancez :
|
||||||
```bash
|
```bash
|
||||||
flatpak install flathub io.github.oop7.ytsage
|
flatpak install flathub io.github.oop7.ytsage
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
#### 🍎macOS
|
#### 🍎 macOS
|
||||||
|
|
||||||
| Formater | Descriptif |
|
| Format | Description |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
|  | Application zippée pour Apple Silicon |
|
|  | Application zippée pour Apple Silicon |
|
||||||
|  | Programme d’installation d’image disque pour Apple Silicon |
|
|  | Installateur d'image disque pour Apple Silicon |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ Étapes d'installation</summary>
|
<summary>🛠️ Étapes d'installation</summary>
|
||||||
|
|
||||||
- **DMG Installer (`.dmg`)** : Double-cliquez pour monter, puis faites glisser `YTSage.app` dans votre dossier Applications.
|
- **Installateur DMG (`.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.
|
- **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>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<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
|
```bash
|
||||||
git clone https://github.com/oop7/YTSage.git
|
git clone https://github.com/oop7/YTSage.git
|
||||||
@@ -183,7 +184,7 @@ cd YTSage
|
|||||||
|
|
||||||
### 2. Installer les dépendances
|
### 2. Installer les dépendances
|
||||||
|
|
||||||
#### ⚡Avec uv
|
#### ⚡ Avec uv
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uv pip install .
|
uv pip install .
|
||||||
@@ -195,7 +196,7 @@ uv pip install .
|
|||||||
pip install .
|
pip install .
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Exécutez l'application
|
### 3. Lancer l'application
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python -m ytsage.main
|
python -m ytsage.main
|
||||||
@@ -209,147 +210,151 @@ python -m ytsage.main
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="../branding/screenshots/Download-Settings.png" alt="Download Settings" 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="Playlist Download" width="400"/></td>
|
<td><img src="../branding/screenshots/playlist.png" alt="Téléchargement de playlist" width="400"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><em>Paramètres de téléchargement</em></td>
|
<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>
|
||||||
<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/audio_format.png" alt="Sélection du format audio" width="400"/></td>
|
||||||
<td><img src="../branding/screenshots/Custom-Option.png" alt="Custom Options" width="400"/></td>
|
<td><img src="../branding/screenshots/Custom-Option.png" alt="Options personnalisées" width="400"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><em>Format audio</em></td>
|
<td align="center"><em>Format audio</em></td>
|
||||||
<td align="center"><em>Options personnalisées</em></td>
|
<td align="center"><em>Options personnalisées</em></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div><a id="usage"></a>
|
</div>
|
||||||
|
|
||||||
|
<a id="usage"></a>
|
||||||
## 📖 Utilisation
|
## 📖 Utilisation
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🎯 Utilisation de base</summary>
|
<summary>🎯 Utilisation de base</summary>
|
||||||
|
|
||||||
1. **Lancer YTSage**
|
1. **Lancez YTSage**
|
||||||
2. **Collez l'URL YouTube** (ou utilisez le bouton « Coller l'URL »)
|
2. **Collez l'URL YouTube** (ou utilisez le bouton "Paste URL")
|
||||||
3. **Cliquez sur « Analyser »**
|
3. **Cliquez sur "Analyze"**
|
||||||
4. **Sélectionnez le format :**
|
4. **Sélectionnez le format :**
|
||||||
- `Video` pour les téléchargements de vidéos
|
- `Video` pour les téléchargements vidéo
|
||||||
- `Audio Only` pour l'extraction audio
|
- `Audio Only` pour l'extraction audio
|
||||||
5. **Choisissez les options :**
|
5. **Choisissez les options :**
|
||||||
- Activer les sous-titres et sélectionner la langue
|
- Activer les sous-titres et sélectionner la langue
|
||||||
- Activer la fusion des sous-titres
|
- Activer la fusion des sous-titres
|
||||||
- Enregistrer la vignette
|
- Enregistrer la miniature
|
||||||
- Supprimer les segments de sponsors
|
- Supprimer les segments sponsorisés
|
||||||
- Enregistrer la description
|
- Enregistrer la description
|
||||||
- Intégrer des chapitres
|
- Intégrer les chapitres
|
||||||
6. **Sélectionnez le répertoire de sortie**
|
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>
|
||||||
|
|
||||||
<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**
|
1. **Collez l'URL de la playlist**
|
||||||
2. **Cliquez sur « Analyser »**
|
2. **Cliquez sur "Analyze"**
|
||||||
3. ** Sélectionnez des vidéos dans le sélecteur de playlist (facultatif, par défaut : toutes) **
|
3. **Sélectionnez les vidéos du sélecteur de playlist (optionnel, toutes par défaut)**
|
||||||
4. **Choisissez le format/qualité souhaité**
|
4. **Choisissez le format/la qualité souhaitée**
|
||||||
5. **Cliquez sur "Télécharger"**
|
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>
|
||||||
|
|
||||||
<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`.
|
1. Ouvrez `Download Settings`.
|
||||||
2. Activez `Generic Mode`.
|
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`.
|
4. Cliquez sur `Analyze`.
|
||||||
5. Choisissez un format et téléchargez comme d'habitude.
|
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.
|
- 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>
|
||||||
|
|
||||||
<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
|
- **Options de sous-titres :** Filtrer les langues et intégrer les 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
|
- **Fusion de sous-titres :** Fusionner les sous-titres dans le fichier vidéo pour des sous-titres incrustés (hardcoded).
|
||||||
- **Enregistrer la description :** Enregistrez la description de la vidéo sous forme de fichier texte
|
- **Enregistrer la description :** Enregistrer 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
|
- **Enregistrer la miniature :** Enregistrer la miniature de la vidéo sous forme de fichier image.
|
||||||
- **Intégrer les chapitres :** Intégrer des marqueurs de chapitre en tant que métadonnées pour les lecteurs vidéo compatibles
|
- **Intégrer les chapitres :** Intégrer les marqueurs de chapitres comme 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
|
- **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 de temps au format `HH:MM:SS`
|
- **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>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>⚙️ Paramètres de sortie et de fichier</summary>
|
<summary>⚙️ Paramètres de sortie et de fichier</summary>
|
||||||
|
|
||||||
- **Speed Limiter :** Limitez la vitesse de téléchargement, par exemple `500K` à 500 Ko/s
|
- **Limiteur de vitesse :** Limiter la vitesse de téléchargement, par exemple `500K` pour 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**.
|
- **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**.
|
||||||
- **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**.
|
- **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**.
|
||||||
- **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**.
|
- **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**.
|
||||||
- **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**.
|
- **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**.
|
||||||
- **Normalisation audio :** Standardisez le volume pour les téléchargements audio uniquement à l'aide de l'EBU R128.
|
- **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**.
|
||||||
- **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
|
- **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>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌐 Accès et réseau</summary>
|
<summary>🌐 Accès et réseau</summary>
|
||||||
|
|
||||||
- **Connexion avec des cookies :** Connectez-vous à YouTube en utilisant des cookies pour accéder au contenu privé.
|
- **Connexion avec cookies :** Connectez-vous à YouTube à l'aide de cookies pour accéder au contenu privé.
|
||||||
Comment l'utiliser :
|
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.
|
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 :
|
2. Alternativement, extrayez 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)
|
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
|
b. Copiez les cookies au format Netscape
|
||||||
c. Créez un fichier nommé `cookies.txt` et collez-y les cookies
|
c. Créez un fichier nommé `cookies.txt` et collez-y les cookies
|
||||||
d. Sélectionnez le fichier `cookies.txt` dans l'application
|
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>`
|
- **Support 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**.
|
- **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>
|
||||||
|
|
||||||
<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
|
- **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 :
|
- **Onglet de mise à jour :** Gérez les outils de mise à jour intégrés depuis un seul endroit dans Options personnalisées :
|
||||||
- **Mises à jour yt-dlp :** Vérifiez les mises à jour et basculez entre les versions stables et nocturnes
|
- **Mises à jour de yt-dlp :** Vérifiez les mises à jour et basculez entre les canaux de version Stable et Nightly.
|
||||||
- **FFmpeg Version Checker :** Vérifiez votre version de FFmpeg et ouvrez les guides d'installation
|
- **Vérificateur de version FFmpeg :** Vérifiez votre version de FFmpeg et ouvrez les guides d'installation.
|
||||||
- **Mises à jour Deno :** Vérifiez et mettez à jour le runtime Deno
|
- **Mises à jour de Deno :** Vérifiez et mettez à jour le moteur d'exécution 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.
|
- **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 des vignettes et des statuts à partir du bouton **Historique**.
|
- **Historique des téléchargements :** Affichez les téléchargements passés avec les miniatures et les statuts depuis le bouton **History**.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌍 Localisation</summary>
|
<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
|
### Langues prises en charge
|
||||||
|
|
||||||
| Langue | Codes | Langue | Codes |
|
| Langue | Code | Langue | Code |
|
||||||
|--------------|------|--------------|------|
|
|----------|------|----------|------|
|
||||||
| 🇺🇸 Anglais | `en` | Espagnol | `es` |
|
| 🇺🇸 Anglais | `en` | 🇪🇸 Espagnol | `es` |
|
||||||
| 🇸🇦 Arabe | `ar` | 🇫🇷 Français | `fr` |
|
| 🇸🇦 Arabe | `ar` | 🇫🇷 Français | `fr` |
|
||||||
| 🇩🇪 Allemand | `de` | 🇮🇳 Hindi | `hi` |
|
| 🇩🇪 Allemand | `de` | 🇮🇳 Hindi | `hi` |
|
||||||
| 🇮🇩 Indonésien | `id` | 🇮🇹 Italien | `it` |
|
| 🇮🇩 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` |
|
| 🇧🇷 Portugais | `pt` | 🇷🇺 Russe | `ru` |
|
||||||
| 🇹🇷 Turc | `tr` | 🇨🇳 Chinois | `zh` |
|
| 🇹🇷 Turc | `tr` | 🇨🇳 Chinois | `zh` |
|
||||||
|
|
||||||
### Traductions README
|
### Traductions du README
|
||||||
|
|
||||||
| Langue | Fichier | Langue | Fichier |
|
| 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) |
|
| 🇸🇦 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) |
|
| 🇩🇪 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) |
|
| 🇮🇩 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) |
|
| 🇧🇷 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) |
|
| 🇹🇷 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>
|
</details>
|
||||||
|
|
||||||
@@ -377,22 +382,22 @@ YTSage prend en charge **14 langues** pour une accessibilité mondiale. Sélecti
|
|||||||
## 🛠️ Dépannage
|
## 🛠️ Dépannage
|
||||||
|
|
||||||
<details>
|
<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.
|
- **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.
|
- **É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 :**
|
- **Erreurs de téléchargement spécifiques :**
|
||||||
- **Vidéos privées :** Utilisez l'authentification par cookie pour accéder au contenu privé.
|
- **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 des vidéos soumises à une limite d'âge.
|
- **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 :** Pensez à utiliser un VPN pour contourner les restrictions régionales.
|
- **Vidéos géo-bloquées :** Envisagez d'utiliser un VPN pour contourner les restrictions régionales.
|
||||||
- **Vidéos supprimées/supprimées :** La vidéo n'est plus disponible sur YouTube.
|
- **Vidéos 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.
|
- **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.
|
- **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.
|
- **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.
|
- **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.
|
- **Blocages pour 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é.
|
- **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 consiste à télécharger le fichier `YTSage-v<version>-ffmpeg.exe`, fourni avec FFmpeg.
|
- **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.
|
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 :**
|
**Pourquoi cela se produit :**
|
||||||
- L'heuristique antivirus peut identifier à tort les exécutables compressés comme suspects
|
- L'heuristique des antivirus peut identifier par erreur les exécutables packagés comme suspects.
|
||||||
|
|
||||||
**Alternatives sûres :**
|
**Alternatives sûres :**
|
||||||
- ✅ **Utiliser l'installation pip :** `pip install ytsage` (recommandé)
|
- ✅ **Utilisez l'installation pip :** `pip install ytsage` (recommandé)
|
||||||
- ✅ **Construire à partir des sources** : en suivant ceci [guide](../.github/CI_CD_README.md)
|
- ✅ **Compiler à partir des sources** : en suivant ce [guide](.github/CI_CD_README.md)
|
||||||
- ✅ **Liste blanche de l'application** dans votre logiciel antivirus
|
- ✅ **Mettre l'application en liste blanche** dans votre logiciel antivirus.
|
||||||
|
|
||||||
#### 🍎 macOS : "L'application est endommagée et ne peut pas être ouverte"
|
#### 🍎 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.
|
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).
|
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 :
|
2. **Tapez la commande suivante** mais **n'appuyez pas** encore sur Entrée. Assurez-vous d'inclure l'espace à la fin :
|
||||||
```bash
|
```bash
|
||||||
xattr -d com.apple.quarantine
|
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.
|
4. **Appuyez sur Entrée** pour exécuter la commande.
|
||||||
5. **Essayez d'ouvrir à nouveau YTSage.app.** Il devrait maintenant se lancer correctement.
|
5. **Essayez d'ouvrir à nouveau YTSage.app.** Il devrait maintenant se lancer correctement.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### **Emplacements de configuration (avancé)**
|
#### **Emplacements de configuration (Avancé)**
|
||||||
- **Windows :** `%LOCALAPPDATA%\YTSage`
|
- **Windows :** `%LOCALAPPDATA%\YTSage`
|
||||||
- **macOS :** `~/Library/Application Support/YTSage`
|
- **macOS :** `~/Library/Application Support/YTSage`
|
||||||
- **Linux :** `~/.local/share/YTSage`
|
- **Linux :** `~/.local/share/YTSage`
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="sponsor"></a>
|
<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
|
- GitHub Sponsors : https://github.com/sponsors/oop7
|
||||||
- Le lien du sponsor est également disponible directement dans l'application à partir de la boîte de dialogue À propos.
|
- Le lien de parrainage est également disponible directement dans l'application via la boîte de dialogue À propos.
|
||||||
|
|
||||||
[](https://github.com/sponsors/oop7)
|
[](https://github.com/sponsors/oop7)
|
||||||
|
|
||||||
<a id="contributing"></a>
|
<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
|
1. 🍴 Forkez le dépôt
|
||||||
2. 🌿 Créez votre branche de fonctionnalités :
|
2. 🌿 Créez votre branche de fonctionnalité :
|
||||||
```bash
|
```bash
|
||||||
git checkout -b feature/AmazingFeature
|
git checkout -b feature/AmazingFeature
|
||||||
```
|
```
|
||||||
3. 💾 Validez vos modifications :
|
3. 💾 Committez vos modifications :
|
||||||
```bash
|
```bash
|
||||||
git commit -m 'Add some AmazingFeature'
|
git commit -m 'Add some AmazingFeature'
|
||||||
```
|
```
|
||||||
4. 📤 Push vers l'agence :
|
4. 📤 Pushez vers la branche :
|
||||||
```bash
|
```bash
|
||||||
git push origin feature/AmazingFeature
|
git push origin feature/AmazingFeature
|
||||||
```
|
```
|
||||||
5. 🔄 Ouvrir une Pull Request
|
5. 🔄 Ouvrez une Pull Request
|
||||||
|
|
||||||
### 🌍 Contribuer aux traductions
|
### 🌍 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`
|
- 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>
|
<details>
|
||||||
<summary>📂 Structure du projet</summary>
|
<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
|
### 📁 Structure du projet
|
||||||
|
|
||||||
```
|
```
|
||||||
YTSage/
|
YTSage/
|
||||||
├── 📁 .github/ # GitHub configuration
|
├── 📁 .github/ # Configuration GitHub
|
||||||
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
|
│ ├── 📁 ISSUE_TEMPLATE/ # Modèles de tickets
|
||||||
│ │ └── 🐛-bug-report.md # Bug report template
|
│ │ └── 🐛-bug-report.md # Modèle de rapport de bug
|
||||||
│ ├─── 📁 workflows/ # GitHub Actions workflows
|
│ ├─── 📁 workflows/ # Workflows GitHub Actions
|
||||||
│ │ ├── build-linux.yml # Linux build workflow
|
│ │ ├── build-linux.yml # Workflow de build Linux
|
||||||
│ │ ├── build-macos.yml # macOS build workflow
|
│ │ ├── build-macos.yml # Workflow de build macOS
|
||||||
│ │ │── build-windows.yml # Windows build workflow
|
│ │ │── build-windows.yml # Workflow de build Windows
|
||||||
| | └── release-all.yml # Master release workflow
|
| | └── release-all.yml # Workflow de release master
|
||||||
│ └── 📄 CI_CD_README.md # CI/CD documentation
|
│ └── 📄 CI_CD_README.md # Documentation CI/CD
|
||||||
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
|
├── 📁 branding/ # Actifs de marque (Captures d'écran, SVGs)
|
||||||
│ ├── 📁 icons/ # Application icons
|
│ ├── 📁 icons/ # Icônes de l'application
|
||||||
│ ├── 📁 screenshots/ # Screenshots for documentation
|
│ ├── 📁 screenshots/ # Captures d'écran pour la documentation
|
||||||
│ └── 📁 svg/ # SVG assets
|
│ └── 📁 svg/ # Actifs SVG
|
||||||
├── 📄 LICENSE # License file
|
├── 📄 LICENSE # Fichier de licence
|
||||||
├── 📄 pyproject.toml # Project metadata and dependencies
|
├── 📄 pyproject.toml # Métadonnées du projet et dépendances
|
||||||
├── 📄 README.md # Project documentation
|
├── 📄 README.md # Documentation du projet
|
||||||
├── 📄 requirements.txt # Python dependencies (dev)
|
├── 📄 requirements.txt # Dépendances Python (dev)
|
||||||
└── 📁 ytsage/ # Source package
|
└── 📁 ytsage/ # Paquet source
|
||||||
├── 📁 assets/ # Runtime assets
|
├── 📁 assets/ # Actifs d'exécution
|
||||||
│ ├── 📁 Icon/ # Application icons
|
│ ├── 📁 Icon/ # Icônes de l'application
|
||||||
│ └── 📁 sound/ # Audio files
|
│ └── 📁 sound/ # Fichiers audio
|
||||||
├── 📁 languages/ # Localization files
|
├── 📁 languages/ # Fichiers de localisation
|
||||||
│ ├── 📄 ar.json # Arabic translation
|
│ ├── 📄 ar.json # Traduction arabe
|
||||||
│ ├── 📄 de.json # German translation
|
│ ├── 📄 de.json # Traduction allemande
|
||||||
│ ├── 📄 en.json # English translation
|
│ ├── 📄 en.json # Traduction anglaise
|
||||||
│ └── ... # Other languages
|
│ └── ... # Autres langues
|
||||||
├── 📁 core/ # Core business logic
|
├── 📁 core/ # Logique métier principale
|
||||||
│ ├── 📄 __init__.py # Core package init
|
│ ├── 📄 __init__.py # Initialisation du paquet core
|
||||||
│ ├── 📄 ytsage_deno.py # Deno integration
|
│ ├── 📄 ytsage_deno.py # Intégration Deno
|
||||||
│ ├── 📄 ytsage_downloader.py # Download functionality
|
│ ├── 📄 ytsage_downloader.py # Fonctionnalité de téléchargement
|
||||||
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
|
│ ├── 📄 ytsage_ffmpeg.py # Intégration FFmpeg
|
||||||
│ ├── 📄 ytsage_utils.py # Utility functions
|
│ ├── 📄 ytsage_utils.py # Fonctions utilitaires
|
||||||
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
|
│ └── 📄 ytsage_yt_dlp.py # Intégration yt-dlp
|
||||||
├── 📁 gui/ # User interface components
|
├── 📁 gui/ # Composants de l'interface utilisateur
|
||||||
│ ├── 📄 __init__.py # GUI package init
|
│ ├── 📄 __init__.py # Initialisation du paquet GUI
|
||||||
│ ├── 📄 ytsage_gui_main.py # Main application window
|
│ ├── 📄 ytsage_gui_main.py # Fenêtre principale de l'application
|
||||||
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
|
│ └── 📁 ytsage_gui_dialogs/ # Classes de dialogues
|
||||||
├── 📁 utils/ # Utility modules
|
├── 📁 utils/ # Modules utilitaires
|
||||||
│ ├── 📄 __init__.py # Utils package init
|
│ ├── 📄 __init__.py # Initialisation du paquet utils
|
||||||
│ ├── 📄 ytsage_config_manager.py # Configuration management
|
│ ├── 📄 ytsage_config_manager.py # Gestion de la configuration
|
||||||
│ └── 📄 ytsage_logger.py # Logging utilities
|
│ └── 📄 ytsage_logger.py # Utilitaires de log
|
||||||
├── 📄 __init__.py # Package entry point
|
├── 📄 __init__.py # Point d'entrée du paquet
|
||||||
└── 📄 main.py # Main execution script
|
└── 📄 main.py # Script d'exécution principal
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## ⭐️ Histoire des étoiles
|
## ⭐️ Historique des étoiles
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
## Historique des étoiles
|
## Star History
|
||||||
|
|
||||||
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
||||||
<picture>
|
<picture>
|
||||||
@@ -541,7 +546,7 @@ YTSage/
|
|||||||
|
|
||||||
## 📜 Licence
|
## 📜 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
|
## 🙏 Remerciements
|
||||||
|
|
||||||
@@ -550,7 +555,7 @@ Ce projet est sous licence MIT - voir le fichier [LICENSE](../LICENSE) pour plus
|
|||||||
|
|
||||||
<div align="center">
|
<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>
|
<table>
|
||||||
<tr class="section"><th colspan="2">Composants de base</th></tr>
|
<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>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
||||||
<td>Traitement multimédia</td>
|
<td>Traitement média</td>
|
||||||
</tr>
|
</tr>
|
||||||
<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>
|
<td>Runtime pour l'intégration avec yt-dlp</td>
|
||||||
</tr>
|
</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>
|
<tr>
|
||||||
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
||||||
<td>Cadre GUI</td>
|
<td>Framework GUI</td>
|
||||||
</tr>
|
</tr>
|
||||||
<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>
|
<td>Traitement d'images</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a href="https://requests.readthedocs.io/">demandes</a></td>
|
<tr>
|
||||||
<td>Demandes HTTP</td>
|
<td><a href="https://requests.readthedocs.io/">requests</a></td>
|
||||||
|
<td>Requêtes HTTP</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://packaging.python.org/">emballage</a></td>
|
<td><a href="https://packaging.python.org/">packaging</a></td>
|
||||||
<td>Version et gestion des packages</td>
|
<td>Gestion des versions et des paquets</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://python-markdown.github.io/">markdown</a></td>
|
<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>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
||||||
<td>Journalisation</td>
|
<td>Logging</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="section"><th colspan="2">Actifs et contributeurs</th></tr>
|
<tr class="section"><th colspan="2">Actifs & Contributeurs</th></tr>
|
||||||
<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>
|
<td>Son de notification</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -605,7 +611,7 @@ Ce projet est sous licence MIT - voir le fichier [LICENSE](../LICENSE) pour plus
|
|||||||
|
|
||||||
</details>
|
</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.
|
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">
|
<div align="center">
|
||||||
|
|
||||||
Réalisé avec ❤️ par [oop7](https://github.com/oop7)
|
Fait avec ❤️ par [oop7](https://github.com/oop7)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user