Update links in readme-translations/*.md so they point to the project root (prepend ../). Adjusted references for README.md, .github/CI_CD_README.md and LICENSE across the translation files so links resolve correctly from the readme-translations directory.
26 KiB
Nowoczesny downloader YouTube z czystym interfejsem PySide6.
Pobieraj wideo w dowolnej jakości, wyodrębniaj audio, pobieraj napisy i wiele więcej.
🌍 Języki README
Angielski: EN | Arabski: AR | Niemiecki: DE | Hiszpański: ES | Francuski: FR | Hindi: HI | Indonezyjski: ID | Włoski: IT | Japoński: JA | Polski: PL | Portugalski: PT | Rosyjski: RU | Turecki: TR | Chiński: ZH
Instalacja • Funkcje • Użycie • Zrzuty ekranu • Rozwiązywanie problemów • Sponsor • Współpraca
❓ Dlaczego YTSage?
YTSage został zaprojektowany dla użytkowników, którzy chcą prostego, ale potężnego downloadera YouTube. W przeciwieństwie do innych narzędzi oferuje:
- Nowoczesny i czysty interfejs PySide6
- Pobieranie wideo, audio i napisów jednym kliknięciem
- Zaawansowane funkcje, takie jak SponsorBlock, scalanie napisów i wybór playlisty
- Opcjonalny tryb ogólny (Generic Mode) dla stron spoza YouTube obsługiwanych przez yt-dlp
- Obsługa wielu platform i łatwa instalacja
✨ Funkcje
| Funkcje podstawowe | Funkcje zaawansowane | Funkcje dodatkowe |
|---|---|---|
| 🎥 Tabela formatów | 🚫 Integracja SponsorBlock | 🎞️ Wyświetlanie FPS/HDR |
| 🎵 Wyodrębnianie audio | 📝 Wybór i scalanie napisów | 🔄 Auto-aktualizacja yt-dlp |
| ✨ Prosty interfejs użytkownika | 💾 Zapis opisu i miniatur | 🛠️ Wykrywanie FFmpeg/yt-dlp/Deno |
| 📋 Obsługa i wybór playlist | 🚀 Ogranicznik prędkości | ⚙️ Własne komendy |
| 📑 Integracja rozdziałów | ✂️ Przycinanie sekcji wideo | 🍪 Logowanie przez ciasteczka |
| 📜 Historia pobierania | 🔄 Wybór kanału wydań | 🌐 Obsługa proxy |
| 🎚️ Konwersja formatów audio | 🎬 Ustawienia formatu wideo | 🆙 Zintegrowana karta aktualizacji |
| 🌍 Tryb ogólny | 🔊 Normalizacja audio (EBU R128) | 🌍 Lokalizacja w 14 językach |
| 💾 Eksport playlisty | ⚙️ Domyślna jakość i napisy |
🚀 Instalacja
⚡ Szybka instalacja (zalecana)
Zainstaluj YTSage przez PyPI:
pip install ytsage
🔄 Aktualizacja istniejącej instalacji
pip install --upgrade ytsage
Następnie uruchom aplikację:
ytsage
📦 Gotowe pliki wykonywalne (Executable)
🪟 Windows
| Format | Opis |
|---|---|
| Standardowy instalator | |
| Z dołączonym FFmpeg | |
| Wersja przenośna, nie wymaga instalacji | |
| Przenośna z FFmpeg, skompresowana (ZIP) |
🛠️ Kroki instalacji
- Instalator EXE (
.exe): Kliknij dwukrotnie plik i postępuj zgodnie z instrukcjami kreatora. - Wersja przenośna (
.zip): Rozpakuj archiwum w wybranym miejscu i uruchomytsage.exe. - Wbudowany FFmpeg: Jeśli nie masz zainstalowanego FFmpeg w systemie, wybierz wersję z dołączonym FFmpeg.
🐧 Linux
| Format | Opis |
|---|---|
| Pakiet Debian | |
| AppImage, przenośny | |
| Pakiet RPM | |
| Pakiet Flatpak |
🛠️ Kroki instalacji
- DEB (
.deb):sudo dpkg -i ytsage_*.deb sudo apt-get install -f # Jeśli trzeba naprawić brakujące zależności - RPM (
.rpm):sudo rpm -i ytsage-*.rpm - AppImage (
.AppImage):chmod +x YTSage-*.AppImage ./YTSage-*.AppImage - Flatpak: Postępuj zgodnie z instrukcjami na Flathub lub uruchom:
flatpak install flathub io.github.oop7.ytsage
🍎 macOS
| Format | Opis |
|---|---|
| Aplikacja ZIP dla Apple Silicon | |
| Instalator Disk Image dla Apple Silicon |
🛠️ Kroki instalacji
- Instalator DMG (
.dmg): Kliknij dwukrotnie, aby zamontować, a następnie przeciągnijYTSage.appdo folderu Aplikacje. - Archiwum aplikacji (
.zip): Rozpakuj ZIP i przenieśYTSage.appdo folderu Aplikacje.
Uwaga: Jeśli otrzymasz błąd "Aplikacja jest uszkodzona", zapoznaj się z sekcją rozwiązywania problemów macOS poniżej.
💻 Ręczna instalacja ze źródeł
1. Sklonuj repozytorium
git clone https://github.com/oop7/YTSage.git
cd YTSage
2. Zainstaluj zależności
⚡ Z użyciem uv
uv pip install .
📦 Lub ze standardowym pip
pip install .
3. Uruchom aplikację
python -m ytsage.main
📸 Zrzuty ekranu
📖 Użycie
🎯 Podstawowe użycie
- Uruchom YTSage
- Wklej URL z YouTube (lub użyj przycisku "Wklej URL")
- Kliknij "Analizuj"
- Wybierz format:
Wideodla pobierania wideoTylko audiodla wyodrębniania dźwięku
- Wybierz opcje:
- Włącz napisy i wybierz język
- Włącz scalanie napisów
- Zapisz miniaturę
- Usuń sekcje sponsorowane
- Zapisz opis
- Osadź rozdziały
- Wybierz folder wyjściowy
- Kliknij "Pobierz"
💡 Domyślny folder pobierania to folder "Pobrane" użytkownika.
📋 Pobieranie playlisty
- Wklej URL playlisty
- Kliknij "Analizuj"
- Wybierz filmy z selektora (opcjonalnie, domyślnie wszystkie)
- Wybierz żądany format/jakość
- Kliknij "Pobierz"
💡 Aplikacja automatycznie zarządza kolejką pobierania, a wpisy playlisty możesz eksportować do plików
.txt,.csv,.m3ulub.json.
🌍 Tryb ogólny dla stron innych niż YouTube
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 go użyć:
- Otwórz
Download Settings. - Włącz
Generic Mode. - Wklej obsługiwany URL wideo lub playlisty spoza YouTube.
- Kliknij
Analyze. - Wybierz format i pobierz jak zwykle.
Uwagi:
- 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 strony wymagają ciasteczek, logowania, proxy lub dodatkowych argumentów yt-dlp w zależności od ekstraktora.
- Jeśli strona nie działa, zaktualizuj yt-dlp ze zintegrowanej karty aktualizacji przed zgłoszeniem problemu.
🧰 Opcje mediów i pobierania
- Opcje napisów: Filtruj języki i osadzaj napisy w pliku wideo.
- Scalanie napisów: Scala napisy z plikiem wideo (hardcoded).
- Zapis opisu: Zapisuje opis wideo jako plik tekstowy.
- Zapis miniatury: Zapisuje miniaturę wideo jako plik graficzny.
- Osadź rozdziały: Dołącza znaczniki rozdziałów jako metadane dla kompatybilnych odtwarzaczy.
- Usuń sekcje sponsorowane: Używa SponsorBlock do usuwania segmentów sponsorowanych z filmu.
- Przycinanie wideo: Pobieraj tylko określone części filmu, określając zakres czasu w formacie
GG:MM:SS.
⚙️ Ustawienia wyjściowe i plików
- Ogranicznik prędkości: Ogranicz prędkość pobierania, np.
500Kdla 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)si%(resolution)s. Dostępne w Download Settings → Filename Format. - Wymuś format wyjściowy: Wymuś pobieranie wideo do konkretnego formatu kontenera, jak
mp4,webmlubmkv. 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,VorbislubBest. 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).
🌐 Dostęp i sieć
- Logowanie przez ciasteczka: Zaloguj się do YouTube, używając ciasteczek, aby uzyskać dostęp do prywatnych treści.
Użycie:
- Zalecane: Użyj wbudowanej opcji
Eksportuj ciasteczka z przeglądarki, a następnie wybierz przeglądarkę i opcjonalnie profil. - Alternatywnie, wyeksportuj ciasteczka ręcznie:
a. Eksportuj ciasteczka z przeglądarki, używając rozszerzenia typu cookie-editor
b. Skopiuj ciasteczka w formacie Netscape
c. Utwórz plik o nazwie
cookies.txti wklej ciasteczka d. Wybierz plikcookies.txtw aplikacji
- Zalecane: Użyj wbudowanej opcji
- Obsługa proxy: Użyj serwera proxy do pobierania, np.
http://<serwer-proxy>:<port> - 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.
🛠️ Narzędzia i konserwacja
- Własne komendy: Dostęp do zaawansowanych funkcji yt-dlp poprzez argumenty wiersza poleceń.
- Karta aktualizacji: Zarządzaj wbudowanymi narzędziami aktualizacji z jednego miejsca w opcjach niestandardowych:
- Aktualizacja yt-dlp: Sprawdzaj aktualizacje i przełączaj się między kanałami Stable i Nightly.
- Sprawdzanie wersji FFmpeg: Weryfikuj wersję FFmpeg i otwieraj przewodniki instalacji.
- 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 "O programie".
- Historia pobierania: Przeglądaj poprzednie pobrania z miniaturami i statusami za pomocą przycisku History.
🌍 Lokalizacja
YTSage obsługuje 14 języków. Wybierz preferowany język w Custom Options → Language.
Obsługiwane języki
| Język | Kod | Język | Kod |
|---|---|---|---|
| 🇺🇸 Angielski | en |
🇪🇸 Hiszpański | es |
| 🇸🇦 Arabski | ar |
🇫🇷 Francuski | fr |
| 🇩🇪 Niemiecki | de |
🇮🇳 Hindi | hi |
| 🇮🇩 Indonezyjski | id |
🇮🇹 Włoski | it |
| 🇯🇵 Japoński | ja |
🇵🇱 Polski | pl |
| 🇧🇷 Portugalski | pt |
🇷🇺 Rosyjski | ru |
| 🇹🇷 Turecki | tr |
🇨🇳 Chiński | zh |
Tłumaczenia README
| Język | Plik | Język | Plik |
|---|---|---|---|
| 🇺🇸 Angielski | README.md | 🇪🇸 Hiszpański | README.es.md |
| 🇸🇦 Arabski | README.ar.md | 🇫🇷 Francuski | README.fr.md |
| 🇩🇪 Niemiecki | README.de.md | 🇮🇳 Hindi | README.hi.md |
| 🇮🇩 Indonezyjski | README.id.md | 🇮🇹 Włoski | README.it.md |
| 🇯🇵 Japoński | README.ja.md | 🇵🇱 Polski | README.pl.md |
| 🇧🇷 Portugalski | README.pt.md | 🇷🇺 Rosyjski | README.ru.md |
| 🇹🇷 Turecki | README.tr.md | 🇨🇳 Chiński | README.zh.md |
💡 Chcesz pomóc w tłumaczeniu? Sprawdź sekcję Współpraca, aby pomóc nam dodać więcej języków!
🛠️ Rozwiązywanie problemów
Kliknij, aby zobaczyć typowe problemy i rozwiązania
- Tabela formatów nie pojawia się: Zaktualizuj yt-dlp do najnowszej wersji i spróbuj przełączyć się na kanał yt-dlp Nightly.
- Pobieranie nie powiodło się: Sprawdź połączenie z internetem i upewnij się, że wideo jest dostępne.
- Konkretne błędy pobierania:
- Prywatne wideo: Użyj uwierzytelniania przez ciasteczka, aby uzyskać dostęp do prywatnych treści.
- Treści z ograniczeniem wiekowym: Zaloguj się na swoje konto YouTube, aby wyświetlić filmy z ograniczeniem wiekowym.
- Wideo z blokadą regionalną: Rozważ użycie VPN, aby obejść ograniczenia regionalne.
- Usunięte wideo: Film nie jest już dostępny na YouTube.
- Transmisje na żywo: Transmisji na żywo nie można pobierać w trakcie ich trwania; poczekaj, aż transmisja się zakończy.
- Błędy sieciowe: Sprawdź połączenie z internetem i spróbuj ponownie.
- Nieprawidłowy URL: Upewnij się, że adres URL jest poprawny i pochodzi z obsługiwanej platformy.
- Treść Premium: Wymaga subskrypcji YouTube Premium.
- Blokada praw autorskich: Treść jest zablokowana z powodu ograniczeń praw autorskich.
- 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 zmiennej PATH systemu. Dla użytkowników Windows najprostszą opcją jest pobranie pliku
YTSage-v<wersja>-ffmpeg.exe, który zawiera 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
🛡️ Ostrzeżenie Windows Defender / Antywirus
Niektóre programy antywirusowe mogą oznaczać pliki .exe jako fałszywe alarmy (false positive). Jest to znane ograniczenie pakowanych aplikacji.
Dlaczego tak się dzieje:
- Heurystyka antywirusa może błędnie zidentyfikować spakowane pliki wykonywalne jako podejrzane.
Bezpieczne alternatywy:
- ✅ Użyj instalacji przez pip:
pip install ytsage(zalecane) - ✅ Zbuduj ze źródeł: Postępując zgodnie z tym przewodnikiem
- ✅ Dodaj aplikację do wyjątków w swoim programie antywirusowym.
🍎 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.
- Otwórz Terminal (możesz go znaleźć przez Spotlight).
- Wpisz następującą komendę, ale jeszcze NIE naciskaj Enter. Pamiętaj o spacjach na końcu:
xattr -d com.apple.quarantine - Przeciągnij plik
YTSage.appz okna Findera i upuść go bezpośrednio w oknie Terminala. To automatycznie wklei poprawną ścieżkę do pliku. - Naciśnij Enter, aby uruchomić komendę.
- Spróbuj ponownie otworzyć YTSage.app. Powinien uruchomić się poprawnie.
Lokalizacja konfiguracji (zaawansowane)
- Windows:
%LOCALAPPDATA%\YTSage - macOS:
~/Library/Application Support/YTSage - Linux:
~/.local/share/YTSage
💖 Sponsor
Jeśli YTSage oszczędza Twój czas, rozważ wsparcie projektu. Sponsoring pomaga pokryć czas programistyczny, testy na wszystkich platformach i przyszłe ulepszenia.
- GitHub Sponsors: https://github.com/sponsors/oop7
- Link do wsparcia jest dostępny bezpośrednio przez okno "O programie" w aplikacji.
👥 Współpraca
Zapraszamy do współpracy! Oto jak możesz pomóc:
- 🍴 Skonfiguruj fork repozytorium
- 🌿 Utwórz gałąź (branch) dla swojej funkcji:
git checkout -b feature/NiesamowitaFunkcja
- 💾 Zatwierdź zmiany (commit):
git commit -m 'Dodaj NiesamowitaFunkcja'
- 📤 Wyślij zmiany do gałęzi (push):
git push origin feature/NiesamowitaFunkcja
- 🔄 Otwórz Pull Request
🌍 Pomóż w tłumaczeniach
- Zaktualizuj odpowiedni lokalny plik README (np.
readme-translations/README.pl.md) - Dbaj o synchronizację komunikatów aplikacji, edytując
ytsage/languages/<code>.json - Jeśli brakuje Twojego języka, zacznij od
README.mdi stwórzREADME.<code>.md
📂 Struktura projektu
YTSage - Struktura projektu
Ten dokument opisuje zorganizowaną strukturę folderów projektu YTSage.
📁 Struktura projektu
YTSage/
├── 📁 .github/ # Konfiguracja GitHub
│ ├── 📁 ISSUE_TEMPLATE/ # Szablony zgłoszeń
│ │ └── 🐛-bug-report.md # Szablon zgłoszenia błędu
│ ├─── 📁 workflows/ # Procesy GitHub Actions
│ │ ├── build-linux.yml # Proces budowania dla Linux
│ │ ├── build-macos.yml # Proces budowania dla macOS
│ │ │── build-windows.yml # Proces budowania dla Windows
| | └── release-all.yml # Proces głównego wydania
│ └── 📄 CI_CD_README.md # Dokumentacja CI/CD
├── 📁 branding/ # Materiały graficzne (zrzuty ekranu, SVG)
│ ├── 📁 icons/ # Ikony aplikacji
│ ├── 📁 screenshots/ # Zrzuty ekranu do dokumentacji
│ └── 📁 svg/ # Zasoby SVG
├── 📄 LICENSE # Plik licencji
├── 📄 pyproject.toml # Metadane projektu i zależności
├── 📄 README.md # Dokumentacja projektu
├── 📄 requirements.txt # Zależności Python (dev)
└── 📁 ytsage/ # Pakiet kodu źródłowego
├── 📁 assets/ # Zasoby czasu wykonywania
│ ├── 📁 Icon/ # Ikony aplikacji
│ └── 📁 sound/ # Pliki dźwiękowe
├── 📁 languages/ # Pliki lokalizacji
│ ├── 📄 ar.json # Tłumaczenie arabskie
│ ├── 📄 de.json # Tłumaczenie niemieckie
│ ├── 📄 en.json # Tłumaczenie angielskie
│ └── ... # Inne języki
├── 📁 core/ # Główna logika biznesowa
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_deno.py # Integracja Deno
│ ├── 📄 ytsage_downloader.py # Funkcjonalność pobierania
│ ├── 📄 ytsage_ffmpeg.py # Integracja FFmpeg
│ ├── 📄 ytsage_utils.py # Funkcje pomocnicze
│ └── 📄 ytsage_yt_dlp.py # Integrasi yt-dlp
├── 📁 gui/ # Komponenty interfejsu użytkownika
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_gui_main.py # Główne okno aplikacji
│ └── 📁 ytsage_gui_dialogs/ # Klasy okien dialogowych
├── 📁 utils/ # Moduły pomocnicze
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_config_manager.py # Zarządzanie konfiguracją
│ └── 📄 ytsage_logger.py # Narzędzia logowania
├── 📄 __init__.py # Punkt wejścia pakietu
└── 📄 main.py # Główny skrypt wykonawczy
⭐️ Historia gwiazdek
📜 Licencja
Ten projekt jest udostępniany na licencji MIT - zobacz plik LICENSE, aby poznać szczegóły.
🙏 Podziękowania
Pokaż podziękowania
Wielkie podziękowania dla wszystkich, którzy przyczynili się do rozwoju projektu poprzez zgłaszanie sugestii i błędów.
| Główne komponenty | |
|---|---|
| yt-dlp | Silnik pobierania |
| FFmpeg | Przetwarzanie mediów |
| Deno | Środowisko dla integracji yt-dlp |
| Biblioteki i frameworki | |
| PySide6 | Framework GUI |
| Pillow | Przetwarzanie obrazów |
| requests | Żądania HTTP |
| packaging | Zarządzanie wersjami i pakowanie |
| markdown | Renderowanie Markdown |
| loguru | Logowanie |
| Zasoby i współpracownicy | |
| New Notification 09 by Universfield | Dźwięk powiadomienia |
| viru185 | Współpracownik kodu |
⚠️ Zastrzeżenie
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.
Stworzone z ❤️ przez oop7



