Update Polish README translation and formatting

Apply copy edits and formatting fixes to readme-translations/README.pl.md: adjust wording and capitalization, standardize section headings and anchors (e.g. instalacja, funkcje, użycie), harmonize terminology (Download Settings, Generic Mode), fix tables and list formatting, update platform/executable descriptions and installation steps, revise screenshots alt text, clarify usage and troubleshooting instructions, and refresh localization & contributing sections for consistency.
This commit is contained in:
oop7
2026-05-14 15:38:35 +03:00
parent ca176d7844
commit 3ba021dfbb
2 changed files with 523 additions and 511 deletions
+260 -254
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)
**Nowoczesny downloader YouTube z przejrzystym interfejsem PySide6.** **Nowoczesny downloader YouTube z czystym interfejsem PySide6.**
Pobieraj filmy w dowolnej jakości, wyodrębniaj dźwięk, pobieraj napisy i nie tylko. Pobieraj wideo w dowolnej jakości, wyodrębniaj audio, pobieraj napisy i wiele więcej.
### 🌍 PRZECZYTAJ Języki ### 🌍 Języki README
Angielski: [EN](../README.md) Angielski: [EN](../README.md)
| Numer telefonu: [AR](README.ar.md) | Arabski: [AR](README.ar.md)
| Niemiecki: [DE](README.de.md) | Niemiecki: [DE](README.de.md)
| Hiszpański: [ES](README.es.md) | Hiszpański: [ES](README.es.md)
| Français: [FR](README.fr.md) | Francuski: [FR](README.fr.md)
| हिन्दी: [HI](README.hi.md) | Hindi: [HI](README.hi.md)
| Bahasa Indonezja: [ID](README.id.md) | Indonezyjski: [ID](README.id.md)
| włoski: [IT](README.it.md) | Włoski: [IT](README.it.md)
| 日本語: [JA](README.ja.md) | Japoński: [JA](README.ja.md)
| Polski: [PL](README.pl.md) | Polski: [PL](README.pl.md)
| Portugalski: [PT](README.pt.md) | Portugalski: [PT](README.pt.md)
| Rosyjski: [RU](README.ru.md) | Rosyjski: [RU](README.ru.md)
| Turecki: [TR](README.tr.md) | Turecki: [TR](README.tr.md)
| Nazwa: [ZH](README.zh.md) | Chiński: [ZH](README.zh.md)
<p align="center"> <p align="center">
<a href="#installation">Instalacja</a> • <a href="#instalacja">Instalacja</a> •
<a href="#features">Funkcje</a> • <a href="#funkcje">Funkcje</a> •
<a href="#usage">Użycie</a> • <a href="#użycie">Użycie</a> •
<a href="#screenshots">Zrzuty ekranu</a> • <a href="#zrzuty-ekranu">Zrzuty ekranu</a> •
<a href="#troubleshooting">Rozwiązywanie problemów</a> • <a href="#rozwiązywanie-problemów">Rozwiązywanie problemów</a> •
<a href="#sponsor">Sponsor</a> • <a href="#sponsor">Sponsor</a> •
<a href="#contributing">Wspieranie</a> <a href="#współpraca">Współpraca</a>
</p> </p>
</div> </div>
--- ---
<a id="why-ytsage"></a> <a id="dlaczego-ytsage"></a>
## ❓ Dlaczego YTSage? ## ❓ Dlaczego YTSage?
YTSage jest przeznaczony dla użytkowników, którzy chcą **prostego, ale potężnego narzędzia do pobierania YouTube**. W odróżnieniu od innych narzędzi oferuje: YTSage został zaprojektowany dla użytkowników, którzy chcą **prostego, ale potężnego downloadera YouTube**. W przeciwieństwie do innych narzędzi oferuje:
- Czysty, nowoczesny interfejs PySide6 - Nowoczesny i czysty interfejs PySide6
- Pobieranie wideo, audio i napisów jednym kliknięciem - Pobieranie wideo, audio i napisów jednym kliknięciem
- Zaawansowane funkcje, takie jak SponsorBlock, łączenie napisów i wybór listy odtwarzania - Zaawansowane funkcje, takie jak SponsorBlock, scalanie napisów i wybór playlisty
- Opcjonalny tryb ogólny dla witryn obsługujących yt-dlp poza YouTube - Opcjonalny tryb ogólny (Generic Mode) dla stron spoza YouTube obsługiwanych przez yt-dlp
- Obsługa wielu platform i łatwa instalacja - Obsługa wielu platform i łatwa instalacja
<a id="features"></a> <a id="funkcje"></a>
## ✨ Funkcje ## ✨ Funkcje
<div align="center"> <div align="center">
| Podstawowe funkcje | Zaawansowane funkcje | Dodatkowe funkcje | | Funkcje podstawowe | Funkcje zaawansowane | Funkcje dodatkowe |
|----------------------------------|------------------------------------------------------|-----------------------------------| |-----------------------------------|-----------------------------------------|------------------------------------|
| 🎥 Formatuj tabelę | 🚫 Integracja z blokiem sponsorskim | 🎞️ Wyświetlacz FPS/HDR | | 🎥 Tabela formatów | 🚫 Integracja SponsorBlock | 🎞️ Wyświetlanie FPS/HDR |
| 🎵 Ekstrakcja dźwięku | 📝 Wybierz i połącz wiele napisów | 🔄 Automatyczna aktualizacja yt-dlp | | 🎵 Wyodrębnianie audio | 📝 Wybór i scalanie napisów | 🔄 Auto-aktualizacja yt-dlp |
| ✨ Prosty interfejs użytkownika | 💾 Zapisz opis i miniaturę | 🛠️ Wykrywanie FFmpeg/yt-dlp/Deno | | ✨ Prosty interfejs użytkownika | 💾 Zapis opisu i miniatur | 🛠️ Wykrywanie FFmpeg/yt-dlp/Deno |
| 📋 Obsługa i wybór list odtwarzania | 🚀 Ogranicznik prędkości | ⚙️ Polecenia niestandardowe | | 📋 Obsługa i wybór playlist | 🚀 Ogranicznik prędkości | ⚙️ Własne komendy |
| 📑 Umieść rozdziały | ✂️ Przytnij sekcje wideo | 🍪 Zaloguj się za pomocą plików cookie | | 📑 Integracja rozdziałów | ✂️ Przycinanie sekcji wideo | 🍪 Logowanie przez ciasteczka |
| 📜 Pobierz historię | 🔄 Zwolnij wybór kanału | 🌐 Wsparcie proxy | | 📜 Historia pobierania | 🔄 Wybór kanału wydań | 🌐 Obsługa proxy |
| 🎚️ Konwersja formatu audio | 🎬 Ustawienia formatu wideo | 🆙 Wbudowana zakładka Aktualizator | | 🎚️ Konwersja formatów audio | 🎬 Ustawienia formatu wideo | 🆙 Zintegrowana karta aktualizacji |
| 🌍 Tryb ogólny | 🔊 Normalizacja dźwięku (EBU R128) | 🌍 Lokalizacja w 14 językach | | 🌍 Tryb ogólny | 🔊 Normalizacja audio (EBU R128) | 🌍 Lokalizacja w 14 językach |
| 💾 Eksport playlisty | ⚙️ Domyślna jakość i napisy | |
</div> </div>
<a id="installation"></a> <a id="instalacja"></a>
## 🚀 Instalacja ## 🚀 Instalacja
### ⚡ Szybka instalacja (zalecane) ### ⚡ Szybka instalacja (zalecana)
Zainstaluj YTSage z PyPI: Zainstaluj YTSage przez PyPI:
```bash ```bash
pip install ytsage pip install ytsage
``` ```
<details> <details>
<summary>🔄 Zaktualizuj istniejącą instalację</summary> <summary>🔄 Aktualizacja istniejącej instalacji</summary>
```bash ```bash
pip install --upgrade ytsage pip install --upgrade ytsage
@@ -100,33 +101,33 @@ Następnie uruchom aplikację:
ytsage ytsage
``` ```
### 📦 Gotowe pliki wykonywalne ### 📦 Gotowe pliki wykonywalne (Executable)
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest) > [👉 Pobierz najnowsze wydanie](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 Okna #### 🪟 Windows
| Formatuj | Opis | | Format | Opis |
|------------|------------| |--------|-------------|
| ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Standardowy instalator | | ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Standardowy instalator |
| ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Z pakietem FFmpeg | | ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Z dołączonym FFmpeg |
| ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Wersja przenośna, nie wymaga instalacji | | ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Wersja przenośna, nie wymaga instalacji |
| ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Przenośny z FFmpeg, spakowany | | ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Przenośna z FFmpeg, skompresowana (ZIP) |
<details> <details>
<summary>🛠️ Kroki instalacji</summary> <summary>🛠️ Kroki instalacji</summary>
1. **Instalator EXE (`.exe`)**: Kliknij dwukrotnie plik i postępuj zgodnie z instrukcjami kreatora instalacji. 1. **Instalator EXE (`.exe`)**: Kliknij dwukrotnie plik i postępuj zgodnie z instrukcjami kreatora.
2. **Wersja przenośna (`.zip`)**: Wypakuj archiwum do wybranej lokalizacji i uruchom `ytsage.exe`. 2. **Wersja przenośna (`.zip`)**: Rozpakuj archiwum w wybranym miejscu i uruchom `ytsage.exe`.
3. **FFmpeg w pakiecie**: Wybierz wersję w pakiecie FFmpeg, jeśli nie masz zainstalowanego FFmpeg w swoim systemie. 3. **Wbudowany FFmpeg**: Jeśli nie masz zainstalowanego FFmpeg w systemie, wybierz wersję z dołączonym FFmpeg.
</details> </details>
#### 🐧 Linux #### 🐧 Linux
| Formatuj | Opis | | Format | Opis |
|------------|------------| |--------|-------------|
| ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pakiet Debiana | | ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pakiet Debian |
| ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Obraz aplikacji, przenośny | | ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, przenośny |
| ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pakiet RPM | | ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pakiet RPM |
| ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Pakiet Flatpak | | ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Pakiet Flatpak |
@@ -136,18 +137,18 @@ 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 # Jeśli trzeba naprawić brakujące zależności
``` ```
- **RPM (`.rpm`)**: - **RPM (`.rpm`)**:
```bash ```bash
sudo rpm -i ytsage-*.rpm sudo rpm -i ytsage-*.rpm
``` ```
- **Obraz aplikacji (`.AppImage`)**: - **AppImage (`.AppImage`)**:
```bash ```bash
chmod +x YTSage-*.AppImage chmod +x YTSage-*.AppImage
./YTSage-*.AppImage ./YTSage-*.AppImage
``` ```
- **Flatpak**: Postępuj zgodnie z instrukcjami na Flathubie lub uruchom: - **Flatpak**: Postępuj zgodnie z instrukcjami na Flathub lub uruchom:
```bash ```bash
flatpak install flathub io.github.oop7.ytsage flatpak install flathub io.github.oop7.ytsage
``` ```
@@ -155,24 +156,24 @@ ytsage
#### 🍎 macOS #### 🍎 macOS
| Formatuj | Opis | | Format | Opis |
|------------|------------| |--------|-------------|
| ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Spakowana aplikacja dla Apple Silicon | | ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Aplikacja ZIP dla Apple Silicon |
| ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Instalator obrazu dysku dla Apple Silicon | | ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Instalator Disk Image dla Apple Silicon |
<details> <details>
<summary>🛠️ Kroki instalacji</summary> <summary>🛠️ Kroki instalacji</summary>
- **Instalator DMG (`.dmg`)**: Kliknij dwukrotnie, aby zamontować, a następnie przeciągnij `YTSage.app` do folderu Aplikacje. - **Instalator DMG (`.dmg`)**: Kliknij dwukrotnie, aby zamontować, a następnie przeciągnij `YTSage.app` do folderu Aplikacje.
- **Archiwum aplikacji (`.zip`)**: Wypakuj plik ZIP i przenieś `YTSage.app` do folderu Aplikacje. - **Archiwum aplikacji (`.zip`)**: Rozpakuj ZIP i przenieś `YTSage.app` do folderu Aplikacje.
*Uwaga: jeśli napotkasz błąd Aplikacja jest uszkodzona, zobacz [macOS troubleshooting section](#troubleshooting) poniżej.* *Uwaga: Jeśli otrzymasz błąd "Aplikacja jest uszkodzona", zapoznaj się z sekcją rozwiązywania problemów macOS poniżej.*
</details> </details>
--- ---
<details> <details>
<summary>💻 Instalacja ręczna ze źródła</summary> <summary>💻 Ręczna instalacja ze źródeł</summary>
### 1. Sklonuj repozytorium ### 1. Sklonuj repozytorium
@@ -183,13 +184,13 @@ cd YTSage
### 2. Zainstaluj zależności ### 2. Zainstaluj zależności
#### ⚡ Z uv #### ⚡ Z użyciem uv
```bash ```bash
uv pip install . uv pip install .
``` ```
#### 📦 Lub ze standardową końcówką #### 📦 Lub ze standardowym pip
```bash ```bash
pip install . pip install .
@@ -203,226 +204,230 @@ python -m ytsage.main
</details> </details>
<a id="screenshots"></a> <a id="zrzuty-ekranu"></a>
## 📸 Zrzuty ekranu ## 📸 Zrzuty ekranu
<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="Ustawienia pobierania" width="400"/></td>
<td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td> <td><img src="../branding/screenshots/playlist.png" alt="Pobieranie playlisty" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Pobierz ustawienia</em></td> <td align="center"><em>Ustawienia pobierania</em></td>
<td align="center"><em>Pobieranie listy odtwarzania</em></td> <td align="center"><em>Pobieranie playlisty</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="Wybór formatu 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="Opcje niestandardowe" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Format audio</em></td> <td align="center"><em>Format audio</em></td>
<td align="center"><em>Opcje niestandardowe</em></td> <td align="center"><em>Opcje niestandardowe</em></td>
</tr> </tr>
</table> </table>
</div><a id="usage"></a> </div>
<a id="użycie"></a>
## 📖 Użycie ## 📖 Użycie
<details> <details>
<summary>🎯 Podstawowe użycie</summary> <summary>🎯 Podstawowe użycie</summary>
1. **Uruchom YTSage** 1. **Uruchom YTSage**
2. **Wklej adres URL YouTube** (lub użyj przycisku Wklej adres URL) 2. **Wklej URL z YouTube** (lub użyj przycisku "Wklej URL")
3. **Kliknij Analizuj** 3. **Kliknij "Analizuj"**
4. **Wybierz format:** 4. **Wybierz format:**
- `Video` do pobierania plików wideo - `Wideo` dla pobierania wideo
- `Audio Only` do ekstrakcji dźwięku - `Tylko audio` dla wyodrębniania dźwięku
5. **Wybierz opcje:** 5. **Wybierz opcje:**
- Włącz napisy i wybierz język - Włącz napisy i wybierz język
- Włącz scalanie napisów - Włącz scalanie napisów
- Zapisz miniaturę - Zapisz miniaturę
- Usuń segmenty sponsorów - Usuń sekcje sponsorowane
- Zapisz opis - Zapisz opis
- Osadzaj rozdziały - Osadź rozdziały
6. **Wybierz katalog wyjściowy** 6. **Wybierz folder wyjściowy**
7. **Kliknij Pobierz** 7. **Kliknij "Pobierz"**
> 💡 Domyślnym katalogiem pobierania jest folder Pobrane użytkownika. > 💡 Domyślny folder pobierania to folder "Pobrane" użytkownika.
</details> </details>
<details> <details>
<summary>📋 Pobieranie listy odtwarzania</summary> <summary>📋 Pobieranie playlisty</summary>
1. **Wklej adres URL listy odtwarzania** 1. **Wklej URL playlisty**
2. **Kliknij Analizuj** 2. **Kliknij "Analizuj"**
3. **Wybierz filmy z selektora playlist (opcjonalnie, domyślnie wszystkie)** 3. **Wybierz filmy z selektora (opcjonalnie, domyślnie wszystkie)**
4. **Wybierz żądany format/jakość** 4. **Wybierz żądany format/jakość**
5. **Kliknij Pobierz** 5. **Kliknij "Pobierz"**
> 💡 Aplikacja automatycznie obsługuje kolejkę pobierania > 💡 Aplikacja automatycznie zarządza kolejką pobierania, a wpisy playlisty możesz eksportować do plików `.txt`, `.csv`, `.m3u` lub `.json`.
</details> </details>
<details> <details>
<summary>🌍 Tryb ogólny dla witryn innych niż YouTube</summary> <summary>🌍 Tryb ogólny dla stron innych niż YouTube</summary>
Użyj trybu ogólnego, jeśli chcesz, aby YTSage akceptował adresy URL z witryn obsługiwanych przez yt-dlp, takich jak Dailymotion, CBC Gem, TikTok i inne. Użyj trybu ogólnego (Generic Mode), gdy chcesz, aby YTSage akceptował adresy URL ze stron obsługiwanych przez yt-dlp, takich jak Dailymotion, CBC Gem, TikTok i inne.
Jak z niego korzystać: Jak go użyć:
1. Otwórz `Download Settings`. 1. Otwórz `Download Settings`.
2. Włącz `Generic Mode`. 2. Włącz `Generic Mode`.
3. Wklej obsługiwany adres URL filmu lub listy odtwarzania spoza YouTube. 3. Wklej obsługiwany URL wideo lub playlisty spoza YouTube.
4. Kliknij `Analyze`. 4. Kliknij `Analyze`.
5. Wybierz format i pobierz jak zwykle. 5. Wybierz format i pobierz jak zwykle.
Uwagi: Uwagi:
- Tryb ogólny zmienia tylko weryfikację adresu URL w YTSage. Witryna docelowa musi nadal być obsługiwana przez zainstalowaną wersję yt-dlp. - Tryb ogólny zmienia tylko walidację adresu URL wewnątrz YTSage. Strona docelowa musi być nadal obsługiwana przez zainstalowaną wersję yt-dlp.
- Niektóre witryny wymagają plików cookie, sesji logowania, serwera proxy lub dodatkowych argumentów yt-dlp, w zależności od ekstraktora. - Niektóre strony wymagają ciasteczek, logowania, proxy lub dodatkowych argumentów yt-dlp w zależności od ekstraktora.
- Jeśli witryna ulegnie awarii, przed zgłoszeniem problemu zaktualizuj najpierw yt-dlp z wbudowanej karty aktualizatora. - Jeśli strona nie działa, zaktualizuj yt-dlp ze zintegrowanej karty aktualizacji przed zgłoszeniem problemu.
</details> </details>
<details> <details>
<summary>🧰 Opcje multimediów i pobierania</summary> <summary>🧰 Opcje mediów i pobierania</summary>
- **Opcje napisów:** Filtruj języki i osadzaj napisy w pliku wideo - **Opcje napisów:** Filtruj języki i osadzaj napisy w pliku wideo.
- **Scalanie napisów:** Łączenie napisów z plikiem wideo w celu uzyskania napisów zakodowanych na stałe - **Scalanie napisów:** Scala napisy z plikiem wideo (hardcoded).
- **Zapisz opis:** Zapisz opis filmu jako plik tekstowy - **Zapis opisu:** Zapisuje opis wideo jako plik tekstowy.
- **Zapisz miniaturę:** zapisz miniaturę wideo jako plik obrazu - **Zapis miniatury:** Zapisuje miniaturę wideo jako plik graficzny.
- **Osadzanie rozdziałów:** Osadzanie znaczników rozdziałów jako metadanych dla zgodnych odtwarzaczy wideo - **Osadź rozdziały:** Dołącza znaczniki rozdziałów jako metadane dla kompatybilnych odtwarzaczy.
- **Usuń segmenty sponsora:** Usuń segmenty sponsora z filmu za pomocą funkcji SponsorBlock - **Usuń sekcje sponsorowane:** Używa SponsorBlock do usuwania segmentów sponsorowanych z filmu.
- **Przytnij wideo:** Pobierz tylko określone fragmenty filmu, określając zakresy czasu w formacie `HH:MM:SS` - **Przycinanie wideo:** Pobieraj tylko określone części filmu, określając zakres czasu w formacie `GG:MM:SS`.
</details> </details>
<details> <details>
<summary>⚙️ Ustawienia wyjściowe i plikowe</summary> <summary>⚙️ Ustawienia wyjściowe i plików</summary>
- **Ogranicznik prędkości:** Ogranicz prędkość pobierania, np. `500K` dla 500 KB/s.
- **Zapisz ścieżkę pobierania:** Zapisuje domyślną ścieżkę dla przyszłych pobrań. Dostępne w **Download Settings → Download Path**.
- **Domyślna rozdzielczość wideo:** Ustaw preferowaną rozdzielczość dla automatycznego wyboru (np. 1080p, 720p). Dostępne w **Download Settings → Default Video Resolution**.
- **Domyślne języki napisów:** Ustaw domyślne języki dla automatycznego wyboru (rozdzielone przecinkami, np. `pl,en`). Dostępne w **Download Settings → Default Subtitle Languages**.
- **Format nazwy pliku:** Dostosuj format nazwy pliku wyjściowego, używając zmiennych takich jak `%(title)s`, `%(uploader)s`, `%(playlist_index)s` i `%(resolution)s`. Dostępne w **Download Settings → Filename Format**.
- **Wymuś format wyjściowy:** Wymuś pobieranie wideo do konkretnego formatu kontenera, jak `mp4`, `webm` lub `mkv`. Dostępne w **Download Settings → Output Format Settings**.
- **Konwersja formatów audio:** Konwertuj pobierany dźwięk do preferowanego formatu, takiego jak `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` lub `Best`. Dostępne w **Download Settings → Audio Format Settings**.
- **Normalizacja audio:** Ujednolica głośność pobieranego dźwięku przy użyciu EBU R128.
- **Jednoczesne połączenia:** Znacznie zwiększa prędkość pobierania, pobierając pliki w kilku częściach naraz. Dostępne w **Download Settings → General → Concurrent Connections** (domyślnie 1, zalecane maks. 8-10, aby uniknąć blokad IP).
- **Ogranicznik prędkości:** Ogranicz prędkość pobierania, na przykład `500K` dla 500 KB/s
- **Zapisz ścieżkę pobierania:** zapisz domyślną ścieżkę pobierania dla przyszłych pobrań. Dostępne w **Ustawienia pobierania → Ścieżka pobierania**.
- **Format nazwy pliku wyjściowego:** Dostosuj format nazwy pliku wyjściowego za pomocą zmiennych takich jak `%(title)s`, `%(uploader)s` i `%(resolution)s`. Dostępne w **Ustawienia pobierania → Format nazwy pliku**.
- **Wymuś format wyjściowy:** Wymuś pobieranie plików wideo w określonym formacie kontenera, takim jak `mp4`, `webm` lub `mkv`. Dostępne w **Ustawienia pobierania → Ustawienia formatu wyjściowego**.
- **Konwersja formatu audio:** Konwertuj pliki do pobrania zawierające wyłącznie dźwięk do preferowanych formatów, takich jak `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` lub `Best`. Dostępne w **Ustawienia pobierania → Ustawienia formatu audio**.
- **Normalizacja dźwięku:** Ujednolicenie głośności pobieranych plików zawierających wyłącznie dźwięk za pomocą EBU R128.
- **Jednoczesne połączenia:** Znacznie zwiększ prędkość pobierania, pobierając pliki w wielu fragmentach jednocześnie. Dostępne w **Ustawienia pobierania → Ogólne → Jednoczesne połączenia** (Domyślnie 1, zalecane maksimum to 8-10, aby zapobiec blokowaniu IP).\n
</details> </details>
<details> <details>
<summary>🌐 Dostęp i sieć</summary> <summary>🌐 Dostęp i sieć</summary>
- **Zaloguj się za pomocą plików cookie:** zaloguj się do YouTube za pomocą plików cookie, aby uzyskać dostęp do prywatnych treści. - **Logowanie przez ciasteczka:** Zaloguj się do YouTube, używając ciasteczek, aby uzyskać dostęp do prywatnych treści.
Jak z niego korzystać: Użycie:
1. **Zalecane:** Skorzystaj z wbudowanej opcji `Extract cookies from browser` w aplikacji, a następnie wybierz przeglądarkę i opcjonalnie profil. 1. **Zalecane:** Użyj wbudowanej opcji `Eksportuj ciasteczka z przeglądarki`, a następnie wybierz przeglądarkę i opcjonalnie profil.
2. Alternatywnie wyodrębnij pliki cookie ręcznie: 2. Alternatywnie, wyeksportuj ciasteczka ręcznie:
a. Eksportuj pliki cookie ze swojej przeglądarki za pomocą rozszerzenia takiego jak [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file) a. Eksportuj ciasteczka z przeglądarki, używając rozszerzenia typu [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
b. Skopiuj pliki cookie w formacie Netscape b. Skopiuj ciasteczka w formacie Netscape
c. Utwórz plik o nazwie `cookies.txt` i wklej do niego pliki cookie c. Utwórz plik o nazwie `cookies.txt` i wklej ciasteczka
d. Wybierz plik `cookies.txt` w aplikacji d. Wybierz plik `cookies.txt` w aplikacji
- **Obsługa proxy:** Do pobierania używaj serwera proxy, na przykład `http://<proxy-server>:<port>` - **Obsługa proxy:** Użyj serwera proxy do pobierania, np. `http://<serwer-proxy>:<port>`
- **Tryb ogólny:** Zezwól YTSage na analizowanie i pobieranie z witryn innych niż YouTube obsługiwanych przez yt-dlp. Włącz tę opcję w **Ustawienia pobierania → Tryb ogólny**. - **Tryb ogólny:** Pozwala YTSage na analizę i pobieranie z witryn innych niż YouTube obsługiwanych przez yt-dlp. Włącz w **Download Settings → Generic Mode**.
</details> </details>
<details> <details>
<summary>🛠️ Narzędzia i konserwacja</summary> <summary>🛠️ Narzędzia i konserwacja</summary>
- **Niestandardowe polecenia:** Dostęp do zaawansowanych funkcji yt-dlp poprzez argumenty wiersza poleceń - **Własne komendy:** Dostęp do zaawansowanych funkcji yt-dlp poprzez argumenty wiersza poleceń.
- **Karta Aktualizator:** Zarządzaj wbudowanymi narzędziami aktualizacji z jednego miejsca w Opcjach niestandardowych: - **Karta aktualizacji:** Zarządzaj wbudowanymi narzędziami aktualizacji z jednego miejsca w opcjach niestandardowych:
- **Aktualizacje yt-dlp:** sprawdź dostępność aktualizacji i przełączaj się między kanałami wersji stabilnej i nocnej - **Aktualizacja yt-dlp:** Sprawdzaj aktualizacje i przełączaj się między kanałami Stable i Nightly.
- **Kontrola wersji FFmpeg:** Sprawdź wersję FFmpeg i otwórz przewodniki instalacji - **Sprawdzanie wersji FFmpeg:** Weryfikuj wersję FFmpeg i otwieraj przewodniki instalacji.
- **Aktualizacje Deno:** Sprawdź i zaktualizuj środowisko wykonawcze Deno - **Aktualizacja Deno:** Sprawdzaj i aktualizuj środowisko uruchomieniowe Deno.
- **Wykrywanie FFmpeg/yt-dlp/Deno:** Automatycznie wykrywa ścieżki i wersje FFmpeg, yt-dlp i Deno w oknie dialogowym Informacje. - **Wykrywanie FFmpeg/yt-dlp/Deno:** Automatycznie wykrywa ścieżki i wersje FFmpeg, yt-dlp i Deno w oknie "O programie".
- **Historia pobierania:** Przeglądaj wcześniejsze pobrania z miniaturami i statusami za pomocą przycisku **Historia**. - **Historia pobierania:** Przeglądaj poprzednie pobrania z miniaturami i statusami za pomocą przycisku **History**.
</details> </details>
<details> <details>
<summary>🌍 Lokalizacja</summary> <summary>🌍 Lokalizacja</summary>
YTSage obsługuje **14 języków**, zapewniając dostępność na całym świecie. Wybierz preferowany język z **Opcje niestandardowe → Język**. YTSage obsługuje **14 języków**. Wybierz preferowany język w **Custom Options → Language**.
### Obsługiwane języki ### Obsługiwane języki
| Język | Kod | Język | Kod | | Język | Kod | Język | Kod |
|---------|------|----------|------| |----------|------|----------|------|
| 🇺🇸 Angielski | `en` | 🇪🇸 Hiszpański | `es` | | 🇺🇸 Angielski | `en` | 🇪🇸 Hiszpański | `es` |
| 🇸🇦 arabski | `ar` | 🇫🇷 Francuski | `fr` | | 🇸🇦 Arabski | `ar` | 🇫🇷 Francuski | `fr` |
| 🇩🇪 niemiecki | `de` | 🇮🇳 hindi | `hi` | | 🇩🇪 Niemiecki | `de` | 🇮🇳 Hindi | `hi` |
| 🇮🇩 Indonezyjski | `id` | 🇮🇹 włoski | `it` | | 🇮🇩 Indonezyjski | `id` | 🇮🇹 Włoski | `it` |
| 🇯🇵 Japoński | `ja` | 🇵🇱polski | `pl` | | 🇯🇵 Japoński | `ja` | 🇵🇱 Polski | `pl` |
| 🇧🇷 portugalski | `pt` | 🇷🇺 Rosyjski | `ru` | | 🇧🇷 Portugalski | `pt` | 🇷🇺 Rosyjski | `ru` |
| 🇹🇷 Turecki | `tr` | 🇨🇳 chiński | `zh` | | 🇹🇷 Turecki | `tr` | 🇨🇳 Chiński | `zh` |
### Tłumaczenia README ### Tłumaczenia README
| Język | Plik | Język | Plik | | Język | Plik | Język | Plik |
|---------|------|----------|------| |----------|------|----------|------|
| 🇺🇸 Angielski | [README.md](../README.md) | 🇪🇸 Hiszpański | [README.es.md](README.es.md) | 🇺🇸 Angielski | [README.md](README.md) | 🇪🇸 Hiszpański | [README.es.md](README.es.md) |
| 🇸🇦 arabski | [README.ar.md](README.ar.md) | 🇫🇷 Francuski | [README.fr.md](README.fr.md) | | 🇸🇦 Arabski | [README.ar.md](README.ar.md) | 🇫🇷 Francuski | [README.fr.md](README.fr.md) |
| 🇩🇪 niemiecki | [README.de.md](README.de.md) | 🇮🇳 hindi | [README.hi.md](README.hi.md) | | 🇩🇪 Niemiecki | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) |
| 🇮🇩 Indonezyjski | [README.id.md](README.id.md) | 🇮🇹 włoski | [README.it.md](README.it.md) | | 🇮🇩 Indonezyjski | [README.id.md](README.id.md) | 🇮🇹 Włoski | [README.it.md](README.it.md) |
| 🇯🇵 Japoński | [README.ja.md](README.ja.md) | 🇵🇱polski | [README.pl.md](README.pl.md) | | 🇯🇵 Japoński | [README.ja.md](README.ja.md) | 🇵🇱 Polski | [README.pl.md](README.pl.md) |
| 🇧🇷 portugalski | [README.pt.md](README.pt.md) | 🇷🇺 Rosyjski | [README.ru.md](README.ru.md) | | 🇧🇷 Portugalski | [README.pt.md](README.pt.md) | 🇷🇺 Rosyjski | [README.ru.md](README.ru.md) |
| 🇹🇷 Turecki | [README.tr.md](README.tr.md) | 🇨🇳 chiński | [README.zh.md](README.zh.md) | | 🇹🇷 Turecki | [README.tr.md](README.tr.md) | 🇨🇳 Chiński | [README.zh.md](README.zh.md) |
> 💡 **Chcesz dodać tłumaczenie?** Sprawdź sekcję [Contributing](#contributing), aby pomóc nam dodać więcej języków! > 💡 **Chcesz pomóc w tłumaczeniu?** Sprawdź sekcję [Współpraca](#współpraca), aby pomóc nam dodać więcej języków!
</details> </details>
<a id="troubleshooting"></a> <a id="rozwiązywanie-problemów"></a>
## 🛠️ Rozwiązywanie problemów ## 🛠️ Rozwiązywanie problemów
<details> <details>
<summary>Kliknij, aby wyświetlić typowe problemy i rozwiązania</summary> <summary>Kliknij, aby zobaczyć typowe problemy i rozwiązania</summary>
- **Tabela formatów nie wyświetla się:** Aktualizuj yt-dlp do najnowszej wersji i co wieczór przełączaj się na yt-dlp. - **Tabela formatów nie pojawia się:** Zaktualizuj yt-dlp do najnowszej wersji i spróbuj przełącz się na kanał yt-dlp Nightly.
- **Pobieranie nie powiodło się:** Sprawdź swoje połączenie internetowe i upewnij się, że plik wideo jest dostępny. - **Pobieranie nie powiodło się:** Sprawdź połączenie z internetem i upewnij się, że wideo jest dostępne.
- **Specyficzne błędy pobierania:** - **Konkretne błędy pobierania:**
- **Prywatne filmy:** Użyj uwierzytelniania plików cookie, aby uzyskać dostęp do prywatnych treści. - **Prywatne wideo:** Użyj uwierzytelniania przez ciasteczka, aby uzyskać dostęp do prywatnych treści.
- **Treści z ograniczeniami wiekowymi:** Zaloguj się do konta YouTube, aby oglądać filmy z ograniczeniami wiekowymi. - **Treści z ograniczeniem wiekowym:** Zaloguj się na swoje konto YouTube, aby wyświetlić filmy z ograniczeniem wiekowym.
- **Filmy z blokadą geograficzną:** rozważ użycie VPN w celu ominięcia ograniczeń regionalnych. - **Wideo z blokadą regionalną:** Rozważ użycie VPN, aby obejść ograniczenia regionalne.
- **Usunięte/usunięte filmy:** Film nie jest już dostępny w serwisie YouTube. - **Usunięte wideo:** Film nie jest już dostępny na YouTube.
- **Transmisje na żywo:** Transmisji na żywo nie można pobrać; poczekaj, aż strumień się zakończy. - **Transmisje na żywo:** Transmisji na żywo nie można pobierać w trakcie ich trwania; poczekaj, aż transmisja się zakończy.
- **Błędy sieciowe:** Sprawdź swoje połączenie internetowe i spróbuj ponownie. - **Błędy sieciowe:** Sprawdź połączenie z internetem i spróbuj ponownie.
- **Nieprawidłowe adresy URL:** Upewnij się, że adres URL jest poprawny i pochodzi z obsługiwanej platformy. - **Nieprawidłowy URL:** Upewnij się, że adres URL jest poprawny i pochodzi z obsługiwanej platformy.
**Treści premium:** wymaga członkostwa YouTube Premium. - **Treść Premium:** Wymaga subskrypcji YouTube Premium.
- **Bloki dotyczące praw autorskich:** Treść jest blokowana ze względu na ograniczenia praw autorskich. - **Blokada praw autorskich:** Treść jest zablokowana z powodu ograniczeń praw autorskich.
- **Oddziel pliki wideo i audio po pobraniu:** Dzieje się tak, gdy brakuje FFmpeg lub nie został on wykryty. YTSage wymaga FFmpeg do łączenia wysokiej jakości strumieni wideo i audio. - **Pliki wideo i audio są oddzielne po pobraniu:** Dzieje się tak, gdy brakuje FFmpeg lub nie został on wykryty. YTSage wymaga FFmpeg do scalania strumieni wideo i audio wysokiej jakości.
- **Rozwiązanie:** Upewnij się, że FFmpeg jest zainstalowany i dostępny w PATH twojego systemu. Dla użytkowników systemu Windows najłatwiejszą opcją jest pobranie pliku `YTSage-v<version>-ffmpeg.exe`, który jest dostarczany w pakiecie z FFmpeg. - **Rozwiązanie:** Upewnij się, że FFmpeg jest zainstalowany i dostępny w zmiennej PATH systemu. Dla użytkowników Windows najprostszą opcją jest pobranie pliku `YTSage-v<wersja>-ffmpeg.exe`, który zawiera FFmpeg.
--- ---
#### 🛡️ Ostrzeżenie o programie Windows Defender/antywirusie #### 🛡️ Ostrzeżenie Windows Defender / Antywirus
Niektóre programy antywirusowe mogą oznaczać pliki `.exe` jako fałszywe alarmy. Jest to **znane ograniczenie** aplikacji w pakietach. Niektóre programy antywirusowe mogą oznaczać pliki `.exe` jako fałszywe alarmy (false positive). Jest to **znane ograniczenie** pakowanych aplikacji.
**Dlaczego tak się dzieje:** **Dlaczego tak się dzieje:**
- Heurystyka antywirusowa może błędnie zidentyfikować spakowane pliki wykonywalne jako podejrzane - Heurystyka antywirusa może błędnie zidentyfikować spakowane pliki wykonywalne jako podejrzane.
**Bezpieczne alternatywy:** **Bezpieczne alternatywy:**
- ✅ **Użyj instalacji pip:** `pip install ytsage` (zalecane) - ✅ **Użyj instalacji przez pip:** `pip install ytsage` (zalecane)
- ✅ **Kompiluj ze źródła**: postępując zgodnie z tym [guide](../.github/CI_CD_README.md) - ✅ **Zbuduj ze źródeł**: Postępując zgodnie z tym [przewodnikiem](.github/CI_CD_README.md)
- ✅ **Dodaj aplikację do białej listy** w swoim oprogramowaniu antywirusowym - ✅ **Dodaj aplikację do wyjątków** w swoim programie antywirusowym.
#### 🍎 macOS: Aplikacja jest uszkodzona i nie można jej otworzyć #### 🍎 macOS: "Aplikacja jest uszkodzona i nie można jej otworzyć"
Jeśli widzisz ten błąd w systemie macOS Sonoma lub nowszym, musisz usunąć atrybut kwarantanny. Jeśli widzisz ten błąd w systemie macOS Sonoma lub nowszym, musisz usunąć atrybut kwarantanny.
1. **Otwórz Terminal** (możesz go znaleźć za pomocą Spotlight). 1. **Otwórz Terminal** (możesz go znaleźć przez Spotlight).
2. **Wpisz następujące polecenie**, ale **nie** jeszcze naciskaj Enter. Pamiętaj o dodaniu spacji na końcu: 2. **Wpisz następującą komendę**, ale jeszcze **NIE** naciskaj Enter. Pamiętaj o spacjach na końcu:
```bash ```bash
xattr -d com.apple.quarantine xattr -d com.apple.quarantine
``` ```
3. **Przeciągnij plik `YTSage.app`** z okna Findera i upuść go bezpośrednio w oknie Terminala. Spowoduje to automatyczne wklejenie prawidłowej ścieżki pliku. 3. **Przeciągnij plik `YTSage.app` z okna Findera** i upuść go bezpośrednio w oknie Terminala. To automatycznie wklei poprawną ścieżkę do pliku.
4. **Naciśnij Enter**, aby uruchomić polecenie. 4. **Naciśnij Enter**, aby uruchomić komendę.
5. **Spróbuj ponownie otworzyć YTSage.app.** Powinna teraz uruchomić się poprawnie. 5. **Spróbuj ponownie otworzyć YTSage.app.** Powinien uruchomić się poprawnie.
--- ---
#### **Lokacje konfiguracji (zaawansowane)** #### **Lokalizacja konfiguracji (zaawansowane)**
- **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 @@ Jeśli widzisz ten błąd w systemie macOS Sonoma lub nowszym, musisz usunąć a
<a id="sponsor"></a> <a id="sponsor"></a>
## 💖 Sponsor ## 💖 Sponsor
Jeśli YTSage pozwoli Ci zaoszczędz czas, rozważ sponsorowanie projektu. Sponsoring pomaga pokryć czas opracowywania, testowania na różnych platformach i przyszłych ulepszeń. Jeśli YTSage oszczędza Twój czas, rozważ wsparcie projektu. Sponsoring pomaga pokryć czas programistyczny, testy na wszystkich platformach i przyszłe ulepszenia.
- Sponsorzy GitHuba: https://github.com/sponsors/oop7 - GitHub Sponsors: https://github.com/sponsors/oop7
- Link sponsora jest również dostępny bezpośrednio w aplikacji, w oknie dialogowym Informacje. - Link do wsparcia jest dostępny bezpośrednio przez okno "O programie" w aplikacji.
[![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="współpraca"></a>
## 👥 Wkład ## 👥 Współpraca
Zapraszamy do wpłat! Oto jak możesz pomóc: Zapraszamy do współpracy! Oto jak możesz pomóc:
1. 🍴Rozwidl repozytorium 1. 🍴 Skonfiguruj fork repozytorium
2. 🌿 Utwórz gałąź funkcji: 2. 🌿 Utwórz gałąź (branch) dla swojej funkcji:
```bash ```bash
git checkout -b feature/AmazingFeature git checkout -b feature/NiesamowitaFunkcja
``` ```
3. 💾 Zatwierdź zmiany: 3. 💾 Zatwierdź zmiany (commit):
```bash ```bash
git commit -m 'Add some AmazingFeature' git commit -m 'Dodaj NiesamowitaFunkcja'
``` ```
4. 📤 Pchnij do oddziału: 4. 📤 Wyślij zmiany do gałęzi (push):
```bash ```bash
git push origin feature/AmazingFeature git push origin feature/NiesamowitaFunkcja
``` ```
5. 🔄 Otwórz żądanie ściągnięcia 5. 🔄 Otwórz Pull Request
### 🌍 Tłumaczenia wspierające ### 🌍 Pomóż w tłumaczeniach
- Zaktualizuj pasujący zlokalizowany plik README (na przykład `README.es.md`) - Zaktualizuj odpowiedni lokalny plik README (np. `readme-translations/README.pl.md`)
- Synchronizuj ciągi aplikacji, edytując `ytsage/languages/<code>.json` - Dbaj o synchronizację komunikatów aplikacji, edytując `ytsage/languages/<code>.json`
- Jeśli brakuje Twojego języka, zacznij od `README.md` i utwórz `README.<code>.md` - Jeśli brakuje Twojego języka, zacznij od `README.md` i stwórz `README.<code>.md`
<details> <details>
<summary>📂 Struktura projektu</summary> <summary>📂 Struktura projektu</summary>
## YTSage Struktura projektu ## YTSage - Struktura projektu
Ten dokument opisuje zorganizowaną strukturę folderów YTSage. Ten dokument opisuje zorganizowaną strukturę folderów projektu YTSage.
### 📁 Struktura projektu ### 📁 Struktura projektu
``` ```
YTSage/ YTSage/
├── 📁 .github/ # GitHub configuration ├── 📁 .github/ # Konfiguracja GitHub
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates │ ├── 📁 ISSUE_TEMPLATE/ # Szablony zgłoszeń
│ │ └── 🐛-bug-report.md # Bug report template │ │ └── 🐛-bug-report.md # Szablon zgłoszenia błędu
│ ├─── 📁 workflows/ # GitHub Actions workflows │ ├─── 📁 workflows/ # Procesy GitHub Actions
│ │ ├── build-linux.yml # Linux build workflow │ │ ├── build-linux.yml # Proces budowania dla Linux
│ │ ├── build-macos.yml # macOS build workflow │ │ ├── build-macos.yml # Proces budowania dla macOS
│ │ │── build-windows.yml # Windows build workflow │ │ │── build-windows.yml # Proces budowania dla Windows
| | └── release-all.yml # Master release workflow | | └── release-all.yml # Proces głównego wydania
│ └── 📄 CI_CD_README.md # CI/CD documentation │ └── 📄 CI_CD_README.md # Dokumentacja CI/CD
├── 📁 branding/ # Branding assets (Screenshots, SVGs) ├── 📁 branding/ # Materiały graficzne (zrzuty ekranu, SVG)
│ ├── 📁 icons/ # Application icons │ ├── 📁 icons/ # Ikony aplikacji
│ ├── 📁 screenshots/ # Screenshots for documentation │ ├── 📁 screenshots/ # Zrzuty ekranu do dokumentacji
│ └── 📁 svg/ # SVG assets │ └── 📁 svg/ # Zasoby SVG
├── 📄 LICENSE # License file ├── 📄 LICENSE # Plik licencji
├── 📄 pyproject.toml # Project metadata and dependencies ├── 📄 pyproject.toml # Metadane projektu i zależności
├── 📄 README.md # Project documentation ├── 📄 README.md # Dokumentacja projektu
├── 📄 requirements.txt # Python dependencies (dev) ├── 📄 requirements.txt # Zależności Python (dev)
└── 📁 ytsage/ # Source package └── 📁 ytsage/ # Pakiet kodu źródłowego
├── 📁 assets/ # Runtime assets ├── 📁 assets/ # Zasoby czasu wykonywania
│ ├── 📁 Icon/ # Application icons │ ├── 📁 Icon/ # Ikony aplikacji
│ └── 📁 sound/ # Audio files │ └── 📁 sound/ # Pliki dźwiękowe
├── 📁 languages/ # Localization files ├── 📁 languages/ # Pliki lokalizacji
│ ├── 📄 ar.json # Arabic translation │ ├── 📄 ar.json # Tłumaczenie arabskie
│ ├── 📄 de.json # German translation │ ├── 📄 de.json # Tłumaczenie niemieckie
│ ├── 📄 en.json # English translation │ ├── 📄 en.json # Tłumaczenie angielskie
│ └── ... # Other languages │ └── ... # Inne języki
├── 📁 core/ # Core business logic ├── 📁 core/ # Główna logika biznesowa
│ ├── 📄 __init__.py # Core package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_deno.py # Deno integration │ ├── 📄 ytsage_deno.py # Integracja Deno
│ ├── 📄 ytsage_downloader.py # Download functionality │ ├── 📄 ytsage_downloader.py # Funkcjonalność pobierania
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration │ ├── 📄 ytsage_ffmpeg.py # Integracja FFmpeg
│ ├── 📄 ytsage_utils.py # Utility functions │ ├── 📄 ytsage_utils.py # Funkcje pomocnicze
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration │ └── 📄 ytsage_yt_dlp.py # Integrasi yt-dlp
├── 📁 gui/ # User interface components ├── 📁 gui/ # Komponenty interfejsu użytkownika
│ ├── 📄 __init__.py # GUI package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_gui_main.py # Main application window │ ├── 📄 ytsage_gui_main.py # Główne okno aplikacji
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes │ └── 📁 ytsage_gui_dialogs/ # Klasy okien dialogowych
├── 📁 utils/ # Utility modules ├── 📁 utils/ # Moduły pomocnicze
│ ├── 📄 __init__.py # Utils package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_config_manager.py # Configuration management │ ├── 📄 ytsage_config_manager.py # Zarządzanie konfiguracją
│ └── 📄 ytsage_logger.py # Logging utilities │ └── 📄 ytsage_logger.py # Narzędzia logowania
├── 📄 __init__.py # Package entry point ├── 📄 __init__.py # Punkt wejścia pakietu
└── 📄 main.py # Main execution script └── 📄 main.py # Główny skrypt wykonawczy
``` ```
</details> </details>
## ⭐️ Historia gwiazd ## ⭐️ Historia gwiazdek
<div align="center"> <div align="center">
## Historia gwiazd ## Star History
<a href="https://www.star-history.com/#oop7/YTSage&Date"> <a href="https://www.star-history.com/#oop7/YTSage&Date">
<picture> <picture>
@@ -539,9 +544,9 @@ YTSage/
</div> </div>
## 📜Licencja ## 📜 Licencja
Ten projekt jest objęty licencją MIT — szczegółowe informacje można znaleźć w pliku [LICENSE](../LICENSE). Ten projekt jest udostępniany na licencji MIT - zobacz plik [LICENSE](LICENSE), aby poznać szczegóły.
## 🙏 Podziękowania ## 🙏 Podziękowania
@@ -550,54 +555,55 @@ Ten projekt jest objęty licencją MIT — szczegółowe informacje można znale
<div align="center"> <div align="center">
<p>Serdecznie dziękujemy wszystkim, którzy przyczynili się do tego projektu, otwierając problem, aby zasugerować ulepszenie lub zgłosić błąd.</p> <p>Wielkie podziękowania dla wszystkich, którzy przyczynili się do rozwoju projektu poprzez zgłaszanie sugestii i błędów.</p>
<table> <table>
<tr class="section"><th colspan="2">Główne komponenty</th></tr> <tr class="section"><th colspan="2">Główne komponenty</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>Pobierz silnik</td> <td>Silnik pobierania</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://ffmpeg.org/">FFmpeg</a></td> <td><a href="https://ffmpeg.org/">FFmpeg</a></td>
<td>Przetwarzanie multimediów</td> <td>Przetwarzanie mediów</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://deno.com/">Deno</a></td> <td><a href="https://deno.com/">Deno</a></td>
<td>Środowisko wykonawcze do integracji z yt-dlp</td> <td>Środowisko dla integracji yt-dlp</td>
</tr> </tr>
<tr class="section"><th colspan="2">Biblioteki i struktury</th></tr> <tr class="section"><th colspan="2">Biblioteki i frameworki</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>Struktura GUI</td> <td>Framework GUI</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-pillow.org/">Poduszka</a></td> <td><a href="https://python-pillow.org/">Pillow</a></td>
<td>Przetwarzanie obrazu</td> <td>Przetwarzanie obrazów</td>
</tr> </tr>
<tr><td><a href="https://requests.readthedocs.io/">żądania</a></td> <tr>
<td><a href="https://requests.readthedocs.io/">requests</a></td>
<td>Żądania HTTP</td> <td>Żądania HTTP</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://packaging.python.org/">opakowanie</a></td> <td><a href="https://packaging.python.org/">packaging</a></td>
<td>Obsługa wersji i pakietów</td> <td>Zarządzanie wersjami i pakowanie</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-markdown.github.io/">przecena</a></td> <td><a href="https://python-markdown.github.io/">markdown</a></td>
<td>Renderowanie Markdown</td> <td>Renderowanie 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>Logowanie</td> <td>Logowanie</td>
</tr> </tr>
<tr class="section"><th colspan="2">Zasoby i współtwórcy</th></tr> <tr class="section"><th colspan="2">Zasoby i współpracownicy</th></tr>
<tr> <tr>
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Nowe powiadomienie 09 od Universfield</a></td> <td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">New Notification 09 by Universfield</a></td>
<td>Dźwięk powiadomienia</td> <td>Dźwięk powiadomienia</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>Współtwórca kodu</td> <td>Współpracownik kodu</td>
</tr> </tr>
</table> </table>
@@ -607,12 +613,12 @@ Ten projekt jest objęty licencją MIT — szczegółowe informacje można znale
## ⚠️ Zastrzeżenie ## ⚠️ Zastrzeżenie
To narzędzie jest przeznaczone wyłącznie do użytku osobistego. Prosimy o przestrzeganie warunków korzystania z usługi YouTube i praw twórców treści. To narzędzie służy wyłącznie do użytku osobistego. Prosimy o przestrzeganie Warunków świadczenia usług YouTube i praw twórców treści.
--- ---
<div align="center"> <div align="center">
Wykonane z ❤️ przez [oop7](https://github.com/oop7) Stworzone z ❤️ przez [oop7](https://github.com/oop7)
</div> </div>
+261 -255
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)
**Um downloader moderno do YouTube com uma interface PySide6 limpa.** **Um downloader de YouTube moderno com uma interface PySide6 limpa.**
Baixe vídeos em qualquer qualidade, extraia áudio, busque legendas e muito mais. Baixe vídeos em qualquer qualidade, extraia áudio, obtenha legendas e muito mais.
### 🌍 LEIA-ME Idiomas ### 🌍 Idiomas do README
Inglês: [EN](../README.md) Inglês: [EN](../README.md)
| Nome: [AR](README.ar.md) | Árabe: [AR](README.ar.md)
| Alemão: [DE](README.de.md) | Alemão: [DE](README.de.md)
| Espanhol: [ES](README.es.md) | Espanhol: [ES](README.es.md)
| Francês: [FR](README.fr.md) | Francês: [FR](README.fr.md)
| Nome: [HI](README.hi.md) | Hindi: [HI](README.hi.md)
| Bahasa Indonésia: [ID](README.id.md) | Indonésio: [ID](README.id.md)
| Italiano: [IT](README.it.md) | Italiano: [IT](README.it.md)
| Nome do usuário: [JA](README.ja.md) | Japonês: [JA](README.ja.md)
| Polaco: [PL](README.pl.md) | Polonês: [PL](README.pl.md)
| Português: [PT](README.pt.md) | Português: [PT](README.pt.md)
| Russo: [RU](README.ru.md) | Russo: [RU](README.ru.md)
| Turco: [TR](README.tr.md) | Turco: [TR](README.tr.md)
| 中文: [ZH](README.zh.md) | Chinês: [ZH](README.zh.md)
<p align="center"> <p align="center">
<a href="#installation">Instalação</a> • <a href="#instalação">Instalação</a> •
<a href="#features">Recursos</a> • <a href="#funcionalidades">Funcionalidades</a> •
<a href="#usage">Uso</a> • <a href="#uso">Uso</a> •
<a href="#screenshots">Capturas de tela</a> • <a href="#capturas-de-tela">Capturas de Tela</a> •
<a href="#troubleshooting">Solução de problemas</a> • <a href="#solução-de-problemas">Solução de Problemas</a> •
<a href="#sponsor">Patrocinador</a> • <a href="#patrocinar">Patrocinar</a> •
<a href="#contributing">Contribuindo</a> <a href="#contribuindo">Contribuindo</a>
</p> </p>
</div> </div>
--- ---
<a id="why-ytsage"></a> <a id="por-que-ytsage"></a>
## ❓ Por que YTSage? ## ❓ Por que YTSage?
YTSage foi projetado para usuários que desejam um **baixador de YouTube simples, mas poderoso**. Ao contrário de outras ferramentas, oferece: O YTSage foi projetado para usuários que desejam um **downloader de YouTube simples, mas poderoso**. Ao contrário de outras ferramentas, ele oferece:
- Uma interface PySide6 limpa e moderna - Uma interface PySide6 moderna e limpa
- Downloads com um clique para vídeo, áudio e legendas - Download de vídeo, áudio e legendas com um clique
- Recursos avançados como SponsorBlock, mesclagem de legendas e seleção de playlist - Recursos avançados como SponsorBlock, mesclagem de legendas e seleção de playlist
- Modo genérico opcional para sites compatíveis com yt-dlp além do YouTube - Modo Genérico opcional para sites além do YouTube suportados pelo yt-dlp
- Suporte multiplataforma e fácil instalação - Suporte multiplataforma e instalação fácil
<a id="features"></a> <a id="funcionalidades"></a>
## ✨ Recursos ## ✨ Funcionalidades
<div align="center"> <div align="center">
| Recursos principais | Recursos Avançados | Recursos extras | | Recursos Básicos | Recursos Avançados | Recursos Extras |
|-----------------------------------|---------------------------------------------------|-----------------------------------| |-----------------------------------|-----------------------------------------|------------------------------------|
| 🎥 Tabela de Formatos | 🚫 Integração SponsorBlock | 🎞️ Tela FPS/HDR | | 🎥 Tabela de Formatos | 🚫 Integração SponsorBlock | 🎞️ Exibição de FPS/HDR |
| 🎵 Extração de Áudio | 📝 Seleção e mesclagem de múltiplas legendas | 🔄 Atualização automática do yt-dlp | | 🎵 Extração de Áudio | 📝 Seleção e Mesclagem de Legendas | 🔄 Atualização Automática do yt-dlp |
| ✨ UI simples | 💾 Salvar descrição e miniatura | 🛠️ Detecção de FFmpeg/yt-dlp/Deno | | ✨ Interface de Usuário Simples | 💾 Salvar Descrição e Miniatura | 🛠️ Detecção de FFmpeg/yt-dlp/Deno |
| 📋 Suporte e seletor de lista de reprodução | 🚀 Limitador de velocidade | ⚙️ Comandos personalizados | | 📋 Suporte e Seletor de Playlist | 🚀 Limitador de Velocidade | ⚙️ Comandos Personalizados |
| 📑 Incorporar capítulos | ✂️ Cortar seções de vídeo | 🍪 Login com Cookies | | 📑 Integração de Capítulos | ✂️ Cortar Seções de Vídeo | 🍪 Login por Cookies |
| 📜 Histórico de downloads | 🔄 Seleção de canal de lançamento | 🌐 Suporte a proxy | | 📜 Histórico de Downloads | 🔄 Escolha do Canal de Lançamento | 🌐 Suporte a Proxy |
| 🎚️ Conversão de formato de áudio | 🎬 Configurações de formato de vídeo | 🆙 Guia Atualizador integrado | | 🎚️ Conversão de Formato de Áudio | 🎬 Configurações de Formato de Vídeo | 🆙 Aba de Atualização Integrada |
| 🌍 Modo Genérico | 🔊 Normalização de Áudio (EBU R128) | 🌍 Localização em 14 idiomas | | 🌍 Modo Genérico | 🔊 Normalização de Áudio (EBU R128) | 🌍 Localização em 14 idiomas |
| 💾 Exportação de Playlist | ⚙️ Qualidade e Legendas Padrão | |
</div> </div>
<a id="installation"></a> <a id="instalação"></a>
## 🚀 Instalação ## 🚀 Instalação
### ⚡ Instalação rápida (recomendado) ### ⚡ Instalação Rápida (Recomendada)
Instale YTSage do PyPI: Instale o YTSage via PyPI:
```bash ```bash
pip install ytsage pip install ytsage
``` ```
<details> <details>
<summary>🔄 Atualizar uma instalação existente</summary> <summary>🔄 Atualizar Instalação Existente</summary>
```bash ```bash
pip install --upgrade ytsage pip install --upgrade ytsage
@@ -94,49 +95,49 @@ pip install --upgrade ytsage
</details> </details>
Em seguida, inicie o aplicativo: Em seguida, execute o aplicativo:
```bash ```bash
ytsage ytsage
``` ```
### 📦 Executáveis pré-construídos ### 📦 Executáveis Pré-compilados (Executable)
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest) > [👉 Baixar Lançamento Mais Recente](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 Janelas #### 🪟 Windows
| Formato | Descrição | | Formato | Descrição |
|--------|------------| |--------|-------------|
| ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Instalador padrão | | ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Instalador Padrão |
| ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Com FFmpeg incluído | | ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Com FFmpeg incluído |
| ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Versão portátil, sem necessidade de instalação | | ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Versão Portátil, sem necessidade de instalação |
| ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portátil com FFmpeg, compactado | | ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portátil com FFmpeg, compactado (ZIP) |
<details> <details>
<summary>🛠️ Etapas de instalação</summary> <summary>🛠️ Passos para Instalação</summary>
1. **EXE Installer (`.exe`)**: Clique duas vezes no arquivo e siga o assistente de configuração. 1. **Instalador EXE (`.exe`)**: Clique duas vezes no arquivo e siga o assistente de configuração.
2. **Versão portátil (`.zip`)**: Extraia o arquivo para o local desejado e execute `ytsage.exe`. 2. **Versão Portátil (`.zip`)**: Extraia o arquivo para o local desejado e execute `ytsage.exe`.
3. **FFmpeg Bundled**: Escolha as versões empacotadas do FFmpeg se você não tiver o FFmpeg instalado em seu sistema. 3. **FFmpeg Integrado**: Se você não possui o FFmpeg instalado no sistema, escolha as versões com FFmpeg integrado.
</details> </details>
#### 🐧Linux #### 🐧 Linux
| Formato | Descrição | | Formato | Descrição |
|--------|------------| |--------|-------------|
| ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pacote Debian | | ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pacote Debian |
| ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, portátil | | ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, Portátil |
| ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pacote RPM | | ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Pacote RPM |
| ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Pacote Flatpak | | ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Pacote Flatpak |
<details> <details>
<summary>🛠️ Etapas de instalação</summary> <summary>🛠️ Passos para Instalação</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 necessário para corrigir dependências ausentes
``` ```
- **RPM (`.rpm`)**: - **RPM (`.rpm`)**:
```bash ```bash
@@ -156,34 +157,34 @@ ytsage
#### 🍎 macOS #### 🍎 macOS
| Formato | Descrição | | Formato | Descrição |
|--------|------------| |--------|-------------|
| ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Aplicativo compactado para Apple Silicon | | ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Aplicativo ZIP para Apple Silicon |
| ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Instalador de imagem de disco para Apple Silicon | | ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Instalador Disk Image para Apple Silicon |
<details> <details>
<summary>🛠️ Etapas de instalação</summary> <summary>🛠️ Passos para Instalação</summary>
- **Instalador DMG (`.dmg`)**: Clique duas vezes para montar e arraste `YTSage.app` para a pasta Aplicativos. - **Instalador DMG (`.dmg`)**: Clique duas vezes para montar e arraste `YTSage.app` para a sua pasta Aplicativos.
- **Arquivo de aplicativos (`.zip`)**: Extraia o zip e mova `YTSage.app` para a pasta Aplicativos. - **Arquivo do Aplicativo (`.zip`)**: Extraia o ZIP e mova `YTSage.app` para a sua pasta Aplicativos.
*Observação: se você encontrar um erro "O aplicativo está danificado", consulte [macOS troubleshooting section](#troubleshooting) abaixo.* *Nota: Se você receber o erro "App está danificado", veja a seção de Problemos no macOS abaixo.*
</details> </details>
--- ---
<details> <details>
<summary>💻 Instalação manual da fonte</summary> <summary>💻 Instalação Manual a partir do Código-Fonte</summary>
### 1. Clone o repositório ### 1. Clonar o Repositório
```bash ```bash
git clone https://github.com/oop7/YTSage.git git clone https://github.com/oop7/YTSage.git
cd YTSage cd YTSage
``` ```
### 2. Instalar dependências ### 2. Instalar Dependências
#### ⚡ Com UV #### ⚡ Com uv
```bash ```bash
uv pip install . uv pip install .
@@ -195,7 +196,7 @@ uv pip install .
pip install . pip install .
``` ```
### 3. Execute o aplicativo ### 3. Executar o Aplicativo
```bash ```bash
python -m ytsage.main python -m ytsage.main
@@ -203,147 +204,151 @@ python -m ytsage.main
</details> </details>
<a id="screenshots"></a> <a id="capturas-de-tela"></a>
## 📸 Capturas de tela ## 📸 Capturas de Tela
<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="Configurações de 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 de Playlist" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Configurações de download</em></td> <td align="center"><em>Configurações de Download</em></td>
<td align="center"><em>Baixar lista de reprodução</em></td> <td align="center"><em>Download de Playlist</em></td>
</tr> </tr>
<tr> <tr>
<td><img src="../branding/screenshots/audio_format.png" alt="Audio Format Selection with Save Thumbnail" width="400"/></td> <td><img src="../branding/screenshots/audio_format.png" alt="Seleção de Formato de Áudio" 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="Opções Personalizadas" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Formato de áudio</em></td> <td align="center"><em>Formato de Áudio</em></td>
<td align="center"><em>Opções personalizadas</em></td> <td align="center"><em>Opções Personalizadas</em></td>
</tr> </tr>
</table> </table>
</div><a id="usage"></a> </div>
<a id="uso"></a>
## 📖 Uso ## 📖 Uso
<details> <details>
<summary>🎯 Uso Básico</summary> <summary>🎯 Uso Básico</summary>
1. **Inicie o YTSage** 1. **Inicie o YTSage**
2. **Colar URL do YouTube** (ou usar o botão "Colar URL") 2. **Cole uma URL do YouTube** (ou use o botão "Paste URL")
3. **Clique em "Analisar"** 3. **Clique em "Analyze"**
4. **Selecione Formato:** 4. **Escolha o Formato:**
- `Video` para downloads de vídeos - `Video` para download de vídeo
- `Audio Only` para extração de áudio - `Audio Only` para extração de áudio
5. **Escolha Opções:** 5. **Selecione Opções:**
- Ative legendas e selecione o idioma - Habilite legendas e escolha o idioma
- Ativar mesclagem de legendas - Habilite a mesclagem de legendas
- Salvar miniatura - Salvar miniatura
- Remover segmentos de patrocinadores - Remover seções de patrocinadores
- Salvar descrição - Salvar descrição
- Incorporar capítulos - Incorporar capítulos
6. **Selecione Diretório de Saída** 6. **Escolha o Diretório de Saída**
7. **Clique em "Baixar"** 7. **Clique em "Download"**
> 💡 O diretório de download padrão é a pasta "Downloads" do usuário. > 💡 O diretório de download padrão é a pasta "Downloads" do usuário.
</details> </details>
<details> <details>
<summary>📋 Baixar lista de reprodução</summary> <summary>📋 Download de Playlist</summary>
1. **Colar URL da lista de reprodução** 1. **Cole a URL da Playlist**
2. **Clique em "Analisar"** 2. **Clique em "Analyze"**
3. **Selecione vídeos no seletor de playlist (opcional, o padrão é todos)** 3. **Selecione vídeos do seletor (opcional, padrão todos)**
4. **Escolha o formato/qualidade desejado** 4. **Escolha o formato/qualidade desejado**
5. **Clique em "Baixar"** 5. **Clique em "Download"**
> 💡 O aplicativo gerencia automaticamente a fila de download > 💡 O aplicativo gerencia automaticamente a fila de download, e você pode exportar as entradas da playlist como arquivos `.txt`, `.csv`, `.m3u` ou `.json`.
</details> </details>
<details> <details>
<summary>🌍 Modo genérico para sites que não são do YouTube</summary> <summary>🌍 Modo Genérico para Sites além do YouTube</summary>
Use o modo genérico quando quiser que o YTSage aceite URLs de sites suportados pelo yt-dlp, como Dailymotion, CBC Gem, TikTok e outros. Use o Modo Genérico quando quiser que o YTSage aceite URLs de sites suportados pelo yt-dlp, como Dailymotion, CBC Gem, TikTok e outros.
Como usar: Como usar:
1. Abra `Download Settings`. 1. Abra `Download Settings`.
2. Ative `Generic Mode`. 2. Habilite `Generic Mode`.
3. Cole um URL de vídeo ou lista de reprodução compatível que não seja do YouTube. 3. Cole uma URL de vídeo ou playlist suportada que não seja do YouTube.
4. Clique em `Analyze`. 4. Clique em `Analyze`.
5. Escolha um formato e baixe normalmente. 5. Escolha um formato e baixe normalmente.
Notas: Notas:
- O Modo Genérico altera apenas a validação de URL dentro do YTSage. O site de destino ainda deve ser compatível com a versão yt-dlp instalada. - O Modo Genérico apenas altera a validação da URL dentro do YTSage. O site de destino ainda deve ser suportado pela sua versão instalada do yt-dlp.
- Alguns sites exigem cookies, uma sessão de login, um proxy ou argumentos yt-dlp extras, dependendo do extrator. - Alguns sites exigem cookies, login, proxy ou argumentos adicionais do yt-dlp, dependendo do extrator.
- Se um site falhar, atualize o yt-dlp primeiro na guia do atualizador integrado antes de relatar o problema. - Se um site falhar, atualize o yt-dlp na aba de atualização integrada antes de relatar o problema.
</details> </details>
<details> <details>
<summary>🧰 Opções de mídia e download</summary> <summary>🧰 Opções de Mídia e Download</summary>
- **Opções de legenda:** Filtre idiomas e incorpore legendas no arquivo de vídeo - **Opções de Legendas:** Filtre idiomas e incorpore legendas no arquivo de vídeo.
- **Mesclagem de legendas:** Mesclar legendas no arquivo de vídeo para legendas codificadas - **Mesclagem de Legendas:** Mescla legendas no arquivo de vídeo para legendas fixas (hardcoded).
- **Salvar descrição:** Salve a descrição do vídeo como um arquivo de texto - **Salvar Descrição:** Salva a descrição do vídeo como um arquivo de texto.
- **Salvar miniatura:** Salve a miniatura do vídeo como um arquivo de imagem - **Salvar Miniatura:** Salva a miniatura do vídeo como um arquivo de imagem.
- **Incorporar capítulos:** Incorpore marcadores de capítulo como metadados para players de vídeo compatíveis - **Incorporar Capítulos:** Inclui marcadores de capítulo como metadados para players de vídeo compatíveis.
- **Remover segmentos de patrocinadores:** Remova segmentos de patrocinadores do vídeo usando SponsorBlock - **Remover Seções de Patrocinadores:** Usa o SponsorBlock para remover segmentos patrocinados do vídeo.
- **Cortar vídeo:** baixe apenas partes específicas de um vídeo especificando intervalos de tempo no formato `HH:MM:SS` - **Cortar Vídeo:** Baixe apenas partes específicas do vídeo, especificando o intervalo de tempo no formato `HH:MM:SS`.
</details> </details>
<details> <details>
<summary>⚙️ Configurações de saída e arquivo</summary> <summary>⚙️ Configurações de Saída e Arquivos</summary>
- **Limitador de Velocidade:** Limite a velocidade de download, por exemplo, `500K` para 500 KB/s.
- **Salvar Caminho de Download:** Salva o caminho de download padrão para downloads futuros. Disponível em **Download Settings → Download Path**.
- **Resolução de Vídeo Padrão:** Defina sua resolução de vídeo preferida para seleção automática (ex: 1080p, 720p). Disponível em **Download Settings → Default Video Resolution**.
- **Idiomas de Legendas Padrão:** Defina idiomas de legendas padrão para seleção automática (separados por vírgula, ex: `pt,en`). Disponível em **Download Settings → Default Subtitle Languages**.
- **Formato de Nome de Arquivo:** Personalize o formato do nome do arquivo de saída usando variáveis como `%(title)s`, `%(uploader)s`, `%(playlist_index)s` e `%(resolution)s`. Disponível em **Download Settings → Filename Format**.
- **Forçar Formato de Saída:** Força o download do vídeo em um formato de contêiner específico, como `mp4`, `webm` ou `mkv`. Disponível em **Download Settings → Output Format Settings**.
- **Conversão de Formato de Áudio:** Converta downloads de apenas áudio para formatos preferidos como `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis`, ou `Best`. Disponível em **Download Settings → Audio Format Settings**.
- **Normalização de Áudio:** Padroniza o volume para downloads de apenas áudio usando EBU R128.
- **Conexões Simultâneas:** Aumente significativamente a velocidade de download baixando arquivos em várias partes ao mesmo tempo. Disponível em **Download Settings → General → Concurrent Connections** (padrão 1, máximo 8-10 recomendado para evitar bloqueios de IP).
- **Limitador de velocidade:** Limite a velocidade de download, por exemplo `500K` para 500 KB/s
- **Salvar caminho de download:** Salve o caminho de download padrão para downloads futuros. Disponível em **Configurações de download → Caminho de download**.
- **Formato do nome do arquivo de saída:** Personalize o formato do nome do arquivo de saída usando variáveis como `%(title)s`, `%(uploader)s` e `%(resolution)s`. Disponível em **Configurações de download → Formato do nome do arquivo**.
- **Forçar formato de saída:** Força downloads de vídeo em um formato de contêiner específico, como `mp4`, `webm` ou `mkv`. Disponível em **Configurações de download → Configurações de formato de saída**.
- **Conversão de formato de áudio:** Converta downloads somente de áudio para formatos preferidos, como `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` ou `Best`. Disponível em **Configurações de download → Configurações de formato de áudio**.
- **Normalização de áudio:** Padronize o volume para downloads somente de áudio usando EBU R128.
- **Conexões Simultâneas:** Aumente a velocidade de download drasticamente baixando arquivos em vários fragmentos simultaneamente. Disponível em **Configurações de Download → Geral → Conexões Simultâneas** (O padrão é 1, o máximo recomendado é 8-10 para evitar bloqueios de IP).\n
</details> </details>
<details> <details>
<summary>🌐 Acesso e Rede</summary> <summary>🌐 Acesso e Rede</summary>
- **Login com Cookies:** Faça login no YouTube usando cookies para acessar conteúdo privado. - **Login por Cookies:** Faça login no YouTube usando cookies para acessar conteúdo privado.
Como usar: Uso:
1. **Recomendado:** Use a opção `Extract cookies from browser` integrada no aplicativo e selecione seu navegador e, opcionalmente, um perfil. 1. **Recomendado:** Use a opção integrada `Extract cookies from browser` no aplicativo, selecione o navegador e, opcionalmente, o perfil.
2. Como alternativa, extraia os cookies manualmente: 2. Opcionalmente, extraia cookies manualmente:
uma. Exporte cookies do seu navegador usando uma extensão como [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file) a. Exporte cookies do seu navegador usando uma extensão como [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
b. Copie os cookies no formato Netscape b. Copie os cookies no formato Netscape
c. Crie um arquivo chamado `cookies.txt` e cole os cookies nele c. Crie um arquivo chamado `cookies.txt` e cole os cookies
d. Selecione o arquivo `cookies.txt` no aplicativo d. Selecione o arquivo `cookies.txt` no aplicativo
- **Suporte a proxy:** Use um servidor proxy para downloads, por exemplo `http://<proxy-server>:<port>` - **Suporte a Proxy:** Use um servidor proxy para downloads, ex: `http://<proxy-server>:<port>`
- **Modo genérico:** permite que o YTSage analise e faça download de sites que não sejam do YouTube suportados pelo yt-dlp. Habilite-o em **Configurações de download → Modo genérico**. - **Modo Genérico:** Permite que o YTSage analise e baixe de sites além do YouTube suportados pelo yt-dlp. Habilite em **Download Settings → Generic Mode**.
</details> </details>
<details> <details>
<summary>🛠️ Ferramentas e Manutenção</summary> <summary>🛠️ Ferramentas e Manutenção</summary>
- **Comandos personalizados:** Acesse recursos avançados do yt-dlp por meio de argumentos de linha de comando - **Comandos Personalizados:** Acesse recursos avançados do yt-dlp via argumentos de linha de comando.
- **Guia Atualizador:** Gerencie ferramentas de atualização integradas em um só lugar nas Opções Personalizadas: - **Aba de Atualização:** Gerencie as ferramentas de atualização integradas em um só lugar nas Opções Personalizadas:
- **Atualizações do yt-dlp:** verifique se há atualizações e alterne entre canais de lançamento estável e noturno - **Atualização do yt-dlp:** Verifique atualizações e alterne entre os canais de lançamento Stable e Nightly.
- **Verificador de versão do FFmpeg:** Verifique sua versão do FFmpeg e abra os guias de instalação - **Verificador de Versão do FFmpeg:** Verifique sua versão do FFmpeg e abra guias de instalação.
- **Atualizações do Deno:** Verifique e atualize o tempo de execução do Deno - **Atualização do Deno:** Verifique e atualize o runtime do Deno.
- **Detecção de FFmpeg/yt-dlp/Deno:** Detecta automaticamente caminhos e versões de FFmpeg, yt-dlp e Deno na caixa de diálogo Sobre. - **Detecção de FFmpeg/yt-dlp/Deno:** Detecta automaticamente caminhos e versões de FFmpeg, yt-dlp e Deno no diálogo Sobre.
- **Histórico de downloads:** Veja downloads anteriores com miniaturas e status no botão **Histórico**. - **Histórico de Downloads:** Veja downloads anteriores com miniaturas e status no botão **History**.
</details> </details>
<details> <details>
<summary>🌍 Localização</summary> <summary>🌍 Localização</summary>
YTSage oferece suporte a **14 idiomas** para acessibilidade mundial. Selecione seu idioma preferido em **Opções personalizadas → Idioma**. O YTSage suporta **14 idiomas** para alcance global. Escolha o seu idioma preferido em **Custom Options → Language**.
### Idiomas Suportados ### Idiomas Suportados
@@ -357,11 +362,11 @@ YTSage oferece suporte a **14 idiomas** para acessibilidade mundial. Selecione s
| 🇧🇷 Português | `pt` | 🇷🇺 Russo | `ru` | | 🇧🇷 Português | `pt` | 🇷🇺 Russo | `ru` |
| 🇹🇷 Turco | `tr` | 🇨🇳 Chinês | `zh` | | 🇹🇷 Turco | `tr` | 🇨🇳 Chinês | `zh` |
### LEIA-ME Traduções ### Traduções do README
| Idioma | Arquivo | Idioma | Arquivo | | Idioma | Arquivo | Idioma | Arquivo |
|----------|------|----------|------| |----------|------|----------|------|
| 🇺🇸 Inglês | [README.md](../README.md) | 🇪🇸 Espanhol | [README.es.md](README.es.md) | 🇺🇸 Inglês | [README.md](README.md) | 🇪🇸 Espanhol | [README.es.md](README.es.md) |
| 🇸🇦 Árabe | [README.ar.md](README.ar.md) | 🇫🇷 Francês | [README.fr.md](README.fr.md) | | 🇸🇦 Árabe | [README.ar.md](README.ar.md) | 🇫🇷 Francês | [README.fr.md](README.fr.md) |
| 🇩🇪 Alemão | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) | | 🇩🇪 Alemão | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) |
| 🇮🇩 Indonésio | [README.id.md](README.id.md) | 🇮🇹 Italiano | [README.it.md](README.it.md) | | 🇮🇩 Indonésio | [README.id.md](README.id.md) | 🇮🇹 Italiano | [README.it.md](README.it.md) |
@@ -369,101 +374,101 @@ YTSage oferece suporte a **14 idiomas** para acessibilidade mundial. Selecione s
| 🇧🇷 Português | [README.pt.md](README.pt.md) | 🇷🇺 Russo | [README.ru.md](README.ru.md) | | 🇧🇷 Português | [README.pt.md](README.pt.md) | 🇷🇺 Russo | [README.ru.md](README.ru.md) |
| 🇹🇷 Turco | [README.tr.md](README.tr.md) | 🇨🇳 Chinês | [README.zh.md](README.zh.md) | | 🇹🇷 Turco | [README.tr.md](README.tr.md) | 🇨🇳 Chinês | [README.zh.md](README.zh.md) |
> 💡 **Quer contribuir com uma tradução?** Confira a seção [Contributing](#contributing) para nos ajudar a adicionar mais idiomas! > 💡 **Quer ajudar na tradução?** Veja a seção [Contribuindo](#contribuindo) para nos ajudar a adicionar mais idiomas!
</details> </details>
<a id="troubleshooting"></a> <a id="solução-de-problemas"></a>
## 🛠️ Solução de problemas ## 🛠️ Solução de Problemas
<details> <details>
<summary>Clique para ver problemas e soluções comuns</summary> <summary>Clique para ver problemas comuns e soluções</summary>
- **Tabela de formato não exibida:** Atualize yt-dlp para a versão mais recente e mude para yt-dlp todas as noites. - **Tabela de formatos não aparece:** Atualize o yt-dlp para a versão mais recente e tente alternar para o yt-dlp Nightly.
- **Falha no download:** Verifique sua conexão com a Internet e certifique-se de que o vídeo esteja disponível. - **Download falhou:** Verifique sua conexão com a internet e certifique-se de que o vídeo está disponível.
- **Erros específicos de download:** - **Erros de Download Específicos:**
- **Vídeos privados:** Use autenticação de cookies para acessar conteúdo privado. - **Vídeos Privados:** Use a autenticação por cookies para acessar conteúdo privado.
- **Conteúdo com restrição de idade:** Faça login na conta do YouTube para visualizar vídeos com restrição de idade. - **Conteúdo com Restrição de Idade:** Faça login na sua conta do YouTube para visualizar vídeos com restrição de idade.
- **Vídeos bloqueados geograficamente:** considere usar uma VPN para contornar restrições regionais. - **Vídeos com Bloqueio Geográfico:** Considere usar uma VPN para contornar restrições regionais.
- **Vídeos removidos/excluídos:** O vídeo não está mais disponível no YouTube. - **Vídeo Removido:** O vídeo não está mais disponível no YouTube.
- **Transmissões ao vivo:** As transmissões ao vivo não podem ser baixadas; espere o fluxo terminar. - **Live Streams:** Transmissões ao vivo não podem ser baixadas enquanto estão sendo transmitidas; aguarde até que a transmissão termine.
- **Erros de rede:** Verifique sua conexão com a Internet e tente novamente. - **Erros de Rede:** Verifique sua conexão com a internet e tente novamente.
- **URLs inválidos:** certifique-se de que o URL esteja correto e seja de uma plataforma compatível. - **URL Inválida:** Certifique-se de que a URL está correta e pertence a uma plataforma suportada.
- **Conteúdo Premium:** Requer assinatura do YouTube Premium. - **Conteúdo Premium:** Requer uma assinatura do YouTube Premium.
- **Bloqueios de direitos autorais:** O conteúdo está bloqueado devido a restrições de direitos autorais. - **Bloqueio por Direitos Autorais:** O conteúdo está bloqueado devido a restrições de direitos autorais.
- **Arquivos de vídeo e áudio separados após o download:** Isso acontece quando o FFmpeg está ausente ou não é detectado. YTSage requer FFmpeg para mesclar fluxos de vídeo e áudio de alta qualidade. - **Arquivos de vídeo e áudio estão separados após o download:** Isso acontece quando o FFmpeg está ausente ou não foi detectado. O YTSage requer o FFmpeg para mesclar streams de vídeo e áudio de alta qualidade.
- **Solução:** Certifique-se de que o FFmpeg esteja instalado e acessível no PATH do seu sistema. Para usuários do Windows, a opção mais fácil é baixar o arquivo `YTSage-v<version>-ffmpeg.exe`, que vem junto com o FFmpeg. - **Solução:** Certifique-se de que o FFmpeg está instalado e acessível no PATH do seu sistema. Para usuários do Windows, a opção mais fácil é baixar o arquivo `YTSage-v<versão>-ffmpeg.exe`, que vem com o FFmpeg.
--- ---
#### 🛡️ Aviso do Windows Defender / Antivírus #### 🛡️ Aviso do Windows Defender / Antivírus
Alguns softwares antivírus podem sinalizar os arquivos `.exe` como falsos positivos. Esta é uma **limitação conhecida** dos aplicativos empacotados. Alguns softwares antivírus podem sinalizar arquivos `.exe` como falsos positivos. Esta é uma **limitação conhecida** de aplicativos empacotados.
**Por que isso acontece:** **Por que isso acontece:**
- A heurística antivírus pode identificar erroneamente executáveis compactados como suspeitos - As heurísticas do antivírus podem identificar incorretamente executáveis empacotados como suspeitos.
**Alternativas seguras:** **Opções Seguras:**
- ✅ **Use instalação pip:** `pip install ytsage` (recomendado) - ✅ **Use a instalação via pip:** `pip install ytsage` (recomendado)
- ✅ **Construir a partir da fonte**: seguindo isto [guide](../.github/CI_CD_README.md) - ✅ **Compile a partir do código-fonte**: Seguindo este [guia](.github/CI_CD_README.md)
- ✅ **Coloque o aplicativo na lista de permissões** em seu software antivírus - ✅ **Adicione o aplicativo à lista de permissões** do seu software antivírus.
#### 🍎 macOS: "O aplicativo está danificado e não pode ser aberto" #### 🍎 macOS: "App está danificado e não pode ser aberto"
Se você vir esse erro no macOS Sonoma ou mais recente, será necessário remover o atributo de quarentena. Se você vir este erro no macOS Sonoma ou mais recente, você precisa remover o atributo de quarentena.
1. **Abra o Terminal** (você pode encontrá-lo usando o Spotlight). 1. **Abra o Terminal** (você pode encontrá-lo usando o Spotlight).
2. **Digite o seguinte comando** mas **não** pressione Enter ainda. Certifique-se de incluir o espaço no final: 2. **Digite o seguinte comando**, mas ainda **NÃO** pressione Enter. Certifique-se de incluir o espaço no final:
```bash ```bash
xattr -d com.apple.quarantine xattr -d com.apple.quarantine
``` ```
3. **Arraste o arquivo `YTSage.app`** da janela do Finder e solte-o diretamente na janela do Terminal. Isso colará automaticamente o caminho correto do arquivo. 3. **Arraste o arquivo `YTSage.app` da janela do Finder** e solte-o diretamente na janela do Terminal. Isso colará automaticamente o caminho correto do arquivo.
4. **Pressione Enter** para executar o comando. 4. **Pressione Enter** para executar o comando.
5. **Tente abrir YTSage.app novamente.** Agora ele deve iniciar corretamente. 5. **Tente abrir o YTSage.app novamente.** Ele agora deve iniciar corretamente.
--- ---
#### **Locais de configuração (avançado)** #### **Localização da Configuração (Avançado)**
- **Janelas:** `%LOCALAPPDATA%\YTSage` - **Windows:** `%LOCALAPPDATA%\YTSage`
- **macOS:** `~/Library/Application Support/YTSage` - **macOS:** `~/Library/Application Support/YTSage`
- **Linux:** `~/.local/share/YTSage` - **Linux:** `~/.local/share/YTSage`
</details> </details>
<a id="sponsor"></a> <a id="patrocinar"></a>
## 💖 Patrocinador ## 💖 Patrocinar
Se o YTSage economizar seu tempo, considere patrocinar o projeto. O patrocínio ajuda a cobrir o tempo de desenvolvimento, testes em plataformas e melhorias futuras. Se o YTSage economiza seu tempo, considere patrocinar o projeto. Os patrocínios ajudam a cobrir o tempo de desenvolvimento, testes em todas as plataformas e melhorias futuras.
- Patrocinadores do GitHub: https://github.com/sponsors/oop7 - GitHub Sponsors: https://github.com/sponsors/oop7
- O link do patrocinador também está disponível diretamente no aplicativo, na caixa de diálogo Sobre. - O link de patrocínio está disponível diretamente através do diálogo Sobre no aplicativo.
[![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="contribuindo"></a>
## 👥 Contribuindo ## 👥 Contribuindo
Aceitamos contribuições! Veja como você pode ajudar: Contribuições são bem-vindas! Veja como você pode ajudar:
1. 🍴 Bifurque o repositório 1. 🍴 Faça um Fork do repositório
2. 🌿 Crie seu branch de recursos: 2. 🌿 Crie sua branch de recurso:
```bash ```bash
git checkout -b feature/AmazingFeature git checkout -b feature/RecursoIncrivel
``` ```
3. 💾 Confirme suas alterações: 3. 💾 Faça o commit de suas alterações:
```bash ```bash
git commit -m 'Add some AmazingFeature' git commit -m 'Adicionar RecursoIncrivel'
``` ```
4. 📤 Empurre para o galho: 4. 📤 Faça o push para a branch:
```bash ```bash
git push origin feature/AmazingFeature git push origin feature/RecursoIncrivel
``` ```
5. 🔄 Abra uma solicitação pull 5. 🔄 Abra um Pull Request
### 🌍 Contribuindo com traduções ### 🌍 Contribua com Traduções
- Atualize o arquivo README localizado correspondente (por exemplo `README.es.md`) - Atualize o arquivo README localizado relevante (ex: `readme-translations/README.pt.md`)
- Mantenha as strings do aplicativo sincronizadas editando `ytsage/languages/<code>.json` - Mantenha as strings do aplicativo em sincronia editando `ytsage/languages/<code>.json`
- Se o seu idioma estiver faltando, comece em `README.md` e crie `README.<code>.md` - Se o seu idioma estiver ausente, comece pelo `README.md` e crie `README.<code>.md`
<details> <details>
<summary>📂 Estrutura do Projeto</summary> <summary>📂 Estrutura do Projeto</summary>
@@ -476,58 +481,58 @@ Este documento descreve a estrutura de pastas organizada do YTSage.
``` ```
YTSage/ YTSage/
├── 📁 .github/ # GitHub configuration ├── 📁 .github/ # Configurações do GitHub
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates │ ├── 📁 ISSUE_TEMPLATE/ # Modelos de problemas
│ │ └── 🐛-bug-report.md # Bug report template │ │ └── 🐛-bug-report.md # Modelo de relatório de erro
│ ├─── 📁 workflows/ # GitHub Actions workflows │ ├─── 📁 workflows/ # Fluxos de trabalho do GitHub Actions
│ │ ├── build-linux.yml # Linux build workflow │ │ ├── build-linux.yml # Fluxo de build para Linux
│ │ ├── build-macos.yml # macOS build workflow │ │ ├── build-macos.yml # Fluxo de build para macOS
│ │ │── build-windows.yml # Windows build workflow │ │ │── build-windows.yml # Fluxo de build para Windows
| | └── release-all.yml # Master release workflow | | └── release-all.yml # Fluxo de lançamento principal
│ └── 📄 CI_CD_README.md # CI/CD documentation │ └── 📄 CI_CD_README.md # Documentação CI/CD
├── 📁 branding/ # Branding assets (Screenshots, SVGs) ├── 📁 branding/ # Ativos de marca (capturas de tela, SVGs)
│ ├── 📁 icons/ # Application icons │ ├── 📁 icons/ # Ícones do aplicativo
│ ├── 📁 screenshots/ # Screenshots for documentation │ ├── 📁 screenshots/ # Capturas de tela para documentação
│ └── 📁 svg/ # SVG assets │ └── 📁 svg/ # Ativos SVG
├── 📄 LICENSE # License file ├── 📄 LICENSE # Arquivo de licença
├── 📄 pyproject.toml # Project metadata and dependencies ├── 📄 pyproject.toml # Metadados do projeto e dependências
├── 📄 README.md # Project documentation ├── 📄 README.md # Documentação do projeto
├── 📄 requirements.txt # Python dependencies (dev) ├── 📄 requirements.txt # Dependências Python (dev)
└── 📁 ytsage/ # Source package └── 📁 ytsage/ # Pacote de código-fonte
├── 📁 assets/ # Runtime assets ├── 📁 assets/ # Ativos de tempo de execução
│ ├── 📁 Icon/ # Application icons │ ├── 📁 Icon/ # Ícones do aplicativo
│ └── 📁 sound/ # Audio files │ └── 📁 sound/ # Arquivos de áudio
├── 📁 languages/ # Localization files ├── 📁 languages/ # Arquivos de localização
│ ├── 📄 ar.json # Arabic translation │ ├── 📄 ar.json # Tradução em árabe
│ ├── 📄 de.json # German translation │ ├── 📄 de.json # Tradução em alemão
│ ├── 📄 en.json # English translation │ ├── 📄 en.json # Tradução em inglês
│ └── ... # Other languages │ └── ... # Outros idiomas
├── 📁 core/ # Core business logic ├── 📁 core/ # Lógica de negócios principal
│ ├── 📄 __init__.py # Core package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_deno.py # Deno integration │ ├── 📄 ytsage_deno.py # Integração Deno
│ ├── 📄 ytsage_downloader.py # Download functionality │ ├── 📄 ytsage_downloader.py # Funcionalidade de download
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration │ ├── 📄 ytsage_ffmpeg.py # Integração FFmpeg
│ ├── 📄 ytsage_utils.py # Utility functions │ ├── 📄 ytsage_utils.py # Funções utilitárias
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration │ └── 📄 ytsage_yt_dlp.py # Integração yt-dlp
├── 📁 gui/ # User interface components ├── 📁 gui/ # Componentes de interface do usuário
│ ├── 📄 __init__.py # GUI package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_gui_main.py # Main application window │ ├── 📄 ytsage_gui_main.py # Janela principal do aplicativo
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes │ └── 📁 ytsage_gui_dialogs/ # Classes de diálogo
├── 📁 utils/ # Utility modules ├── 📁 utils/ # Módulos utilitários
│ ├── 📄 __init__.py # Utils package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_config_manager.py # Configuration management │ ├── 📄 ytsage_config_manager.py # Gerenciamento de configuração
│ └── 📄 ytsage_logger.py # Logging utilities │ └── 📄 ytsage_logger.py # Ferramentas de registro
├── 📄 __init__.py # Package entry point ├── 📄 __init__.py # Ponto de entrada do pacote
└── 📄 main.py # Main execution script └── 📄 main.py # Script de execução principal
``` ```
</details> </details>
## ⭐️ História da estrela ## ⭐️ Histórico de Estrelas
<div align="center"> <div align="center">
## História da estrela ## 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/
## 📜 Licença ## 📜 Licença
Este projeto está licenciado sob a licença MIT - consulte o arquivo [LICENSE](../LICENSE) para obter detalhes. Este projeto é licenciado sob a Licença MIT - consulte o arquivo [LICENSE](LICENSE) para mais detalhes.
## 🙏 Agradecimentos ## 🙏 Agradecimentos
<details> <details>
<summary>Mostrar agradecimentos</summary> <summary>Mostrar Agradecimentos</summary>
<div align="center"> <div align="center">
<p>Um sincero obrigado a todos que contribuíram para este projeto abrindo um problema para sugerir uma melhoria ou relatar um bug.</p> <p>Muito obrigado a todos que contribuíram para este projeto abrindo problemas para sugerir melhorias ou relatar erros.</p>
<table> <table>
<tr class="section"><th colspan="2">Componentes principais</th></tr> <tr class="section"><th colspan="2">Componentes Principais</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>Mecanismo de download</td> <td>Mecanismo de 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>Processamento de mídia</td> <td>Processamento de Mídia</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://deno.com/">Deno</a></td> <td><a href="https://deno.com/">Deno</a></td>
<td>Tempo de execução para integração com yt-dlp</td> <td>Runtime para integração do yt-dlp</td>
</tr> </tr>
<tr class="section"><th colspan="2">Bibliotecas e Estruturas</th></tr> <tr class="section"><th colspan="2">Bibliotecas e 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>Estrutura GUI</td> <td>Framework GUI</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-pillow.org/">Travesseiro</a></td> <td><a href="https://python-pillow.org/">Pillow</a></td>
<td>Processamento de imagem</td> <td>Processamento de Imagens</td>
</tr>
<tr><td><a href="https://requests.readthedocs.io/">solicitações</a></td>
<td>Solicitações HTTP</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://packaging.python.org/">embalagem</a></td> <td><a href="https://requests.readthedocs.io/">requests</a></td>
<td>Manuseio de versões e pacotes</td> <td>Requisições HTTP</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-markdown.github.io/">remarcação</a></td> <td><a href="https://packaging.python.org/">packaging</a></td>
<td>Renderização de redução</td> <td>Gerenciamento de Versão e Empacotamento</td>
</tr>
<tr>
<td><a href="https://python-markdown.github.io/">markdown</a></td>
<td>Renderização de 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>Registro</td> <td>Registro de Logs</td>
</tr> </tr>
<tr class="section"><th colspan="2">Ativos e Contribuintes</th></tr> <tr class="section"><th colspan="2">Ativos e Contribuidores</th></tr>
<tr> <tr>
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Nova Notificação 09 por Universfield</a></td> <td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">New Notification 09 de Universfield</a></td>
<td>Som de notificação</td> <td>Som de Notificação</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>Colaborador de código</td> <td>Contribuidor de Código</td>
</tr> </tr>
</table> </table>
@@ -605,14 +611,14 @@ Este projeto está licenciado sob a licença MIT - consulte o arquivo [LICENSE](
</details> </details>
## ⚠️ Isenção de responsabilidade ## ⚠️ Isenção de Responsabilidade
Esta ferramenta é apenas para uso pessoal. Respeite os termos de serviço do YouTube e os direitos dos criadores de conteúdo. Esta ferramenta é apenas para uso pessoal. Respeite os Termos de Serviço do YouTube e os direitos dos produtores de conteúdo.
--- ---
<div align="center"> <div align="center">
Feito com ❤️ por [oop7](https://github.com/oop7) Criado com ❤️ por [oop7](https://github.com/oop7)
</div> </div>