Update German and Italian README translations

Refine and standardize wording in readme-translations/README.de.md and README.it.md. Improvements include clearer UI labels (Analyze/Download), consistent terminology for installation and features, corrected language names, updated tables and formatting, improved screenshot alt texts, and various grammar/translation fixes to align both locales with the main README for clarity and consistency.
This commit is contained in:
oop7
2026-05-14 14:52:50 +03:00
parent 0c73bfcd98
commit 37777310c9
2 changed files with 501 additions and 489 deletions
+223 -217
View File
@@ -12,33 +12,33 @@
[![PyPI version](https://img.shields.io/pypi/v/ytsage?color=c90000&style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/ytsage/) [![PyPI version](https://img.shields.io/pypi/v/ytsage?color=c90000&style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/ytsage/)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7) [![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7)
**Ein moderner YouTube-Downloader mit einer sauberen PySide6-Oberfläche.** **Ein moderner YouTube-Downloader mit einer eleganten PySide6-Benutzeroberfläche.**
Laden Sie Videos in beliebiger Qualität herunter, extrahieren Sie Audio, rufen Sie Untertitel ab und mehr. Downloaden Sie Videos in jeder Qualität, extrahieren Sie Audio, rufen Sie Untertitel ab und vieles mehr.
### 🌍 README-Sprachen ### 🌍 README-Sprachen
Englisch: [EN](../README.md) Englisch: [EN](../README.md)
| Quelle: [AR](README.ar.md) | Arabisch: [AR](README.ar.md)
| Deutsch: [DE](README.de.md) | Deutsch: [DE](README.de.md)
| Spanisch: [ES](README.es.md) | Spanisch: [ES](README.es.md)
| Französisch: [FR](README.fr.md) | Französisch: [FR](README.fr.md)
| Quelle: [HI](README.hi.md) | Hindi: [HI](README.hi.md)
| Bahasa Indonesien: [ID](README.id.md) | Indonesisch: [ID](README.id.md)
| Italienisch: [IT](README.it.md) | Italienisch: [IT](README.it.md)
| 日本語: [JA](README.ja.md) | Japanisch: [JA](README.ja.md)
| Polnisch: [PL](README.pl.md) | Polnisch: [PL](README.pl.md)
| Portugiesisch: [PT](README.pt.md) | Portugiesisch: [PT](README.pt.md)
| Russisch: [RU](README.ru.md) | Russisch: [RU](README.ru.md)
| Türkei: [TR](README.tr.md) | Türkisch: [TR](README.tr.md)
| Quelle: [ZH](README.zh.md) | Chinesisch: [ZH](README.zh.md)
<p align="center"> <p align="center">
<a href="#installation">Installation</a> • <a href="#installation">Installation</a> •
<a href="#features">Funktionen</a> • <a href="#features">Funktionen</a> •
<a href="#usage">Verwendung</a> • <a href="#usage">Bedienung</a> •
<a href="#screenshots">Screenshots</a> • <a href="#screenshots">Screenshots</a> •
<a href="#troubleshooting">Fehlerbehebung</a> • <a href="#troubleshooting">Fehlerbehebung</a> •
<a href="#sponsor">Sponsor</a> • <a href="#sponsor">Sponsoren</a> •
<a href="#contributing">Mitwirken</a> <a href="#contributing">Mitwirken</a>
</p> </p>
@@ -51,10 +51,10 @@ Englisch: [EN](../README.md)
YTSage wurde für Benutzer entwickelt, die einen **einfachen, aber leistungsstarken YouTube-Downloader** suchen. Im Gegensatz zu anderen Tools bietet es: YTSage wurde für Benutzer entwickelt, die einen **einfachen, aber leistungsstarken YouTube-Downloader** suchen. Im Gegensatz zu anderen Tools bietet es:
- Eine saubere, moderne PySide6-Schnittstelle - Eine moderne und übersichtliche PySide6-Oberfläche
- Ein-Klick-Downloads für Video, Audio und Untertitel - Ein-Klick-Downloads für Video, Audio und Untertitel
- Erweiterte Funktionen wie SponsorBlock, Zusammenführen von Untertiteln und Auswahl von Wiedergabelisten - Erweiterte Funktionen wie SponsorBlock, Zusammenführen von Untertiteln und Playlist-Auswahl
- Optionaler generischer Modus für von YT-DLP unterstützte Websites außerhalb von YouTube - Optionaler generischer Modus (Generic Mode) für von yt-dlp unterstützte Seiten außerhalb von YouTube
- Plattformübergreifende Unterstützung und einfache Installation - Plattformübergreifende Unterstützung und einfache Installation
<a id="features"></a> <a id="features"></a>
@@ -62,31 +62,32 @@ YTSage wurde für Benutzer entwickelt, die einen **einfachen, aber leistungsstar
<div align="center"> <div align="center">
| Kernfunktionen | Erweiterte Funktionen | Zusätzliche Funktionen | | Basisfunktionen | Erweiterte Funktionen | Zusätzliche Funktionen |
|----------------------------------|--------------------------|------------------------------------| |-----------------------------------|-----------------------------------------|------------------------------------|
| 🎥 Tabelle formatieren | 🚫 SponsorBlock-Integration | 🎞️ FPS/HDR-Anzeige | | 🎥 Formattabelle | 🚫 SponsorBlock-Integration | 🎞️ FPS/HDR-Anzeige |
| 🎵 Audioextraktion | 📝 Mehrere Untertitel auswählen und zusammenführen | 🔄 yt-dlp automatisch aktualisieren | | 🎵 Audio-Extraktion | 📝 Untertitel-Auswahl & Merging | 🔄 Automatisches yt-dlp Update |
| ✨ Einfache Benutzeroberfläche | 💾 Beschreibung und Miniaturansicht speichern | 🛠️ FFmpeg/yt-dlp/Deno-Erkennung | | ✨ Einfache Benutzeroberfläche | 💾 Beschreibung & Thumbnail speichern | 🛠️ FFmpeg/yt-dlp/Deno Erkennung |
| 📋 Playlist-Unterstützung und -Auswahl | 🚀 Geschwindigkeitsbegrenzer | ⚙️ Benutzerdefinierte Befehle | | 📋 Playlist-Support & Selector | 🚀 Geschwindigkeitsbegrenzer | ⚙️ Benutzerdefinierte Befehle |
| 📑 Kapitel einbetten | ✂️ Videoabschnitte zuschneiden | 🍪 Mit Cookies anmelden | | 📑 Kapitel-Integration | ✂️ Videoabschnitte zuschneiden | 🍪 Cookie-Login |
| 📜 Download-Verlauf | 🔄 Kanalauswahl freigeben | 🌐 Proxy-Unterstützung | | 📜 Download-Historie | 🔄 Release-Kanal Auswahl | 🌐 Proxy-Support |
| 🎚️ Audioformatkonvertierung | 🎬 Videoformateinstellungen | 🆙 Integrierte Updater-Registerkarte | | 🎚️ Audioformat-Konvertierung | 🎬 Videoformat-Einstellungen | 🆙 Integrierter Update-Tab |
| 🌍 Allgemeiner Modus | 🔊 Audio-Normalisierung (EBU R128) | 🌍 Lokalisierung in 14 Sprachen | | 🌍 Generischer Modus | 🔊 Audio-Normalisierung (EBU R128) | 🌍 In 14 Sprachen lokalisiert |
| 💾 Playlist-Export | ⚙️ Standardqualität & Untertitel | |
</div> </div>
<a id="installation"></a> <a id="installation"></a>
## 🚀 Installation ## 🚀 Installation
### ⚡ Schnellinstallation (empfohlen) ### ⚡ Schnelle Installation (Empfohlen)
Installieren Sie YTSage von PyPI: Installieren Sie YTSage über PyPI:
```bash ```bash
pip install ytsage pip install ytsage
``` ```
<details> <details>
<summary>🔄Aktualisieren Sie eine vorhandene Installation</summary> <summary>🔄 Bestehende Installation aktualisieren</summary>
```bash ```bash
pip install --upgrade ytsage pip install --upgrade ytsage
@@ -94,7 +95,7 @@ pip install --upgrade ytsage
</details> </details>
Starten Sie dann die App: Starten Sie dann die Anwendung:
```bash ```bash
ytsage ytsage
@@ -102,33 +103,33 @@ ytsage
### 📦 Vorgefertigte ausführbare Dateien ### 📦 Vorgefertigte ausführbare Dateien
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest) > [👉 Neuestes Release herunterladen](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 Windows #### 🪟 Windows
| Formatieren | Beschreibung | | Format | Beschreibung |
|--------|-------------| |--------|-------------|
| ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Standardinstallationsprogramm | | ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Standard-Installer |
| ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Mit FFmpeg gebündelt | | ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Mit integriertem FFmpeg |
| ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portable Version, keine Installation erforderlich | | ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portable Version, keine Installation erforderlich |
| ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Tragbar mit FFmpeg, gezippt | | ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portable Version mit FFmpeg, gepackt |
<details> <details>
<summary>🛠️ Installationsschritte</summary> <summary>🛠️ Installationsschritte</summary>
1. **EXE-Installationsprogramm (`.exe`)**: Doppelklicken Sie auf die Datei und folgen Sie dem Setup-Assistenten. 1. **EXE-Installer (`.exe`)**: Doppelklicken Sie auf die Datei und folgen Sie dem Installationsassistenten.
2. **Portable Version (`.zip`)**: Extrahieren Sie das Archiv an den gewünschten Speicherort und führen Sie `ytsage.exe` aus. 2. **Portable Version (`.zip`)**: Entpacken Sie das Archiv an den gewünschten Ort und starten Sie `ytsage.exe`.
3. **FFmpeg gebündelt**: Wählen Sie die gebündelten FFmpeg-Versionen, wenn Sie FFmpeg nicht auf Ihrem System installiert haben. 3. **Integriertes FFmpeg**: Wählen Sie die Versionen mit integriertem FFmpeg, falls FFmpeg nicht bereits auf Ihrem System installiert ist.
</details> </details>
#### 🐧 Linux #### 🐧 Linux
| Formatieren | Beschreibung | | Format | Beschreibung |
|--------|-------------| |--------|-------------|
| ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Debian-Paket | | ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Debian-Paket |
| ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, tragbar | | ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, portabel |
| ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | RPM-Paket | | ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | RPM-Paket |
| ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Flatpak-Bundle | | ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Flatpak Bundle |
<details> <details>
<summary>🛠️ Installationsschritte</summary> <summary>🛠️ Installationsschritte</summary>
@@ -136,7 +137,7 @@ ytsage
- **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 # Repariert fehlende Abhängigkeiten, falls nötig
``` ```
- **RPM (`.rpm`)**: - **RPM (`.rpm`)**:
```bash ```bash
@@ -147,7 +148,7 @@ ytsage
chmod +x YTSage-*.AppImage chmod +x YTSage-*.AppImage
./YTSage-*.AppImage ./YTSage-*.AppImage
``` ```
- **Flatpak**: Folgen Sie den Anweisungen auf Flathub oder führen Sie Folgendes aus: - **Flatpak**: Folgen Sie den Anweisungen auf Flathub oder führen Sie aus:
```bash ```bash
flatpak install flathub io.github.oop7.ytsage flatpak install flathub io.github.oop7.ytsage
``` ```
@@ -155,26 +156,26 @@ ytsage
#### 🍎 macOS #### 🍎 macOS
| Formatieren | Beschreibung | | Format | Beschreibung |
|--------|-------------| |--------|-------------|
| ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Gezippte Anwendung für Apple Silicon | | ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Gepackte App für Apple Silicon |
| ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Disk-Image-Installationsprogramm für Apple Silicon | | ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Disk Image Installer für Apple Silicon |
<details> <details>
<summary>🛠️ Installationsschritte</summary> <summary>🛠️ Installationsschritte</summary>
- **DMG-Installationsprogramm (`.dmg`)**: Doppelklicken Sie zum Mounten und ziehen Sie dann `YTSage.app` in Ihren Anwendungsordner. - **DMG-Installer (`.dmg`)**: Doppelklick zum Mounten, dann `YTSage.app` in den Programme-Ordner ziehen.
- **App-Archiv (`.zip`)**: Extrahieren Sie die ZIP-Datei und verschieben Sie `YTSage.app` in Ihren Anwendungsordner. - **App-Archiv (`.zip`)**: Zip entpacken und `YTSage.app` in den Programme-Ordner verschieben.
*Hinweis: Wenn Sie auf den Fehler „App ist beschädigt“ stoßen, sehen Sie sich das [macOS troubleshooting section](#troubleshooting) unten an.* *Hinweis: Wenn Sie die Fehlermeldung "App ist beschädigt" erhalten, lesen Sie bitte den Abschnitt zur Fehlerbehebung für macOS weiter unten.*
</details> </details>
--- ---
<details> <details>
<summary>💻 Manuelle Installation von der Quelle</summary> <summary>💻 Manuelle Installation aus dem Quellcode</summary>
### 1. Klonen Sie das Repository ### 1. Repository klonen
```bash ```bash
git clone https://github.com/oop7/YTSage.git git clone https://github.com/oop7/YTSage.git
@@ -183,19 +184,19 @@ cd YTSage
### 2. Abhängigkeiten installieren ### 2. Abhängigkeiten installieren
#### ⚡ Mit UV #### ⚡ Mit uv
```bash ```bash
uv pip install . uv pip install .
``` ```
#### 📦 Oder mit Standard-Pip #### 📦 Oder mit Standard-pip
```bash ```bash
pip install . pip install .
``` ```
### 3. Führen Sie die Anwendung aus ### 3. Anwendung starten
```bash ```bash
python -m ytsage.main python -m ytsage.main
@@ -209,46 +210,47 @@ 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="Download-Einstellungen" width="400"/></td>
<td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td> <td><img src="../branding/screenshots/playlist.png" alt="Playlist-Download" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Download-Einstellungen</em></td> <td align="center"><em>Download-Einstellungen</em></td>
<td align="center"><em>Playlist-Download</em></td> <td align="center"><em>Playlist-Download</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="Audioformat-Auswahl" 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="Benutzerdefinierte Optionen" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Audioformat</em></td> <td align="center"><em>Audioformat</em></td>
<td align="center"><em>Benutzerdefinierte Optionen</em></td> <td align="center"><em>Benutzerdefinierte Optionen</em></td>
</tr> </tr>
</table> </table>
</div><a id="usage"></a> </div>
## 📖 Verwendung <a id="usage"></a>
## 📖 Bedienung
<details> <details>
<summary>🎯 Grundlegende Verwendung</summary> <summary>🎯 Grundlegende Bedienung</summary>
1. **YTSage starten** 1. **YTSage starten**
2. **YouTube-URL einfügen** (oder verwenden Sie die Schaltfläche „URL einfügen) 2. **YouTube-URL einfügen** (oder die Schaltfläche "Paste URL" verwenden)
3. **Klicken Sie auf Analysieren** 3. **Auf "Analyze" klicken**
4. **Format auswählen:** 4. **Format auswählen:**
- `Video` für Video-Downloads - `Video` für Video-Downloads
- `Audio Only` zur Audioextraktion - `Audio Only` r Audio-Extraktion
5. **Optionen wählen:** 5. **Optionen wählen:**
- Untertitel aktivieren und Sprache auswählen - Untertitel aktivieren & Sprache auswählen
- Untertitelzusammenführung aktivieren - Untertitel-Merging aktivieren
- Miniaturansicht speichern - Thumbnail speichern
- Entfernen Sie Sponsorsegmente - Sponsoren-Segmente entfernen
- Beschreibung speichern - Beschreibung speichern
- Kapitel einbetten - Kapitel integrieren
6. **Ausgabeverzeichnis auswählen** 6. **Ausgabeverzeichnis wählen**
7. **Klicken Sie auf „Herunterladen** 7. **Auf "Download" klicken**
> 💡 Das Standard-Download-Verzeichnis ist der Ordner „Downloads des Benutzers. > 💡 Das Standard-Download-Verzeichnis ist der "Downloads"-Ordner des Benutzers.
</details> </details>
@@ -256,94 +258,97 @@ python -m ytsage.main
<summary>📋 Playlist-Download</summary> <summary>📋 Playlist-Download</summary>
1. **Playlist-URL einfügen** 1. **Playlist-URL einfügen**
2. **Klicken Sie auf Analysieren** 2. **Auf "Analyze" klicken**
3. **Wählen Sie Videos aus der Playlist-Auswahl aus (optional, standardmäßig alle)** 3. **Videos aus dem Playlist-Selector auswählen (optional, standardmäßig alle)**
4. **Wählen Sie das gewünschte Format/die gewünschte Qualität** 4. **Gewünschtes Format/Qualität wählen**
5. **Klicken Sie auf „Herunterladen** 5. **Auf "Download" klicken**
> 💡 Die Anwendung verwaltet die Download-Warteschlange automatisch > 💡 Die Anwendung verwaltet die Download-Warteschlange automatisch, und Sie können Playlist-Einträge als `.txt`, `.csv`, `.m3u` oder `.json` exportieren.
</details> </details>
<details> <details>
<summary>🌍 Allgemeiner Modus für Nicht-YouTube-Websites</summary> <summary>🌍 Generischer Modus für Nicht-YouTube-Seiten</summary>
Verwenden Sie den generischen Modus, wenn Sie möchten, dass YTSage URLs von Websites akzeptiert, die von yt-dlp unterstützt werden, wie z. B. Dailymotion, CBC Gem, TikTok und andere. Verwenden Sie den generischen Modus (Generic Mode), wenn YTSage URLs von anderen von yt-dlp unterstützten Seiten wie Dailymotion, CBC Gem, TikTok und anderen akzeptieren soll.
So verwenden Sie es: So verwenden Sie ihn:
1. Öffnen Sie `Download Settings`. 1. Öffnen Sie `Download Settings`.
2. Aktivieren Sie `Generic Mode`. 2. Aktivieren Sie `Generic Mode`.
3. Fügen Sie eine unterstützte Nicht-YouTube-Video- oder Playlist-URL ein. 3. Fügen Sie eine unterstützte Video- oder Playlist-URL ein, die nicht von YouTube stammt.
4. Klicken Sie auf `Analyze`. 4. Klicken Sie auf `Analyze`.
5. Wählen Sie ein Format und laden Sie es wie gewohnt herunter. 5. Wählen Sie ein Format und laden Sie es wie gewohnt herunter.
Hinweise: Hinweise:
- Der generische Modus ändert nur die URL-Validierung innerhalb von YTSage. Die Zielsite muss weiterhin von Ihrer installierten yt-dlp-Version unterstützt werden. - Der generische Modus ändert nur die URL-Validierung innerhalb von YTSage. Die Zielseite muss weiterhin von Ihrer installierten yt-dlp-Version unterstützt werden.
- Einige Websites erfordern je nach Extraktor Cookies, eine Anmeldesitzung, einen Proxy oder zusätzliche YT-DLP-Argumente. - Einige Seiten erfordern Cookies, Login, Proxy oder zusätzliche yt-dlp-Argumente je nach Extractor.
- Wenn eine Site ausfällt, aktualisieren Sie yt-dlp zunächst über die Registerkarte des integrierten Updaters, bevor Sie das Problem melden. - Wenn eine Seite fehlschlägt, aktualisieren Sie zuerst yt-dlp über den integrierten Update-Tab, bevor Sie das Problem melden.
</details> </details>
<details> <details>
<summary>🧰 Medien- und Download-Optionen</summary> <summary>🧰 Medien- & Download-Optionen</summary>
- **Untertiteloptionen:** Sprachen filtern und Untertitel in die Videodatei einbetten - **Untertitel-Optionen:** Sprachen filtern und Untertitel in die Videodatei einbetten.
- **Untertitel zusammenführen:** Untertitel für fest codierte Untertitel in die Videodatei einbinden - **Untertitel-Merging:** Mergt Untertitel in die Videodatei für fest eingebrannte (hardcoded) Untertitel.
- **Beschreibung speichern:** Speichern Sie die Videobeschreibung als Textdatei - **Beschreibung speichern:** Speichert die Videobeschreibung als Textdatei.
- **Miniaturansicht speichern:** Speichern Sie die Miniaturansicht des Videos als Bilddatei - **Thumbnail speichern:** Speichert das Video-Thumbnail als Bilddatei.
- **Kapitel einbetten:** Betten Sie Kapitelmarkierungen als Metadaten für kompatible Videoplayer ein - **Kapitel integrieren:** Bettet Kapitelmarken als Metadaten für kompatible Videoplayer ein.
- **Sponsorensegmente entfernen:** Entfernen Sie Sponsorsegmente aus dem Video mit SponsorBlock - **Sponsoren-Segmente entfernen:** Entfernt gesponserte Abschnitte aus dem Video mithilfe von SponsorBlock.
- **Video zuschneiden:** Laden Sie nur bestimmte Teile eines Videos herunter, indem Sie Zeitbereiche im Format `HH:MM:SS` angeben - **Video zuschneiden:** Laden Sie nur bestimmte Teile eines Videos herunter, indem Sie Zeitbereiche im Format `HH:MM:SS` angeben.
</details> </details>
<details> <details>
<summary>⚙️ Ausgabe- und Dateieinstellungen</summary> <summary>⚙️ Ausgabe- & Dateieinstellungen</summary>
- **Geschwindigkeitsbegrenzer:** Begrenzt die Download-Geschwindigkeit, z. B. `500K` für 500 KB/s.
- **Download-Pfad speichern:** Speichert den Standard-Download-Pfad für zukünftige Downloads. Verfügbar unter **Download Settings → Download Path**.
- **Standard-Videoauflösung:** Legen Sie Ihre bevorzugte Videoauflösung für die automatische Auswahl fest (z. B. 1080p, 720p). Verfügbar unter **Download Settings → Default Video Resolution**.
- **Standard-Untertitelsprachen:** Legen Sie Standard-Untertitelsprachen für die automatische Auswahl fest (kommagetrennt, z. B. `de,en`). Verfügbar unter **Download Settings → Default Subtitle Languages**.
- **Dateinamen-Format:** Passen Sie das Format des Ausgabedateinamen mit Variablen wie `%(title)s`, `%(uploader)s`, `%(playlist_index)s` und `%(resolution)s` an. Verfügbar unter **Download Settings → Filename Format**.
- **Ausgabeformat erzwingen:** Erzwingt Video-Downloads in ein bestimmtes Containerformat wie `mp4`, `webm` oder `mkv`. Verfügbar unter **Download Settings → Output Format Settings**.
- **Audioformat-Konvertierung:** Konvertiert reine Audio-Downloads in bevorzugte Formate wie `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` oder `Best`. Verfügbar unter **Download Settings → Audio Format Settings**.
- **Audio-Normalisierung:** Standardisiert die Lautstärke für reine Audio-Downloads unter Verwendung von EBU R128.
- **Gleichzeitige Verbindungen:** Erhöhen Sie die Download-Geschwindigkeit erheblich, indem Sie Dateien in mehreren Fragmenten gleichzeitig herunterladen. Verfügbar unter **Download Settings → General → Concurrent Connections** (Standardmäßig 1, maximal 8-10 empfohlen, um IP-Sperren zu vermeiden).
- **Geschwindigkeitsbegrenzer:** Begrenzen Sie die Download-Geschwindigkeit, zum Beispiel `500K` auf 500 KB/s
- **Download-Pfad speichern:** Speichern Sie den Standard-Download-Pfad für zukünftige Downloads. Verfügbar unter **Download-Einstellungen → Download-Pfad**.
- **Format des Ausgabedateinamens:** Passen Sie das Format des Ausgabedateinamens mithilfe von Variablen wie `%(title)s`, `%(uploader)s` und `%(resolution)s` an. Verfügbar unter **Download-Einstellungen → Dateinamenformat**.
- **Ausgabeformat erzwingen:** Video-Downloads in ein bestimmtes Containerformat wie `mp4`, `webm` oder `mkv` erzwingen. Verfügbar unter **Download-Einstellungen → Ausgabeformat-Einstellungen**.
- **Audioformatkonvertierung:** Konvertieren Sie reine Audio-Downloads in bevorzugte Formate wie `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` oder `Best`. Verfügbar unter **Download-Einstellungen → Audioformat-Einstellungen**.
- **Audio-Normalisierung:** Standardisieren Sie die Lautstärke für reine Audio-Downloads mit EBU R128.
- **Gleichzeitige Verbindungen:** Erhöhen Sie die Download-Geschwindigkeit drastisch, indem Sie Dateien gleichzeitig in mehreren Fragmenten herunterladen. Verfügbar in **Download-Einstellungen → Allgemein → Gleichzeitige Verbindungen** (Standard ist 1, empfohlenes Maximum ist 8-10, um IP-Einschränkungen zu vermeiden).\n
</details> </details>
<details> <details>
<summary>🌐 Zugang und Netzwerk</summary> <summary>🌐 Zugriff & Netzwerk</summary>
- **Mit Cookies anmelden:** Melden Sie sich mit Cookies bei YouTube an, um auf private Inhalte zuzugreifen. - **Cookie-Login:** Loggen Sie sich mit Cookies bei YouTube ein, um auf private Inhalte zuzugreifen.
So verwenden Sie es: Verwendung:
1. **Empfohlen:** Verwenden Sie die integrierte Option Extract cookies from browser in der App und wählen Sie dann Ihren Browser und optional ein Profil aus. 1. **Empfohlen:** Verwenden Sie die integrierte Option `Extract cookies from browser` in der App, wählen Sie dann Ihren Browser und optional ein Profil.
2. Alternativ können Sie Cookies auch manuell extrahieren: 2. Alternativ können Sie Cookies manuell extrahieren:
a. Exportieren Sie Cookies aus Ihrem Browser mit einer Erweiterung wie [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file) a. Exportieren Sie Cookies aus Ihrem Browser mit einer Erweiterung wie [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
b. Kopieren Sie die Cookies im Netscape-Format b. Kopieren Sie die Cookies im Netscape-Format
c. Erstellen Sie eine Datei mit dem Namen `cookies.txt` und fügen Sie die Cookies darin ein c. Erstellen Sie eine Datei namens `cookies.txt` und fügen Sie die Cookies ein
d. Wählen Sie in der App die Datei cookies.txt aus d. Wählen Sie die Datei `cookies.txt` in der App aus
- **Proxy-Unterstützung:** Verwenden Sie einen Proxy-Server für Downloads, zum Beispiel `http://<proxy-server>:<port>` - **Proxy-Support:** Verwenden Sie einen Proxy-Server für Downloads, z. B. `http://<proxy-server>:<port>`
- **Generischer Modus:** Ermöglicht YTSage die Analyse und den Download von Nicht-YouTube-Websites, die von yt-dlp unterstützt werden. Aktivieren Sie es über **Download-Einstellungen → Allgemeiner Modus**. - **Generischer Modus:** Ermöglicht YTSage das Analysieren und Herunterladen von anderen von yt-dlp unterstützten Seiten. Aktivieren Sie dies unter **Download Settings → Generic Mode**.
</details> </details>
<details> <details>
<summary>🛠️ Werkzeuge und Wartung</summary> <summary>🛠️ Tools & Wartung</summary>
- **Benutzerdefinierte Befehle:** Greifen Sie über Befehlszeilenargumente auf erweiterte yt-dlp-Funktionen zu - **Benutzerdefinierte Befehle:** Greifen Sie auf erweiterte yt-dlp-Funktionen über Befehlszeilenargumente zu.
- **Registerkarte „Updater“:** Integrierte Update-Tools von einem Ort aus in den benutzerdefinierten Optionen verwalten: - **Update-Tab:** Verwalten Sie integrierte Update-Tools an einem Ort in den benutzerdefinierten Optionen:
- **yt-dlp-Updates:** Suchen Sie nach Updates und wechseln Sie zwischen den Veröffentlichungskanälen Stable und Nightly - **yt-dlp Updates:** Suchen Sie nach Updates und wechseln Sie zwischen Stable- und Nightly-Release-Kanälen.
- **FFmpeg-Versionsprüfer:** Überprüfen Sie Ihre FFmpeg-Version und öffnen Sie die Installationsanleitungen - **FFmpeg-Versionsprüfung:** Überprüfen Sie Ihre FFmpeg-Version und öffnen Sie Installationsanleitungen.
- **Deno-Updates:** Überprüfen und aktualisieren Sie die Deno-Laufzeitumgebung - **Deno-Updates:** Überprüfen und aktualisieren Sie die Deno-Laufzeitumgebung.
- **FFmpeg/yt-dlp/Deno-Erkennung:** Erkennt automatisch FFmpeg-, yt-dlp- und Deno-Pfade und -Versionen im Info-Dialog. - **FFmpeg/yt-dlp/Deno Erkennung:** Erkennt Pfade und Versionen von FFmpeg, yt-dlp und Deno automatisch aus dem About-Dialog.
- **Download-Verlauf:** Zeigen Sie frühere Downloads mit Miniaturansichten und Status über die Schaltfläche **Verlauf** an. - **Download-Historie:** Zeigt vergangene Downloads mit Thumbnails und Status über die Schaltfläche **History** an.
</details> </details>
<details> <details>
<summary>🌍 Lokalisierung</summary> <summary>🌍 Lokalisierung</summary>
YTSage unterstützt **14 Sprachen** für weltweite Zugänglichkeit. Wählen Sie Ihre bevorzugte Sprache unter **Benutzerdefinierte OptionenSprache** aus. YTSage unterstützt **14 Sprachen** für globale Barrierefreiheit. Wählen Sie Ihre bevorzugte Sprache unter **Custom OptionsLanguage**.
### Unterstützte Sprachen ### Unterstützte Sprachen
@@ -361,7 +366,7 @@ YTSage unterstützt **14 Sprachen** für weltweite Zugänglichkeit. Wählen Sie
| Sprache | Datei | Sprache | Datei | | Sprache | Datei | Sprache | Datei |
|----------|------|----------|------| |----------|------|----------|------|
| 🇺🇸 Englisch | [README.md](../README.md) | 🇪🇸 Spanisch | [README.es.md](README.es.md) | 🇺🇸 Englisch | [README.md](README.md) | 🇪🇸 Spanisch | [README.es.md](README.es.md) |
| 🇸🇦 Arabisch | [README.ar.md](README.ar.md) | 🇫🇷 Französisch | [README.fr.md](README.fr.md) | | 🇸🇦 Arabisch | [README.ar.md](README.ar.md) | 🇫🇷 Französisch | [README.fr.md](README.fr.md) |
| 🇩🇪 Deutsch | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) | | 🇩🇪 Deutsch | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) |
| 🇮🇩 Indonesisch | [README.id.md](README.id.md) | 🇮🇹 Italienisch | [README.it.md](README.it.md) | | 🇮🇩 Indonesisch | [README.id.md](README.id.md) | 🇮🇹 Italienisch | [README.it.md](README.it.md) |
@@ -369,7 +374,7 @@ YTSage unterstützt **14 Sprachen** für weltweite Zugänglichkeit. Wählen Sie
| 🇧🇷 Portugiesisch | [README.pt.md](README.pt.md) | 🇷🇺 Russisch | [README.ru.md](README.ru.md) | | 🇧🇷 Portugiesisch | [README.pt.md](README.pt.md) | 🇷🇺 Russisch | [README.ru.md](README.ru.md) |
| 🇹🇷 Türkisch | [README.tr.md](README.tr.md) | 🇨🇳 Chinesisch | [README.zh.md](README.zh.md) | | 🇹🇷 Türkisch | [README.tr.md](README.tr.md) | 🇨🇳 Chinesisch | [README.zh.md](README.zh.md) |
> 💡 **Möchten Sie eine Übersetzung beisteuern?** Schauen Sie sich den Abschnitt [Contributing](#contributing) an, um uns beim Hinzufügen weiterer Sprachen zu helfen! > 💡 **Möchten Sie bei einer Übersetzung helfen?** Schauen Sie in den Abschnitt [Mitwirken](#contributing), um uns zu helfen, weitere Sprachen hinzuzufügen!
</details> </details>
@@ -379,50 +384,50 @@ YTSage unterstützt **14 Sprachen** für weltweite Zugänglichkeit. Wählen Sie
<details> <details>
<summary>Klicken Sie hier, um häufige Probleme und Lösungen anzuzeigen</summary> <summary>Klicken Sie hier, um häufige Probleme und Lösungen anzuzeigen</summary>
- **Formattabelle wird nicht angezeigt:** Aktualisieren Sie yt-dlp auf die neueste Version und wechseln Sie jede Nacht zu yt-dlp. - **Formattabelle wird nicht angezeigt:** Aktualisieren Sie yt-dlp auf die neueste Version und wechseln Sie zu yt-dlp nightly.
- **Download schlägt fehl:** Überprüfen Sie Ihre Internetverbindung und stellen Sie sicher, dass das Video verfügbar ist. - **Download schlägt fehl:** Überprüfen Sie Ihre Internetverbindung und stellen Sie sicher, dass das Video verfügbar ist.
- **Spezifische Downloadfehler:** - **Spezifische Download-Fehler:**
- **Private Videos:** Verwenden Sie die Cookie-Authentifizierung, um auf private Inhalte zuzugreifen. - **Private Videos:** Verwenden Sie Cookie-Authentifizierung, um auf private Inhalte zuzugreifen.
- **Inhalte mit Altersbeschränkung:** Melden Sie sich bei Ihrem YouTube-Konto an, um Videos mit Altersbeschränkung anzusehen. - **Videos mit Altersbeschränkung:** Loggen Sie sich in Ihr YouTube-Konto ein, um altersbeschränkte Videos anzusehen.
- **Geoblockierte Videos:** Erwägen Sie die Verwendung eines VPN, um regionale Beschränkungen zu umgehen. - **Geoblockierte Videos:** Erwägen Sie die Verwendung eines VPN, um regionale Einschränkungen zu umgehen.
- **Entfernte/gelöschte Videos:** Das Video ist nicht mehr auf YouTube verfügbar. - **Gelöschte Videos:** Das Video ist auf YouTube nicht mehr verfügbar.
- **Live-Streams:** Live-Streams können nicht heruntergeladen werden; Warten Sie, bis der Stream beendet ist. - **Livestreams:** Livestreams können während der Übertragung nicht heruntergeladen werden; warten Sie, bis der Stream beendet ist.
- **Netzwerkfehler:** Überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut. - **Netzwerkfehler:** Überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.
- **Ungültige URLs:** Stellen Sie sicher, dass die URL korrekt ist und von einer unterstützten Plattform stammt. - **Ungültige URLs:** Stellen Sie sicher, dass die URL korrekt ist und von einer unterstützten Plattform stammt.
- **Premium-Inhalte:** Erfordert eine YouTube Premium-Mitgliedschaft. - **Premium-Inhalte:** Erfordert ein YouTube-Premium-Abonnement.
- **Urheberrechtliche Sperren:** Der Inhalt ist aufgrund von Urheberrechtsbeschränkungen gesperrt. - **Urheberrechtssperren:** Der Inhalt ist aufgrund von Urheberrechtsbeschränkungen gesperrt.
- **Video- und Audiodateien nach dem Download trennen:** Dies passiert, wenn FFmpeg fehlt oder nicht erkannt wird. YTSage benötigt FFmpeg, um hochwertige Video- und Audiostreams zusammenzuführen. - **Video- und Audiodateien sind nach dem Download getrennt:** Dies passiert, wenn FFmpeg fehlt oder nicht erkannt wird. YTSage benötigt FFmpeg, um hochwertige Video- und Audiostreams zusammenzuführen.
- **Lösung:** Stellen Sie sicher, dass FFmpeg im PATH Ihres Systems installiert und zugänglich ist. Für Windows-Benutzer ist es am einfachsten, die Datei YTSage-v<version>-ffmpeg.exe herunterzuladen, die im Lieferumfang von FFmpeg enthalten ist. - **Lösung:** Stellen Sie sicher, dass FFmpeg installiert und im PATH Ihres Systems zugänglich ist. Für Windows-Benutzer ist die einfachste Option, die Datei `YTSage-v<version>-ffmpeg.exe` herunterzuladen, die FFmpeg integriert hat.
--- ---
#### 🛡️ Windows Defender/Antivirus-Warnung #### 🛡️ Windows Defender / Antivirus Warnung
Einige Antivirenprogramme kennzeichnen die „.exe-Dateien möglicherweise als falsch positive Ergebnisse. Dies ist eine **bekannte Einschränkung** von Paketanwendungen. Einige Antivirenprogramme können `.exe`-Dateien als Fehlalarm (False Positive) markieren. Dies ist eine **bekannte Einschränkung** von gepackten Anwendungen.
**Warum das passiert:** **Warum das passiert:**
Antivirus-Heuristiken können gepackte ausführbare Dateien fälschlicherweise als verdächtig identifizieren - Antiviren-Heuristiken können gepackte ausführbare Dateien fälschlicherweise als verdächtig identifizieren.
**Sichere Alternativen:** **Sichere Alternativen:**
- ✅ **Pip-Installation verwenden:** `pip install ytsage` (empfohlen) - ✅ **Verwenden Sie die pip-Installation:** `pip install ytsage` (Empfohlen)
- ✅ **Aus dem Quellcode erstellen**: Folgen Sie diesem [guide](../.github/CI_CD_README.md) - ✅ **Aus dem Quellcode bauen**: Folgen Sie diesem [Leitfaden](.github/CI_CD_README.md)
- ✅ **Setzen Sie die Anwendung in Ihre Antivirensoftware auf die Whitelist - ✅ **App auf die Whitelist setzen** in Ihrer Antiviren-Software.
#### 🍎 macOS: App ist beschädigt und kann nicht geöffnet werden #### 🍎 macOS: "Die App ist beschädigt und kann nicht geöffnet werden"
Wenn dieser Fehler unter macOS Sonoma oder neuer auftritt, müssen Sie das Quarantäneattribut entfernen. Wenn dieser Fehler unter macOS Sonoma oder neuer auftritt, müssen Sie das Quarantäne-Attribut entfernen.
1. **Öffnen Sie das Terminal** (Sie können es mit Spotlight finden). 1. **Öffnen Sie das Terminal** (Sie finden es über Spotlight).
2. **Geben Sie den folgenden Befehl ein**, drücken Sie aber noch nicht die Eingabetaste. Achten Sie darauf, das Leerzeichen am Ende einzufügen: 2. **Geben Sie den folgenden Befehl ein**, aber drücken Sie noch **nicht** Enter. Stellen Sie sicher, dass am Ende ein Leerzeichen steht:
```bash ```bash
xattr -d com.apple.quarantine xattr -d com.apple.quarantine
``` ```
3. **Ziehen Sie die Datei YTSage.app aus Ihrem Finder-Fenster und legen Sie sie direkt im Terminalfenster ab. Dadurch wird automatisch der richtige Dateipfad eingefügt. 3. **Ziehen Sie die Datei `YTSage.app`** aus Ihrem Finder-Fenster direkt in das Terminal-Fenster. Dadurch wird der korrekte Dateipfad automatisch eingefügt.
4. **Drücken Sie die Eingabetaste**, um den Befehl auszuführen. 4. **Drücken Sie Enter**, um den Befehl auszuführen.
5. **Versuchen Sie erneut, YTSage.app zu öffnen.** Es sollte jetzt korrekt starten. 5. **Versuchen Sie erneut, YTSage.app zu öffnen.** Sie sollte nun korrekt starten.
--- ---
#### **Konfigurationsorte (Erweitert)** #### **Speicherorte der Konfiguration (Erweitert)**
- **Windows:** `%LOCALAPPDATA%\YTSage` - **Windows:** `%LOCALAPPDATA%\YTSage`
- **macOS:** `~/Library/Application Support/YTSage` - **macOS:** `~/Library/Application Support/YTSage`
- **Linux:** `~/.local/share/YTSage` - **Linux:** `~/.local/share/YTSage`
@@ -430,45 +435,45 @@ Wenn dieser Fehler unter macOS Sonoma oder neuer auftritt, müssen Sie das Quara
</details> </details>
<a id="sponsor"></a> <a id="sponsor"></a>
## 💖 Sponsor ## 💖 Sponsoren
Wenn Sie mit YTSage Zeit sparen, sollten Sie das Projekt sponsern. Durch Sponsoring können Entwicklungszeit, plattformübergreifende Tests und zukünftige Verbesserungen abgedeckt werden. Wenn YTSage Ihnen Zeit spart, ziehen Sie bitte in Erwägung, das Projekt zu sponsern. Sponsoring hilft, die Entwicklungszeit, Tests auf allen Plattformen und zukünftige Verbesserungen zu finanzieren.
- GitHub-Sponsoren: https://github.com/sponsors/oop7 - GitHub Sponsors: https://github.com/sponsors/oop7
- Der Sponsor-Link ist auch direkt in der App im Info-Dialog verfügbar. - Der Sponsoring-Link ist auch direkt in der App über den About-Dialog verfügbar.
[![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7) [![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7)
<a id="contributing"></a> <a id="contributing"></a>
## 👥 Mitwirken ## 👥 Mitwirken
Wir freuen uns über Beiträge! So können Sie helfen: Beiträge sind herzlich willkommen! So können Sie helfen:
1. 🍴 Forken Sie das Repository 1. 🍴 Forken Sie das Repository
2. 🌿 Erstellen Sie Ihren Feature-Branch: 2. 🌿 Erstellen Sie einen Feature-Branch:
```bash ```bash
git checkout -b feature/AmazingFeature git checkout -b feature/AmazingFeature
``` ```
3. 💾 Übernehmen Sie Ihre Änderungen: 3. 💾 Committen Sie Ihre Änderungen:
```bash ```bash
git commit -m 'Add some AmazingFeature' git commit -m 'Add some AmazingFeature'
``` ```
4. 📤 Zur Filiale schieben: 4. 📤 Pushen Sie in den Branch:
```bash ```bash
git push origin feature/AmazingFeature git push origin feature/AmazingFeature
``` ```
5. 🔄 Öffnen Sie eine Pull-Anfrage 5. 🔄 Öffnen Sie einen Pull Request
### 🌍 Mitwirkende Übersetzungen ### 🌍 Zu Übersetzungen beitragen
- Aktualisieren Sie die passende lokalisierte README-Datei (zum Beispiel `README.es.md`) - Aktualisieren Sie die entsprechende lokalisierte README-Datei (z. B. `readme-translations/README.de.md`)
- Halten Sie App-Strings synchron, indem Sie `ytsage/languages/<code>.json` bearbeiten - Halten Sie die App-Strings synchron, indem Sie `ytsage/languages/<code>.json` bearbeiten
- Wenn Ihre Sprache fehlt, beginnen Sie mit `README.md` und erstellen Sie `README.<code>.md` - Wenn Ihre Sprache fehlt, beginnen Sie mit der `README.md` und erstellen Sie `README.<code>.md`
<details> <details>
<summary>📂 Projektstruktur</summary> <summary>📂 Projektstruktur</summary>
## YTSage Projektstruktur ## YTSage - Projektstruktur
Dieses Dokument beschreibt die organisierte Ordnerstruktur von YTSage. Dieses Dokument beschreibt die organisierte Ordnerstruktur von YTSage.
@@ -476,58 +481,58 @@ Dieses Dokument beschreibt die organisierte Ordnerstruktur von YTSage.
``` ```
YTSage/ YTSage/
├── 📁 .github/ # GitHub configuration ├── 📁 .github/ # GitHub-Konfiguration
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates │ ├── 📁 ISSUE_TEMPLATE/ # Ticket-Vorlagen
│ │ └── 🐛-bug-report.md # Bug report template │ │ └── 🐛-bug-report.md # Bug-Report-Vorlage
│ ├─── 📁 workflows/ # GitHub Actions workflows │ ├─── 📁 workflows/ # GitHub Actions Workflows
│ │ ├── build-linux.yml # Linux build workflow │ │ ├── build-linux.yml # Linux Build Workflow
│ │ ├── build-macos.yml # macOS build workflow │ │ ├── build-macos.yml # macOS Build Workflow
│ │ │── build-windows.yml # Windows build workflow │ │ │── build-windows.yml # Windows Build Workflow
| | └── release-all.yml # Master release workflow | | └── release-all.yml # Master Release Workflow
│ └── 📄 CI_CD_README.md # CI/CD documentation │ └── 📄 CI_CD_README.md # CI/CD-Dokumentation
├── 📁 branding/ # Branding assets (Screenshots, SVGs) ├── 📁 branding/ # Branding-Assets (Screenshots, SVGs)
│ ├── 📁 icons/ # Application icons │ ├── 📁 icons/ # App-Icons
│ ├── 📁 screenshots/ # Screenshots for documentation │ ├── 📁 screenshots/ # Screenshots für die Dokumentation
│ └── 📁 svg/ # SVG assets │ └── 📁 svg/ # SVG-Assets
├── 📄 LICENSE # License file ├── 📄 LICENSE # Lizenzdatei
├── 📄 pyproject.toml # Project metadata and dependencies ├── 📄 pyproject.toml # Projekt-Metadaten und Abhängigkeiten
├── 📄 README.md # Project documentation ├── 📄 README.md # Projekt-Dokumentation
├── 📄 requirements.txt # Python dependencies (dev) ├── 📄 requirements.txt # Python-Abhängigkeiten (dev)
└── 📁 ytsage/ # Source package └── 📁 ytsage/ # Quellcode-Paket
├── 📁 assets/ # Runtime assets ├── 📁 assets/ # Laufzeit-Assets
│ ├── 📁 Icon/ # Application icons │ ├── 📁 Icon/ # App-Icons
│ └── 📁 sound/ # Audio files │ └── 📁 sound/ # Audiodateien
├── 📁 languages/ # Localization files ├── 📁 languages/ # Lokalisierungsdateien
│ ├── 📄 ar.json # Arabic translation │ ├── 📄 ar.json # Arabische Übersetzung
│ ├── 📄 de.json # German translation │ ├── 📄 de.json # Deutsche Übersetzung
│ ├── 📄 en.json # English translation │ ├── 📄 en.json # Englische Übersetzung
│ └── ... # Other languages │ └── ... # Weitere Sprachen
├── 📁 core/ # Core business logic ├── 📁 core/ # Hauptgeschäftslogik
│ ├── 📄 __init__.py # Core package init │ ├── 📄 __init__.py # Core-Paket-Initialisierung
│ ├── 📄 ytsage_deno.py # Deno integration │ ├── 📄 ytsage_deno.py # Deno-Integration
│ ├── 📄 ytsage_downloader.py # Download functionality │ ├── 📄 ytsage_downloader.py # Download-Funktionalität
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration │ ├── 📄 ytsage_ffmpeg.py # FFmpeg-Integration
│ ├── 📄 ytsage_utils.py # Utility functions │ ├── 📄 ytsage_utils.py # Hilfsfunktionen
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration │ └── 📄 ytsage_yt_dlp.py # yt-dlp-Integration
├── 📁 gui/ # User interface components ├── 📁 gui/ # Benutzeroberflächen-Komponenten
│ ├── 📄 __init__.py # GUI package init │ ├── 📄 __init__.py # GUI-Paket-Initialisierung
│ ├── 📄 ytsage_gui_main.py # Main application window │ ├── 📄 ytsage_gui_main.py # Hauptfenster der App
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes │ └── 📁 ytsage_gui_dialogs/ # Dialog-Klassen
├── 📁 utils/ # Utility modules ├── 📁 utils/ # Hilfsmodule
│ ├── 📄 __init__.py # Utils package init │ ├── 📄 __init__.py # Utils-Paket-Initialisierung
│ ├── 📄 ytsage_config_manager.py # Configuration management │ ├── 📄 ytsage_config_manager.py # Konfigurationsverwaltung
│ └── 📄 ytsage_logger.py # Logging utilities │ └── 📄 ytsage_logger.py # Logging-Tool
├── 📄 __init__.py # Package entry point ├── 📄 __init__.py # Paket-Einstiegspunkt
└── 📄 main.py # Main execution script └── 📄 main.py # Hauptskript zur Ausführung
``` ```
</details> </details>
## ⭐️ Sterngeschichte ## ⭐️ Star History
<div align="center"> <div align="center">
## Sterngeschichte ## 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/
## 📜 Lizenz ## 📜 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert Einzelheiten finden Sie in der Datei „LICENSE“. Dieses Projekt steht unter der MIT-Lizenz weitere Details finden Sie in der Datei [LICENSE](LICENSE).
## 🙏 Danksagungen ## 🙏 Danksagungen
@@ -550,13 +555,13 @@ Dieses Projekt ist unter der MIT-Lizenz lizenziert Einzelheiten finden Sie i
<div align="center"> <div align="center">
<p>Ein herzliches Dankeschön an alle, die zu diesem Projekt beigetragen haben, indem sie ein Problem geöffnet haben, um eine Verbesserung vorzuschlagen oder einen Fehler zu melden.</p> <p>Ein großes Dankeschön an alle, die zu diesem Projekt beigetragen haben, indem sie Tickets für Verbesserungsvorschläge oder Bug-Reports geöffnet haben.</p>
<table> <table>
<tr class="section"><th colspan="2">Kernkomponenten</th></tr> <tr class="section"><th colspan="2">Kernkomponenten</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>Download Engine</td> <td>Download-Engine</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://ffmpeg.org/">FFmpeg</a></td> <td><a href="https://ffmpeg.org/">FFmpeg</a></td>
@@ -564,40 +569,41 @@ Dieses Projekt ist unter der MIT-Lizenz lizenziert Einzelheiten finden Sie i
</tr> </tr>
<tr> <tr>
<td><a href="https://deno.com/">Deno</a></td> <td><a href="https://deno.com/">Deno</a></td>
<td>Laufzeit für die Integration mit yt-dlp</td> <td>Runtime für yt-dlp Integration</td>
</tr> </tr>
<tr class="section"><th colspan="2">Bibliotheken und Frameworks</th></tr> <tr class="section"><th colspan="2">Bibliotheken & 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>GUI-Framework</td> <td>GUI-Framework</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-pillow.org/">Kissen</a></td> <td><a href="https://python-pillow.org/">Pillow</a></td>
<td>Bildverarbeitung</td> <td>Bildverarbeitung</td>
</tr> </tr>
<tr><td><a href="https://requests.readthedocs.io/">Anfragen</a></td> <tr>
<td><a href="https://requests.readthedocs.io/">requests</a></td>
<td>HTTP-Anfragen</td> <td>HTTP-Anfragen</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://packaging.python.org/">Verpackung</a></td> <td><a href="https://packaging.python.org/">packaging</a></td>
<td>Versions- und Pakethandhabung</td> <td>Versionsverwaltung & Packaging</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-markdown.github.io/">Abschlag</a></td> <td><a href="https://python-markdown.github.io/">markdown</a></td>
<td>Markdown-Rendering</td> <td>Markdown-Rendering</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>Protokollierung</td> <td>Logging</td>
</tr> </tr>
<tr class="section"><th colspan="2">Vermögenswerte und Mitwirkende</th></tr> <tr class="section"><th colspan="2">Assets & Mitwirkende</th></tr>
<tr> <tr>
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Neue Benachrichtigung 09 von Universfield</a></td> <td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">New Notification 09 by Universfield</a></td>
<td>Benachrichtigungston</td> <td>Benachrichtigungston</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://github.com/viru185">viru185</a></td> <td><a href="https://github.com/viru185">viru185</a></td>
<td>Code-Mitwirkender</td> <td>Code-Contributor</td>
</tr> </tr>
</table> </table>
@@ -607,12 +613,12 @@ Dieses Projekt ist unter der MIT-Lizenz lizenziert Einzelheiten finden Sie i
## ⚠️ Haftungsausschluss ## ⚠️ Haftungsausschluss
Dieses Tool ist nur für den persönlichen Gebrauch bestimmt. Bitte respektieren Sie die Nutzungsbedingungen und die Rechte der Inhaltsersteller von YouTube. Dieses Tool ist nur für den persönlichen Gebrauch bestimmt. Bitte respektieren Sie die Nutzungsbedingungen von YouTube und die Rechte der Content-Ersteller.
--- ---
<div align="center"> <div align="center">
Hergestellt mit ❤️ von [oop7](https://github.com/oop7) Erstellt mit ❤️ von [oop7](https://github.com/oop7)
</div> </div>
+278 -272
View File
@@ -12,81 +12,82 @@
[![PyPI version](https://img.shields.io/pypi/v/ytsage?color=c90000&style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/ytsage/) [![PyPI version](https://img.shields.io/pypi/v/ytsage?color=c90000&style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/ytsage/)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7) [![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7)
**Un moderno downloader da YouTube con un'interfaccia PySide6 pulita.** **Un downloader YouTube moderno con un'interfaccia PySide6 pulita.**
Scarica video di qualsiasi qualità, estrai audio, recupera sottotitoli e altro ancora. Scarica video in qualsiasi qualità, estrai audio, ottieni sottotitoli e molto altro.
### 🌍 README Lingue ### 🌍 Lingue del README
Inglese: [EN](../README.md) Inglese: [EN](../README.md)
| Indirizzo: [AR](README.ar.md) | Arabo: [AR](README.ar.md)
| Tedesco: [DE](README.de.md) | Tedesco: [DE](README.de.md)
| Español: [ES](README.es.md) | Spagnolo: [ES](README.es.md)
| Francese: [FR](README.fr.md) | Francese: [FR](README.fr.md)
| Nome: [HI](README.hi.md) | Hindi: [HI](README.hi.md)
| Bahasa Indonesia: [ID](README.id.md) | Indonesiano: [ID](README.id.md)
| Italiano: [IT](README.it.md) | Italiano: [IT](README.it.md)
| 日本語: [JA](README.ja.md) | Giapponese: [JA](README.ja.md)
| Polacco: [PL](README.pl.md) | Polacco: [PL](README.pl.md)
| Portoghese: [PT](README.pt.md) | Portoghese: [PT](README.pt.md)
| Russo: [RU](README.ru.md) | Russo: [RU](README.ru.md)
| Turchia: [TR](README.tr.md) | Turco: [TR](README.tr.md)
| Nome: [ZH](README.zh.md) | Cinese: [ZH](README.zh.md)
<p align="center"> <p align="center">
<a href="#installation">Installazione</a> • <a href="#installazione">Installazione</a> •
<a href="#features">Caratteristiche</a> • <a href="#caratteristiche">Caratteristiche</a> •
<a href="#usage">Utilizzo</a> • <a href="#utilizzo">Utilizzo</a> •
<a href="#screenshots">Screenshot</a> • <a href="#screenshot">Screenshot</a> •
<a href="#troubleshooting">Risoluzione dei problemi</a> • <a href="#risoluzione-dei-problemi">Risoluzione dei problemi</a> •
<a href="#sponsor">Sponsor</a> • <a href="#sponsor">Sponsor</a> •
<a href="#contributing">Contribuendo</a> <a href="#contribuire">Contribuire</a>
</p> </p>
</div> </div>
--- ---
<a id="why-ytsage"></a> <a id="perché-ytsage"></a>
## ❓Perché YTSage? ## ❓ Perché YTSage?
YTSage è progettato per gli utenti che desiderano un **downloader YouTube semplice ma potente**. A differenza di altri strumenti, offre: YTSage è progettato per gli utenti che desiderano un **downloader YouTube semplice ma potente**. A differenza di altri strumenti, offre:
- Un'interfaccia PySide6 pulita e moderna - Un'interfaccia PySide6 moderna e pulita
- Download con un clic per video, audio e sottotitoli - Download di video, audio e sottotitoli con un solo clic
- Funzionalità avanzate come SponsorBlock, fusione dei sottotitoli e selezione della playlist - Funzioni avanzate come SponsorBlock, fusione dei sottotitoli e selezione della playlist
- Modalità generica opzionale per i siti supportati da yt-dlp oltre YouTube - Modalità Generica opzionale per siti diversi da YouTube supportati da yt-dlp
- Supporto multipiattaforma e facilità di installazione - Supporto multipiattaforma e installazione semplice
<a id="features"></a> <a id="caratteristiche"></a>
## ✨Caratteristiche ## ✨ Caratteristiche
<div align="center"> <div align="center">
| Caratteristiche principali | Funzionalità avanzate | Funzionalità extra | | Funzioni Base | Funzioni Avanzate | Funzioni Extra |
|------------------------------------|----------------------------------------------|------------------------------------| |-----------------------------------|-----------------------------------------|------------------------------------|
| 🎥 Tabella dei formati | 🚫Integrazione SponsorBlock | 🎞️ Visualizzazione FPS/HDR | | 🎥 Tabella Formati | 🚫 Integrazione SponsorBlock | 🎞️ Visualizzazione FPS/HDR |
| 🎵Estrazione audio | 📝 Seleziona e unisci più sottotitoli | 🔄 Aggiornamento automatico yt-dlp | | 🎵 Estrazione Audio | 📝 Selezione e Fusione Sottotitoli | 🔄 Aggiornamento automatico yt-dlp |
| ✨Interfaccia utente semplice | 💾 Salva descrizione e miniatura | 🛠️ Rilevamento FFmpeg/yt-dlp/Deno | | ✨ Interfaccia Utente Semplice | 💾 Salva Descrizione e Anteprima | 🛠️ Rilevamento FFmpeg/yt-dlp/Deno |
| 📋 Supporto e selettore playlist | 🚀Limitatore di velocità | ⚙️ Comandi personalizzati | | 📋 Supporto e Selettore Playlist | 🚀 Limitatore di Velocità | ⚙️ Comandi Personalizzati |
| 📑 Incorpora capitoli | ✂️ Taglia le sezioni video | 🍪 Accedi con i cookie | | 📑 Integrazione Capitoli | ✂️ Ritaglio Sezioni Video | 🍪 Login tramite Cookie |
| 📜 Scarica Cronologia | 🔄 Rilascio Selezione canale | 🌐Supporto proxy | | 📜 Cronologia Download | 🔄 Scelta del Canale di Rilascio | 🌐 Supporto Proxy |
| 🎚️ Conversione del formato audio | 🎬 Impostazioni formato video | 🆙 Scheda Aggiornamento integrata | | 🎚️ Conversione Formato Audio | 🎬 Impostazioni Formato Video | 🆙 Tab Aggiornamento Integrato |
| 🌍 Modalità generica | 🔊 Normalizzazione audio (EBU R128) | 🌍 Localizzazione in 14 lingue | | 🌍 Modalità Generica | 🔊 Normalizzazione Audio (EBU R128) | 🌍 Localizzazione in 14 lingue |
| 💾 Esportazione Playlist | ⚙️ Qualità e Sottotitoli Predefiniti | |
</div> </div>
<a id="installation"></a> <a id="installazione"></a>
## 🚀 Installazione ## 🚀 Installazione
### ⚡ Installazione rapida (consigliata) ### ⚡ Installazione Rapida (Consigliata)
Installa YTSage da PyPI: Installa YTSage tramite PyPI:
```bash ```bash
pip install ytsage pip install ytsage
``` ```
<details> <details>
<summary>🔄 Aggiorna un'installazione esistente</summary> <summary>🔄 Aggiornare un'installazione esistente</summary>
```bash ```bash
pip install --upgrade ytsage pip install --upgrade ytsage
@@ -94,51 +95,51 @@ pip install --upgrade ytsage
</details> </details>
Quindi avvia l'app: Quindi esegui l'applicazione:
```bash ```bash
ytsage ytsage
``` ```
### 📦 Eseguibili predefiniti ### 📦 Eseguibili Pre-compilati (Executable)
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest) > [👉 Scarica l'ultima versione](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 Finestre #### 🪟 Windows
| Formato | Descrizione | | Formato | Descrizione |
|--------|-------------| |--------|-------------|
| ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Programma di installazione standard | | ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Installer Standard |
| ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Con FFmpeg in bundle | | ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Include FFmpeg |
| ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Versione portatile, nessuna installazione richiesta | | ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Versione Portable, nessuna installazione richiesta |
| ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portatile con FFmpeg, zippato | | ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portable con FFmpeg, compresso (ZIP) |
<details> <details>
<summary>🛠️ Passaggi di installazione</summary> <summary>🛠️ Passaggi per l'installazione</summary>
1. **Programma di installazione EXE (`.exe`)**: fare doppio clic sul file e seguire la procedura guidata di installazione. 1. **Installer EXE (`.exe`)**: Fare doppio clic sul file e seguire la procedura guidata.
2. **Versione portatile (`.zip`)**: estrai l'archivio nella posizione desiderata ed esegui `ytsage.exe`. 2. **Versione Portable (`.zip`)**: Estrarre l'archivio nella posizione desiderata ed eseguire `ytsage.exe`.
3. **FFmpeg in bundle**: scegli le versioni in bundle di FFmpeg se non hai FFmpeg installato sul tuo sistema. 3. **FFmpeg integrato**: Se non hai FFmpeg sul tuo sistema, scegli le versioni con FFmpeg integrato.
</details> </details>
#### 🐧Linux #### 🐧 Linux
| Formato | Descrizione | | Formato | Descrizione |
|--------|-------------| |--------|-------------|
| ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pacchetto Debian | | ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pacchetto Debian |
| ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, portatile | | ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, Portable |
| ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pacchetto RPM | | ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pacchetto RPM |
| ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Pacchetto Flatpack | | ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Bundle Flatpak |
<details> <details>
<summary>🛠️ Passaggi di installazione</summary> <summary>🛠️ Passaggi per l'installazione</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 # Se necessario per correggere le dipendenze mancanti
``` ```
- **Giri/min (`.rpm`)**: - **RPM (`.rpm`)**:
```bash ```bash
sudo rpm -i ytsage-*.rpm sudo rpm -i ytsage-*.rpm
``` ```
@@ -147,7 +148,7 @@ ytsage
chmod +x YTSage-*.AppImage chmod +x YTSage-*.AppImage
./YTSage-*.AppImage ./YTSage-*.AppImage
``` ```
- **Flatpak**: segui le istruzioni su Flathub o esegui: - **Flatpak**: Seguire le istruzioni su Flathub o eseguire:
```bash ```bash
flatpak install flathub io.github.oop7.ytsage flatpak install flathub io.github.oop7.ytsage
``` ```
@@ -157,22 +158,22 @@ ytsage
| Formato | Descrizione | | Formato | Descrizione |
|--------|-------------| |--------|-------------|
| ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Applicazione zippata per Apple Silicon | | ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | App ZIP per Apple Silicon |
| ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Programma di installazione dell'immagine disco per Apple Silicon | | ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Installer Disk Image per Apple Silicon |
<details> <details>
<summary>🛠️ Passaggi di installazione</summary> <summary>🛠️ Passaggi per l'installazione</summary>
- **DMG Installer (`.dmg`)**: fai doppio clic per montare, quindi trascina `YTSage.app` nella cartella Applicazioni. - **Installer DMG (`.dmg`)**: Fare doppio clic per montare, quindi trascinare `YTSage.app` nella cartella Applicazioni.
- **Archivio app (`.zip`)**: estrai il file zip e sposta `YTSage.app` nella cartella Applicazioni. - **Archivio App (`.zip`)**: Estrarre lo ZIP e spostare `YTSage.app` nella cartella Applicazioni.
*Nota: se riscontri l'errore "L'app è danneggiata", consulta [macOS troubleshooting section](#troubleshooting) di seguito.* *Nota: Se ricevi l'errore "L'app è danneggiata", consulta la sezione Risoluzione dei problemi macOS di seguito.*
</details> </details>
--- ---
<details> <details>
<summary>💻 Installazione manuale dalla fonte</summary> <summary>💻 Installazione manuale dai sorgenti</summary>
### 1. Clonare il repository ### 1. Clonare il repository
@@ -181,7 +182,7 @@ git clone https://github.com/oop7/YTSage.git
cd YTSage cd YTSage
``` ```
### 2. Installa le dipendenze ### 2. Installare le dipendenze
#### ⚡ Con uv #### ⚡ Con uv
@@ -189,7 +190,7 @@ cd YTSage
uv pip install . uv pip install .
``` ```
#### 📦 Oppure con pip standard #### 📦 O con pip standard
```bash ```bash
pip install . pip install .
@@ -203,226 +204,230 @@ python -m ytsage.main
</details> </details>
<a id="screenshots"></a> <a id="screenshot"></a>
## 📸 Schermate ## 📸 Screenshot
<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="Impostazioni Download" width="400"/></td>
<td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td> <td><img src="../branding/screenshots/playlist.png" alt="Download Playlist" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Scarica impostazioni</em></td> <td align="center"><em>Impostazioni Download</em></td>
<td align="center"><em>Scarica playlist</em></td> <td align="center"><em>Download 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="Selezione Formato 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="Opzioni Personalizzate" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Formato audio</em></td> <td align="center"><em>Formato Audio</em></td>
<td align="center"><em>Opzioni personalizzate</em></td> <td align="center"><em>Opzioni Personalizzate</em></td>
</tr> </tr>
</table> </table>
</div><a id="usage"></a> </div>
<a id="utilizzo"></a>
## 📖 Utilizzo ## 📖 Utilizzo
<details> <details>
<summary>🎯 Utilizzo di base</summary> <summary>🎯 Utilizzo Base</summary>
1. **Avvia YTSage** 1. **Avvia YTSage**
2. **Incolla l'URL di YouTube** (o utilizza il pulsante "Incolla URL") 2. **Incolla un URL di YouTube** (o usa il pulsante "Incolla URL")
3. **Fai clic su "Analizza"** 3. **Clicca su "Analizza"**
4. **Seleziona formato:** 4. **Scegli il formato:**
- `Video` per i download di video - `Video` per il download del video
- `Audio Only` per l'estrazione audio - `Solo Audio` per l'estrazione dell'audio
5. **Scegli le opzioni:** 5. **Seleziona le opzioni:**
- Abilita i sottotitoli e seleziona la lingua - Abilita i sottotitoli e scegli la lingua
- Abilita l'unione dei sottotitoli - Abilita la fusione dei sottotitoli
- Salva miniatura - Salva l'anteprima (thumbnail)
- Rimuovere i segmenti dello sponsor - Rimuovi sezioni sponsor
- Salva descrizione - Salva la descrizione
- Incorpora capitoli - Incorpora i capitoli
6. **Seleziona directory di output** 6. **Scegli la directory di destinazione**
7. **Fai clic su "Scarica"** 7. **Clicca su "Download"**
> 💡 La directory di download predefinita è la cartella "Download" dell'utente. > 💡 La directory di download predefinita è la cartella "Download" dell'utente.
</details> </details>
<details> <details>
<summary>📋 Download della playlist</summary> <summary>📋 Download Playlist</summary>
1. **Incolla l'URL della playlist** 1. **Incolla l'URL della playlist**
2. **Fai clic su "Analizza"** 2. **Clicca su "Analizza"**
3. **Seleziona i video dal selettore della playlist (facoltativo, l'impostazione predefinita è tutti)** 3. **Seleziona i video dal selettore (opzionale, tutti per impostazione predefinita)**
4. **Scegli il formato/la qualità desiderata** 4. **Scegli il formato/qualità desiderati**
5. **Fai clic su "Scarica"** 5. **Clicca su "Download"**
> 💡 L'applicazione gestisce automaticamente la coda di download > 💡 L'applicazione gestisce automaticamente la coda di download e puoi esportare le voci della playlist come file `.txt`, `.csv`, `.m3u` o `.json`.
</details> </details>
<details> <details>
<summary>🌍 Modalità generica per siti non YouTube</summary> <summary>🌍 Modalità Generica per siti non YouTube</summary>
Utilizza la modalità generica quando desideri che YTSage accetti URL da siti supportati da yt-dlp, come Dailymotion, CBC Gem, TikTok e altri. Usa la Modalità Generica quando vuoi che YTSage accetti URL da siti supportati da yt-dlp come Dailymotion, CBC Gem, TikTok e altri.
Come usarlo: Come usarla:
1. Apri `Download Settings`. 1. Apri `Impostazioni Download`.
2. Abilita `Generic Mode`. 2. Abilita `Modalità Generica`.
3. Incolla un video o un URL di playlist non YouTube supportato. 3. Incolla un URL di un video o di una playlist supportata che non sia YouTube.
4. Fare clic su `Analyze`. 4. Clicca su `Analizza`.
5. Scegli un formato e scarica come al solito. 5. Scegli un formato e scarica normalmente.
Note: Note:
- La modalità generica modifica solo la convalida dell'URL all'interno di YTSage. Il sito di destinazione deve essere ancora supportato dalla versione yt-dlp installata. - La Modalità Generica cambia solo la validazione dell'URL all'interno di YTSage. Il sito di destinazione deve essere comunque supportato dalla versione di yt-dlp installata.
- Alcuni siti richiedono cookie, una sessione di accesso, un proxy o argomenti yt-dlp aggiuntivi a seconda dell'estrattore. - Alcuni siti richiedono cookie, login, proxy o argomenti yt-dlp aggiuntivi a seconda dell'estrattore.
- Se un sito non funziona, aggiorna prima yt-dlp dalla scheda di aggiornamento integrata prima di segnalare il problema. - Se un sito fallisce, aggiorna yt-dlp dal tab di aggiornamento integrato prima di segnalare il problema.
</details> </details>
<details> <details>
<summary>🧰 Opzioni multimediali e di download</summary> <summary>🧰 Opzioni Media e Download</summary>
- **Opzioni sottotitoli:** Filtra le lingue e incorpora i sottotitoli nel file video - **Opzioni Sottotitoli:** Filtra le lingue e incorpora i sottotitoli nel file video.
- **Unione sottotitoli:** unisci i sottotitoli nel file video per i sottotitoli hardcoded - **Fusione Sottotitoli:** Fonde i sottotitoli nel file video per sottotitoli permanenti (hardcoded).
- **Salva descrizione:** salva la descrizione del video come file di testo - **Salva Descrizione:** Salva la descrizione del video come file di testo.
- **Salva miniatura:** salva la miniatura del video come file immagine - **Salva Anteprima:** Salva l'anteprima (thumbnail) del video come file immagine.
- **Incorpora capitoli:** incorpora indicatori di capitolo come metadati per lettori video compatibili - **Incorpora Capitoli:** Include i segnaposti dei capitoli come metadati per i lettori video compatibili.
- **Rimuovi segmenti di sponsor:** rimuovi i segmenti di sponsor dal video utilizzando SponsorBlock - **Rimuovi Sezioni Sponsor:** Usa SponsorBlock per rimuovere i segmenti sponsorizzati dal video.
- **Taglia video:** scarica solo parti specifiche di un video specificando gli intervalli di tempo nel formato `HH:MM:SS` - **Ritaglia Video:** Scarica solo parti specifiche del video specificando un intervallo di tempo nel formato `HH:MM:SS`.
</details> </details>
<details> <details>
<summary>⚙️ Impostazioni file e output</summary> <summary>⚙️ Impostazioni Output e File</summary>
- **Limitatore di Velocità:** Limita la velocità di download, ad esempio `500K` per 500 KB/s.
- **Salva Percorso Download:** Salva il percorso di download predefinito per i download futuri. Disponibile in **Impostazioni Download → Percorso Download**.
- **Risoluzione Video Predefinita:** Imposta la risoluzione video preferita per la selezione automatica (es. 1080p, 720p). Disponibile in **Impostazioni Download → Risoluzione Video Predefinita**.
- **Lingue Sottotitoli Predefinite:** Imposta le lingue dei sottotitoli predefinite per la selezione automatica (separate da virgola, es. `it,en`). Disponibile in **Impostazioni Download → Lingue Sottotitoli Predefinite**.
- **Formato Nome File:** Personalizza il formato del nome del file di output utilizzando variabili come `%(title)s`, `%(uploader)s`, `%(playlist_index)s` e `%(resolution)s`. Disponibile in **Impostazioni Download → Formato Nome File**.
- **Forza Formato Output:** Forza il download del video in un formato contenitore specifico come `mp4`, `webm` o `mkv`. Disponibile in **Impostazioni Download → Impostazioni Formato Output**.
- **Conversione Formato Audio:** Converte i download di solo audio nel formato preferito come `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis`, o `Best`. Disponibile in **Impostazioni Download → Impostazioni Formato Audio**.
- **Normalizzazione Audio:** Standardizza il volume per i download di solo audio utilizzando EBU R128.
- **Connessioni Simultanee:** Aumenta significativamente la velocità di download scaricando i file in più parti contemporaneamente. Disponibile in **Impostazioni Download → Generali → Connessioni Simultanee** (predefinito 1, massimo 8-10 consigliato per evitare blocchi IP).
- **Limitatore di velocità:** Limita la velocità di download, ad esempio `500K` per 500 KB/s
- **Salva percorso di download:** salva il percorso di download predefinito per download futuri. Disponibile in **Impostazioni di download → Percorso di download**.
- **Formato nome file di output:** Personalizza il formato del nome file di output utilizzando variabili come `%(title)s`, `%(uploader)s` e `%(resolution)s`. Disponibile in **Impostazioni download → Formato nome file**.
- **Forza formato output:** forza i download dei video in un formato contenitore specifico come `mp4`, `webm` o `mkv`. Disponibile in **Impostazioni download → Impostazioni formato output**.
- **Conversione del formato audio:** Converti i download solo audio nei formati preferiti come `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis`, o `Best`. Disponibile in **Impostazioni download → Impostazioni formato audio**.
- **Normalizzazione audio:** Standardizza il volume per i download solo audio utilizzando EBU R128.
- **Connessioni Simultanee:** Aumenta drasticamente la velocità di download scaricando file in frammenti multipli contemporaneamente. Disponibile in **Impostazioni di Download → Generale → Connessioni Simultanee** (Predefinito 1, massimo consigliato 8-10 per evitare limitazioni IP).\n
</details> </details>
<details> <details>
<summary>🌐 Accesso e Rete</summary> <summary>🌐 Accesso e Rete</summary>
- **Accedi con i cookie:** Accedi a YouTube utilizzando i cookie per accedere ai contenuti privati. - **Login tramite Cookie:** Accedi a YouTube utilizzando i cookie per accedere ai contenuti privati.
Come usarlo: Utilizzo:
1. **Consigliato:** utilizza l'opzione `Extract cookies from browser` integrata nell'app, quindi seleziona il browser e, facoltativamente, un profilo. 1. **Consigliato:** Usa l'opzione integrata nell'app `Estrai cookie dal browser`, quindi scegli il browser e opzionalmente il profilo.
2. In alternativa, estrarre manualmente i cookie: 2. In alternativa, estrai i cookie manualmente:
un. Esporta i cookie dal tuo browser utilizzando un'estensione come [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file) a. Esporta i cookie dal tuo browser utilizzando un'estensione come [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
b. Copia i cookie in formato Netscape b. Copia i cookie nel formato Netscape
c. Crea un file denominato `cookies.txt` e incollaci i cookie c. Crea un file chiamato `cookies.txt` e incolla i cookie
d. Seleziona il file `cookies.txt` nell'app d. Seleziona il file `cookies.txt` nell'app
- **Supporto proxy:** utilizza un server proxy per i download, ad esempio `http://<proxy-server>:<port>` - **Supporto Proxy:** Usa un server proxy per i download, ad esempio `http://<server-proxy>:<porta>`
- **Modalità generica:** consente a YTSage di analizzare e scaricare da siti non YouTube supportati da yt-dlp. Abilitalo da **Impostazioni download → Modalità generica**. - **Modalità Generica:** Consente a YTSage di analizzare e scaricare da siti non YouTube supportati da yt-dlp. Abilitalo da **Impostazioni Download → Modalità Generica**.
</details> </details>
<details> <details>
<summary>🛠️ Attrezzi e Manutenzione</summary> <summary>🛠️ Strumenti e Manutenzione</summary>
- **Comandi personalizzati:** accedi alle funzionalità avanzate di yt-dlp tramite argomenti della riga di comando - **Comandi Personalizzati:** Accedi alle funzioni avanzate di yt-dlp tramite argomenti della riga di comando.
- **Scheda Aggiornamento:** gestisci gli strumenti di aggiornamento integrati da un'unica posizione in Opzioni personalizzate: - **Tab Aggiornamento:** Gestisci gli strumenti di aggiornamento integrati da un unico posto nelle Opzioni Personalizzate:
- **Aggiornamenti yt-dlp:** controlla gli aggiornamenti e passa tra i canali di rilascio stabile e notturno - **Aggiornamento yt-dlp:** Controlla gli aggiornamenti e passa tra i canali di rilascio Stabile e Nightly.
- **Controllo versione FFmpeg:** controlla la tua versione di FFmpeg e apri le guide di installazione - **Controllo Versione FFmpeg:** Verifica la tua versione di FFmpeg e apri le guide all'installazione.
- **Aggiornamenti Deno:** controlla e aggiorna il runtime Deno - **Aggiornamento Deno:** Controlla e aggiorna il runtime Deno.
- **Rilevamento FFmpeg/yt-dlp/Deno:** rileva automaticamente i percorsi e le versioni di FFmpeg, yt-dlp e Deno dalla finestra di dialogo Informazioni. - **Rilevamento FFmpeg/yt-dlp/Deno:** Rileva automaticamente i percorsi e le versioni di FFmpeg, yt-dlp e Deno dal dialogo Informazioni.
- **Cronologia download:** visualizza i download precedenti con miniature e stati dal pulsante **Cronologia**. - **Cronologia Download:** Visualizza i download passati con anteprime e stati dal pulsante **Cronologia**.
</details> </details>
<details> <details>
<summary>🌍 Localizzazione</summary> <summary>🌍 Localizzazione</summary>
YTSage supporta **14 lingue** per l'accessibilità in tutto il mondo. Seleziona la tua lingua preferita da **Opzioni personalizzate → Lingua**. YTSage supporta **14 lingue** per una portata globale. Scegli la tua lingua preferita in **Opzioni Personalizzate → Lingua**.
### Lingue supportate ### Lingue Supportate
| Lingua | Codice | Lingua | Codice | | Lingua | Codice | Lingua | Codice |
|----------|------|----------|------| |----------|------|----------|------|
| 🇺🇸 Inglese | `en` | 🇪🇸Spagnolo | `es` | | 🇺🇸 Inglese | `en` | 🇪🇸 Spagnolo | `es` |
| 🇸🇦 Arabo | `ar` | 🇫🇷 Francese | `fr` | | 🇸🇦 Arabo | `ar` | 🇫🇷 Francese | `fr` |
| 🇩🇪 Tedesco | `de` | 🇮🇳 Hindi | `hi` | | 🇩🇪 Tedesco | `de` | 🇮🇳 Hindi | `hi` |
| 🇮🇩 Indonesiano | `id` | 🇮🇹Italiano | `it` | | 🇮🇩 Indonesiano | `id` | 🇮🇹 Italiano | `it` |
| 🇯🇵Giapponese | `ja` | 🇵🇱 Polacco | `pl` | | 🇯🇵 Giapponese | `ja` | 🇵🇱 Polacco | `pl` |
| 🇧🇷 Portoghese | `pt` | 🇷🇺 Russo | `ru` | | 🇧🇷 Portoghese | `pt` | 🇷🇺 Russo | `ru` |
| 🇹🇷 Turco | `tr` | 🇨🇳Cinese | `zh` | | 🇹🇷 Turco | `tr` | 🇨🇳 Cinese | `zh` |
### Traduzioni README ### Traduzioni del README
| Lingua | File | Lingua | File | | Lingua | File | Lingua | File |
|----------|------|----------|------| |----------|------|----------|------|
| 🇺🇸 Inglese | [README.md](../README.md) | 🇪🇸Spagnolo | [README.es.md](README.es.md) | 🇺🇸 Inglese | [README.md](README.md) | 🇪🇸 Spagnolo | [README.es.md](README.es.md) |
| 🇸🇦 Arabo | [README.ar.md](README.ar.md) | 🇫🇷 Francese | [README.fr.md](README.fr.md) | | 🇸🇦 Arabo | [README.ar.md](README.ar.md) | 🇫🇷 Francese | [README.fr.md](README.fr.md) |
| 🇩🇪 Tedesco | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) | | 🇩🇪 Tedesco | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) |
| 🇮🇩 Indonesiano | [README.id.md](README.id.md) | 🇮🇹Italiano | [README.it.md](README.it.md) | | 🇮🇩 Indonesiano | [README.id.md](README.id.md) | 🇮🇹 Italiano | [README.it.md](README.it.md) |
| 🇯🇵Giapponese | [README.ja.md](README.ja.md) | 🇵🇱 Polacco | [README.pl.md](README.pl.md) | | 🇯🇵 Giapponese | [README.ja.md](README.ja.md) | 🇵🇱 Polacco | [README.pl.md](README.pl.md) |
| 🇧🇷 Portoghese | [README.pt.md](README.pt.md) | 🇷🇺 Russo | [README.ru.md](README.ru.md) | | 🇧🇷 Portoghese | [README.pt.md](README.pt.md) | 🇷🇺 Russo | [README.ru.md](README.ru.md) |
| 🇹🇷 Turco | [README.tr.md](README.tr.md) | 🇨🇳Cinese | [README.zh.md](README.zh.md) | | 🇹🇷 Turco | [README.tr.md](README.tr.md) | Cinese | [README.zh.md](README.zh.md) |
> 💡 **Vuoi contribuire con una traduzione?** Dai un'occhiata alla sezione [Contributing](#contributing) per aiutarci ad aggiungere altre lingue! > 💡 **Vuoi aiutare con la traduzione?** Consulta la sezione [Contribuire](#contribuire) per aiutarci ad aggiungere altre lingue!
</details> </details>
<a id="troubleshooting"></a> <a id="risoluzione-dei-problemi"></a>
## 🛠️ Risoluzione dei problemi ## 🛠️ Risoluzione dei problemi
<details> <details>
<summary>Fai clic per visualizzare problemi e soluzioni comuni</summary> <summary>Clicca per visualizzare i problemi comuni e le soluzioni</summary>
- **La tabella di formato non viene visualizzata:** Aggiorna yt-dlp alla versione più recente e passa a yt-dlp ogni notte. - **La tabella dei formati non appare:** Aggiorna yt-dlp all'ultima versione e prova a passare a yt-dlp Nightly.
- **Download non riuscito:** controlla la tua connessione Internet e assicurati che il video sia disponibile. - **Download fallito:** Controlla la tua connessione internet e assicurati che il video sia disponibile.
- **Errori di download specifici:** - **Errori di download specifici:**
- **Video privati:** utilizza l'autenticazione tramite cookie per accedere ai contenuti privati. - **Video Privati:** Usa l'autenticazione tramite cookie per accedere ai contenuti privati.
- **Contenuti soggetti a limiti di età:** accedi all'account YouTube per visualizzare video soggetti a limiti di età. - **Contenuti con limiti di età:** Accedi al tuo account YouTube per visualizzare i video con limiti di età.
- **Video geo-bloccati:** valuta la possibilità di utilizzare una VPN per aggirare le restrizioni regionali. - **Video bloccati geograficamente:** Considera l'uso di una VPN per aggirare le restrizioni regionali.
- **Video rimossi/eliminati:** il video non è più disponibile su YouTube. - **Video rimosso:** Il video non è più disponibile su YouTube.
- **Streaming live:** Gli streaming live non possono essere scaricati; attendere la fine dello streaming. - **Live Stream:** I live stream non possono essere scaricati durante la trasmissione; attendi la fine dello stream.
- **Errori di rete:** controlla la connessione Internet e riprova. - **Errori di rete:** Controlla la tua connessione internet e riprova.
- **URL non validi:** assicurati che l'URL sia corretto e provenga da una piattaforma supportata. - **URL non valido:** Assicurati che l'URL sia corretto e provenga da una piattaforma supportata.
- **Contenuti premium:** richiede l'abbonamento a YouTube Premium. - **Contenuti Premium:** Richiede un abbonamento YouTube Premium.
- **Blocchi dovuti al copyright:** Il contenuto è bloccato a causa di restrizioni sul copyright. - **Blocco Copyright:** Il contenuto è bloccato a causa di restrizioni sul copyright.
- **Separare i file video e audio dopo il download:** Ciò accade quando FFmpeg manca o non viene rilevato. YTSage richiede FFmpeg per unire flussi video e audio di alta qualità. - **I file video e audio sono separati dopo il download:** Questo accade quando FFmpeg manca o non viene rilevato. YTSage richiede FFmpeg per unire i flussi video e audio di alta qualità.
- **Soluzione:** assicurati che FFmpeg sia installato e accessibile nel PATH del tuo sistema. Per gli utenti Windows, l'opzione più semplice è scaricare il file `YTSage-v<version>-ffmpeg.exe`, fornito in bundle con FFmpeg. - **Soluzione:** Assicurati che FFmpeg sia installato e accessibile nel PATH del tuo sistema. Per gli utenti Windows, l'opzione più semplice è scaricare il file `YTSage-v<versione>-ffmpeg.exe`, che include FFmpeg.
--- ---
#### 🛡️ Avviso Windows Defender/Antivirus #### 🛡️ Avviso Windows Defender / Antivirus
Alcuni software antivirus potrebbero contrassegnare i file `.exe` come falsi positivi. Questa è una **limitazione nota** delle applicazioni in pacchetto. Alcuni software antivirus potrebbero contrassegnare i file `.exe` come falsi positivi. Questa è una **limitazione nota** delle applicazioni pacchettizzate.
**Perché ciò accade:** **Perché succede:**
- L'euristica dell'antivirus p identificare erroneamente gli eseguibili compressi come sospetti - Le euristiche dell'antivirus potrebbero identificare erroneamente gli eseguibili pacchettizzati come sospetti.
**Alternative sicure:** **Opzioni sicure:**
- ✅ **Utilizza installazione pip:** `pip install ytsage` (consigliato) - ✅ **Usa l'installazione tramite pip:** `pip install ytsage` (consigliato)
- ✅ **Crea dal codice sorgente**: seguendo questo [guide](../.github/CI_CD_README.md) - ✅ **Compila dai sorgenti**: Seguendo questa [guida](.github/CI_CD_README.md)
- ✅ **Autorizza l'applicazione** nel tuo software antivirus - ✅ **Aggiungi l'applicazione alla whitelist** nel tuo software antivirus.
#### 🍎 macOS: "L'app è danneggiata e non può essere aperta" #### 🍎 macOS: "Lapp è danneggiata e non può essere aperta"
Se visualizzi questo errore su macOS Sonoma o versioni successive, devi rimuovere l'attributo quarantena. Se visualizzi questo errore su macOS Sonoma o versioni successive, devi rimuovere l'attributo di quarantena.
1. **Apri Terminale** (puoi trovarlo utilizzando Spotlight). 1. **Apri il Terminale** (puoi trovarlo usando Spotlight).
2. **Digita il seguente comando** ma **non** premere ancora Invio. Assicurati di includere lo spazio alla fine: 2. **Digita il seguente comando** ma **NON** premere ancora Invio. Assicurati di includere lo spazio alla fine:
```bash ```bash
xattr -d com.apple.quarantine xattr -d com.apple.quarantine
``` ```
3. **Trascina il file `YTSage.app`** dalla finestra del Finder e rilascialo direttamente nella finestra Terminale. Questo incollerà automaticamente il percorso file corretto. 3. **Trascina il file `YTSage.app` dalla finestra del Finder** e rilascialo direttamente nella finestra del Terminale. Questo incollerà automaticamente il percorso corretto del file.
4. **Premere Invio** per eseguire il comando. 4. **Premi Invio** per eseguire il comando.
5. **Prova ad aprire nuovamente YTSage.app.** Ora dovrebbe avviarsi correttamente. 5. **Prova a riaprire YTSage.app.** Ora dovrebbe avviarsi correttamente.
--- ---
#### **Posizioni di configurazione (avanzate)** #### **Percorsi di configurazione (Avanzato)**
- **Windows:** `%LOCALAPPDATA%\YTSage` - **Windows:** `%LOCALAPPDATA%\YTSage`
- **macOS:** `~/Library/Application Support/YTSage` - **macOS:** `~/Library/Application Support/YTSage`
- **Linux:** `~/.local/share/YTSage` - **Linux:** `~/.local/share/YTSage`
@@ -432,102 +437,102 @@ Se visualizzi questo errore su macOS Sonoma o versioni successive, devi rimuover
<a id="sponsor"></a> <a id="sponsor"></a>
## 💖 Sponsor ## 💖 Sponsor
Se YTSage ti fa risparmiare tempo, valuta la possibilità di sponsorizzare il progetto. La sponsorizzazione aiuta a coprire i tempi di sviluppo, i test su tutte le piattaforme e i miglioramenti futuri. Se YTSage ti fa risparmiare tempo, considera di sponsorizzare il progetto. Le sponsorizzazioni aiutano a coprire il tempo di sviluppo, i test su tutte le piattaforme e i miglioramenti futuri.
- Sponsor GitHub: https://github.com/sponsors/oop7 - GitHub Sponsors: https://github.com/sponsors/oop7
- Il collegamento allo sponsor è disponibile anche direttamente all'interno dell'app dalla finestra di dialogo Informazioni. - Il link per la sponsorizzazione è disponibile direttamente tramite il dialogo Informazioni all'interno dell'app.
[![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7) [![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7)
<a id="contributing"></a> <a id="contribuire"></a>
## 👥 Contribuire ## 👥 Contribuire
Diamo il benvenuto ai contributi! Ecco come puoi aiutare: I contributi sono benvenuti! Ecco come puoi aiutare:
1. 🍴 Effettua il fork del repository 1. 🍴 Fork del repository
2. 🌿 Crea il tuo ramo di funzionalità: 2. 🌿 Crea il tuo ramo per la funzione:
```bash ```bash
git checkout -b feature/AmazingFeature git checkout -b feature/FunzioneIncredibile
``` ```
3. 💾 Applica le tue modifiche: 3. 💾 Fai il commit delle tue modifiche:
```bash ```bash
git commit -m 'Add some AmazingFeature' git commit -m 'Aggiungi FunzioneIncredibile'
``` ```
4. 📤 Spingere verso il ramo: 4. 📤 Fai il push sul ramo:
```bash ```bash
git push origin feature/AmazingFeature git push origin feature/FunzioneIncredibile
``` ```
5. 🔄 Apri una richiesta di pull 5. 🔄 Apri una Pull Request
### 🌍 Contribuire alle traduzioni ### 🌍 Contribuire alle traduzioni
- Aggiorna il file README localizzato corrispondente (ad esempio `README.es.md`) - Aggiorna il file README localizzato pertinente (es. `readme-translations/README.it.md`)
- Mantieni sincronizzate le stringhe dell'app modificando `ytsage/languages/<code>.json` - Mantieni sincronizzate le stringhe dell'app modificando `ytsage/languages/<code>.json`
- Se manca la tua lingua, inizia da `README.md` e crea `README.<code>.md` - Se la tua lingua manca, parti da `README.md` e crea `README.<code>.md`
<details> <details>
<summary>📂 Struttura del progetto</summary> <summary>📂 Struttura del Progetto</summary>
## YTSage - Struttura del progetto ## YTSage - Struttura del Progetto
Questo documento descrive la struttura di cartelle organizzata di YTSage. Questo documento descrive la struttura organizzata delle cartelle di YTSage.
### 📁 Struttura del progetto ### 📁 Struttura del Progetto
``` ```
YTSage/ YTSage/
├── 📁 .github/ # GitHub configuration ├── 📁 .github/ # Configurazioni GitHub
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates │ ├── 📁 ISSUE_TEMPLATE/ # Modelli per segnalazioni
│ │ └── 🐛-bug-report.md # Bug report template │ │ └── 🐛-bug-report.md # Modello per segnalazione bug
│ ├─── 📁 workflows/ # GitHub Actions workflows │ ├─── 📁 workflows/ # Workflow GitHub Actions
│ │ ├── build-linux.yml # Linux build workflow │ │ ├── build-linux.yml # Workflow build Linux
│ │ ├── build-macos.yml # macOS build workflow │ │ ├── build-macos.yml # Workflow build macOS
│ │ │── build-windows.yml # Windows build workflow │ │ │── build-windows.yml # Workflow build Windows
| | └── release-all.yml # Master release workflow | | └── release-all.yml # Workflow release master
│ └── 📄 CI_CD_README.md # CI/CD documentation │ └── 📄 CI_CD_README.md # Documentazione CI/CD
├── 📁 branding/ # Branding assets (Screenshots, SVGs) ├── 📁 branding/ # Asset di branding (screenshot, SVG)
│ ├── 📁 icons/ # Application icons │ ├── 📁 icons/ # Icone dell'app
│ ├── 📁 screenshots/ # Screenshots for documentation │ ├── 📁 screenshots/ # Screenshot per la documentazione
│ └── 📁 svg/ # SVG assets │ └── 📁 svg/ # Asset SVG
├── 📄 LICENSE # License file ├── 📄 LICENSE # File della licenza
├── 📄 pyproject.toml # Project metadata and dependencies ├── 📄 pyproject.toml # Metadati del progetto e dipendenze
├── 📄 README.md # Project documentation ├── 📄 README.md # Documentazione del progetto
├── 📄 requirements.txt # Python dependencies (dev) ├── 📄 requirements.txt # Dipendenze Python (dev)
└── 📁 ytsage/ # Source package └── 📁 ytsage/ # Pacchetto del codice sorgente
├── 📁 assets/ # Runtime assets ├── 📁 assets/ # Asset runtime
│ ├── 📁 Icon/ # Application icons │ ├── 📁 Icon/ # Icone dell'app
│ └── 📁 sound/ # Audio files │ └── 📁 sound/ # File audio
├── 📁 languages/ # Localization files ├── 📁 languages/ # File di localizzazione
│ ├── 📄 ar.json # Arabic translation │ ├── 📄 ar.json # Traduzione araba
│ ├── 📄 de.json # German translation │ ├── 📄 de.json # Traduzione tedesca
│ ├── 📄 en.json # English translation │ ├── 📄 en.json # Traduzione inglese
│ └── ... # Other languages │ └── ... # Altre lingue
├── 📁 core/ # Core business logic ├── 📁 core/ # Logica di business principale
│ ├── 📄 __init__.py # Core package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_deno.py # Deno integration │ ├── 📄 ytsage_deno.py # Integrazione Deno
│ ├── 📄 ytsage_downloader.py # Download functionality │ ├── 📄 ytsage_downloader.py # Funzionalità di download
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration │ ├── 📄 ytsage_ffmpeg.py # Integrazione FFmpeg
│ ├── 📄 ytsage_utils.py # Utility functions │ ├── 📄 ytsage_utils.py # Funzioni di utilità
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration │ └── 📄 ytsage_yt_dlp.py # Integrazione yt-dlp
├── 📁 gui/ # User interface components ├── 📁 gui/ # Componenti dell'interfaccia utente
│ ├── 📄 __init__.py # GUI package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_gui_main.py # Main application window │ ├── 📄 ytsage_gui_main.py # Finestra principale dell'app
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes │ └── 📁 ytsage_gui_dialogs/ # Classi per i dialoghi
├── 📁 utils/ # Utility modules ├── 📁 utils/ # Moduli di utilità
│ ├── 📄 __init__.py # Utils package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_config_manager.py # Configuration management │ ├── 📄 ytsage_config_manager.py # Gestione configurazione
│ └── 📄 ytsage_logger.py # Logging utilities │ └── 📄 ytsage_logger.py # Strumenti di logging
├── 📄 __init__.py # Package entry point ├── 📄 __init__.py # Punto di ingresso del pacchetto
└── 📄 main.py # Main execution script └── 📄 main.py # Script di esecuzione principale
``` ```
</details> </details>
## ⭐️ Storia delle stelle ## ⭐️ Cronologia Stelle
<div align="center"> <div align="center">
## Storia delle stelle ## 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,63 +546,64 @@ YTSage/
## 📜 Licenza ## 📜 Licenza
Questo progetto è concesso in licenza con la licenza MIT: per i dettagli vedere il file [LICENSE](../LICENSE). Questo progetto è rilasciato sotto Licenza MIT - vedi il file [LICENSE](LICENSE) per i dettagli.
## 🙏Ringraziamenti ## 🙏 Ringraziamenti
<details> <details>
<summary>Mostra Ringraziamenti</summary> <summary>Mostra Ringraziamenti</summary>
<div align="center"> <div align="center">
<p>Un sentito ringraziamento a tutti coloro che hanno contribuito a questo progetto aprendo un issue per suggerire un miglioramento o segnalare un bug.</p> <p>Un grande ringraziamento a tutti coloro che hanno contribuito a questo progetto aprendo segnalazioni per suggerire miglioramenti o segnalare bug.</p>
<table> <table>
<tr class="section"><th colspan="2">Componenti principali</th></tr> <tr class="section"><th colspan="2">Componenti Principali</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>Scarica motore</td> <td>Motore di Download</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://ffmpeg.org/">FFmpeg</a></td> <td><a href="https://ffmpeg.org/">FFmpeg</a></td>
<td>Elaborazione multimediale</td> <td>Elaborazione Media</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://deno.com/">Deno</a></td> <td><a href="https://deno.com/">Deno</a></td>
<td>Runtime per integrazione con yt-dlp</td> <td>Runtime per l'integrazione di yt-dlp</td>
</tr> </tr>
<tr class="section"><th colspan="2">Librerie e framework</th></tr> <tr class="section"><th colspan="2">Librerie e Framework</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>Framework GUI</td> <td>Framework GUI</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-pillow.org/">Cuscino</a></td> <td><a href="https://python-pillow.org/">Pillow</a></td>
<td>Elaborazione immagini</td> <td>Elaborazione Immagini</td>
</tr> </tr>
<tr><td><a href="https://requests.readthedocs.io/">richieste</a></td> <tr>
<td><a href="https://requests.readthedocs.io/">requests</a></td>
<td>Richieste HTTP</td> <td>Richieste HTTP</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://packaging.python.org/">imballaggio</a></td> <td><a href="https://packaging.python.org/">packaging</a></td>
<td>Gestione versioni e pacchetti</td> <td>Gestione Versioni e Packaging</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-markdown.github.io/">ribasso</a></td> <td><a href="https://python-markdown.github.io/">markdown</a></td>
<td>Rendering riduzione</td> <td>Rendering 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>Registrazione</td> <td>Logging</td>
</tr> </tr>
<tr class="section"><th colspan="2">Risorse e contributori</th></tr> <tr class="section"><th colspan="2">Asset e Collaboratori</th></tr>
<tr> <tr>
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Nuova notifica 09 di Universfield</a></td> <td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">New Notification 09 di Universfield</a></td>
<td>Suono di notifica</td> <td>Suono di Notifica</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://github.com/viru185">viru185</a></td> <td><a href="https://github.com/viru185">viru185</a></td>
<td>Codice Contributore</td> <td>Collaboratore al Codice</td>
</tr> </tr>
</table> </table>
@@ -607,12 +613,12 @@ Questo progetto è concesso in licenza con la licenza MIT: per i dettagli vedere
## ⚠️ Disclaimer ## ⚠️ Disclaimer
Questo strumento è solo per uso personale. Rispetta i termini di servizio di YouTube e i diritti dei creatori di contenuti. Questo strumento è solo per uso personale. Rispettate i Termini di Servizio di YouTube e i diritti dei produttori di contenuti.
--- ---
<div align="center"> <div align="center">
Realizzato con ❤️ da [oop7](https://github.com/oop7) Creato con ❤️ da [oop7](https://github.com/oop7)
</div> </div>