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.
25 KiB
Pengunduh YouTube modern dengan antarmuka PySide6 yang bersih.
Unduh video dalam kualitas apa pun, ekstrak audio, dapatkan subtitle, dan banyak lagi.
🌍 Bahasa README
Inggris: EN | Arab: AR | Jerman: DE | Spanyol: ES | Prancis: FR | Hindi: HI | Indonesia: ID | Italia: IT | Jepang: JA | Polandia: PL | Portugis: PT | Rusia: RU | Turki: TR | Mandarin: ZH
Instalasi • Fitur • Penggunaan • Screenshot • Troubleshooting • Sponsor • Kontribusi
❓ Mengapa YTSage?
YTSage dirancang untuk pengguna yang menginginkan pengunduh YouTube yang sederhana namun kuat. Tidak seperti alat lainnya, ia menawarkan:
- Antarmuka PySide6 yang modern dan bersih
- Unduh video, audio, dan subtitle sekali klik
- Fitur canggih seperti SponsorBlock, penggabungan subtitle, dan pemilihan playlist
- Mode Generik Opsional untuk situs di luar YouTube yang didukung oleh yt-dlp
- Dukungan lintas platform dan instalasi mudah
✨ Fitur
| Fitur Dasar | Fitur Lanjutan | Fitur Tambahan |
|---|---|---|
| 🎥 Tabel Format | 🚫 Integrasi SponsorBlock | 🎞️ Tampilan FPS/HDR |
| 🎵 Ekstraksi Audio | 📝 Pemilihan & Penggabungan Subtitle | 🔄 Pembaruan yt-dlp Otomatis |
| ✨ Antarmuka Pengguna Sederhana | 💾 Simpan Deskripsi & Thumbnail | 🛠️ Deteksi FFmpeg/yt-dlp/Deno |
| 📋 Dukungan & Pemilih Playlist | 🚀 Pembatas Kecepatan | ⚙️ Perintah Kustom |
| 📑 Integrasi Bab (Chapters) | ✂️ Potong Bagian Video | 🍪 Login Cookie |
| 📜 Riwayat Unduhan | 🔄 Pilihan Saluran Rilis | 🌐 Dukungan Proxy |
| 🎚️ Konversi Format Audio | 🎬 Pengaturan Format Video | 🆙 Tab Pembaruan Terintegrasi |
| 🌍 Mode Generik | 🔊 Normalisasi Audio (EBU R128) | 🌍 Lokalisasi dalam 14 Bahasa |
| 💾 Ekspor Playlist | ⚙️ Kualitas & Subtitle Default |
🚀 Instalasi
⚡ Instalasi Cepat (Direkomendasikan)
Instal YTSage melalui PyPI:
pip install ytsage
🔄 Perbarui Instalasi yang Ada
pip install --upgrade ytsage
Kemudian jalankan aplikasi:
ytsage
📦 Executable Siap Pakai (Executable)
🪟 Windows
| Format | Deskripsi |
|---|---|
| Installer Standar | |
| Dilengkapi dengan FFmpeg | |
| Versi Portabel, tidak perlu instalasi | |
| Portabel dengan FFmpeg, dikompresi (ZIP) |
🛠️ Langkah Instalasi
- Installer EXE (
.exe): Klik dua kali pada file dan ikuti wizard pengaturan. - Versi Portabel (
.zip): Ekstrak arsip ke lokasi yang diinginkan dan jalankanytsage.exe. - FFmpeg Bawaan: Jika Anda tidak memiliki FFmpeg di sistem Anda, pilih versi dengan FFmpeg bawaan.
🐧 Linux
| Format | Deskripsi |
|---|---|
| Paket Debian | |
| AppImage, Portabel | |
| Paket RPM | |
| Bundel Flatpak |
🛠️ Langkah Instalasi
- DEB (
.deb):sudo dpkg -i ytsage_*.deb sudo apt-get install -f # Jika perlu perbaiki dependensi yang kurang - RPM (
.rpm):sudo rpm -i ytsage-*.rpm - AppImage (
.AppImage):chmod +x YTSage-*.AppImage ./YTSage-*.AppImage - Flatpak: Ikuti instruksi di Flathub atau jalankan:
flatpak install flathub io.github.oop7.ytsage
🍎 macOS
| Format | Deskripsi |
|---|---|
| Aplikasi ZIP untuk Apple Silicon | |
| Installer Disk Image untuk Apple Silicon |
🛠️ Langkah Instalasi
- Installer DMG (
.dmg): Klik dua kali untuk memasang, lalu tarikYTSage.appke folder Applications Anda. - Arsip Aplikasi (
.zip): Ekstrak ZIP dan pindahkanYTSage.appke folder Applications Anda.
Catatan: Jika Anda mendapatkan kesalahan "App is damaged", lihat bagian Troubleshooting macOS di bawah ini.
💻 Instalasi Manual dari Sumber (Source)
1. Kloning Repositori
git clone https://github.com/oop7/YTSage.git
cd YTSage
2. Instal Dependensi
⚡ Dengan uv
uv pip install .
📦 Atau dengan pip standar
pip install .
3. Jalankan Aplikasi
python -m ytsage.main
📸 Screenshot
📖 Penggunaan
🎯 Penggunaan Dasar
- Luncurkan YTSage
- Tempel URL YouTube (atau gunakan tombol "Paste URL")
- Klik "Analyze"
- Pilih Format:
Videountuk unduhan videoAudio Onlyuntuk ekstraksi audio
- Pilih Opsi:
- Aktifkan subtitle dan pilih bahasa
- Aktifkan penggabungan subtitle
- Simpan thumbnail
- Hapus bagian sponsor
- Simpan deskripsi
- Masukkan bab (chapters)
- Pilih Direktori Output
- Klik "Download"
💡 Direktori unduhan bawaan adalah folder "Downloads" pengguna.
📋 Unduhan Playlist
- Tempel URL Playlist
- Klik "Analyze"
- Pilih video dari pemilih playlist (opsional, default semua)
- Pilih format/kualitas yang diinginkan
- Klik "Download"
💡 Aplikasi secara otomatis mengelola antrean unduhan, dan Anda dapat mengekspor entri playlist sebagai file
.txt,.csv,.m3u, atau.json.
🌍 Mode Generik untuk Situs Selain YouTube
Gunakan Mode Generik saat Anda ingin YTSage menerima URL dari situs yang didukung oleh yt-dlp seperti Dailymotion, CBC Gem, TikTok, dan lainnya.
Cara menggunakannya:
- Buka
Download Settings. - Aktifkan
Generic Mode. - Tempel URL video atau playlist yang didukung selain YouTube.
- Klik
Analyze. - Pilih format dan unduh seperti biasa.
Catatan:
- Mode Generik hanya mengubah validasi URL di dalam YTSage. Situs target harus tetap didukung oleh versi yt-dlp yang Anda instal.
- Beberapa situs memerlukan cookie, login, proxy, atau argumen yt-dlp tambahan tergantung pada ekstraktornya.
- Jika suatu situs gagal, perbarui yt-dlp dari tab pembaruan terintegrasi sebelum melaporkan masalah.
🧰 Opsi Media & Unduhan
- Opsi Subtitle: Filter bahasa dan masukkan subtitle ke dalam file video.
- Penggabungan Subtitle: Menggabungkan subtitle ke dalam file video untuk subtitle permanen (hardcoded).
- Simpan Deskripsi: Simpan deskripsi video sebagai file teks.
- Simpan Thumbnail: Simpan thumbnail video sebagai file gambar.
- Masukkan Bab (Chapters): Sertakan penanda bab sebagai metadata untuk pemutar video yang kompatibel.
- Hapus Bagian Sponsor: Gunakan SponsorBlock untuk menghapus segmen sponsor dari video.
- Potong Video: Unduh hanya bagian tertentu dari video dengan menentukan rentang waktu dalam format
JJ:MM:DD.
⚙️ Pengaturan Output & File
- Pembatas Kecepatan: Batasi kecepatan unduhan, misalnya
500Kuntuk 500 KB/s. - Simpan Jalur Unduhan: Menyimpan jalur unduhan default untuk unduhan di masa mendatang. Tersedia di Download Settings → Download Path.
- Resolusi Video Default: Atur resolusi video pilihan Anda untuk pemilihan otomatis (misalnya 1080p, 720p). Tersedia di Download Settings → Default Video Resolution.
- Bahasa Subtitle Default: Atur bahasa subtitle default untuk pemilihan otomatis (dipisahkan koma, misalnya
id,en). Tersedia di Download Settings → Default Subtitle Languages. - Format Nama File: Sesuaikan format nama file output menggunakan variabel seperti
%(title)s,%(uploader)s,%(playlist_index)s, dan%(resolution)s. Tersedia di Download Settings → Filename Format. - Paksa Format Output: Paksa unduhan video ke format kontainer tertentu seperti
mp4,webm, ataumkv. Tersedia di Download Settings → Output Format Settings. - Konversi Format Audio: Konversi unduhan audio saja ke format pilihan seperti
AAC,MP3,FLAC,WAV,Opus,M4A,Vorbis, atauBest. Tersedia di Download Settings → Audio Format Settings. - Normalisasi Audio: Standarisasi volume untuk unduhan audio saja menggunakan EBU R128.
- Koneksi Serentak: Tingkatkan kecepatan unduhan secara signifikan dengan mengunduh file dalam beberapa bagian secara bersamaan. Tersedia di Download Settings → General → Concurrent Connections (default 1, maksimal 8-10 direkomendasikan untuk menghindari blokir IP).
🌐 Akses & Jaringan
- Login Cookie: Masuk ke YouTube menggunakan cookie untuk mengakses konten pribadi.
Penggunaan:
- Direkomendasikan: Gunakan opsi bawaan
Extract cookies from browserdi aplikasi, lalu pilih browser dan opsional profil Anda. - Secara opsional, ekstrak cookie secara manual:
a. Ekspor cookie dari browser Anda menggunakan ekstensi seperti cookie-editor
b. Salin cookie dalam format Netscape
c. Buat file bernama
cookies.txtdan tempel cookie d. Pilih filecookies.txtdi aplikasi
- Direkomendasikan: Gunakan opsi bawaan
- Dukungan Proxy: Gunakan server proxy untuk unduhan, misalnya
http://<server-proxy>:<port> - Mode Generik: Izinkan YTSage untuk menganalisis dan mengunduh dari situs selain YouTube yang didukung oleh yt-dlp. Aktifkan dari Download Settings → Generic Mode.
🛠️ Alat & Pemeliharaan
- Perintah Kustom: Akses fitur yt-dlp tingkat lanjut melalui argumen baris perintah.
- Tab Pembaruan: Kelola alat pembaruan bawaan dari satu tempat di Opsi Kustom:
- Pembaruan yt-dlp: Periksa pembaruan dan beralih antara saluran rilis Stable dan Nightly.
- Pemeriksa Versi FFmpeg: Verifikasi versi FFmpeg Anda dan buka panduan instalasi.
- Pembaruan Deno: Periksa dan perbarui runtime Deno.
- Deteksi FFmpeg/yt-dlp/Deno: Secara otomatis mendeteksi jalur dan versi FFmpeg, yt-dlp, dan Deno dari dialog About.
- Riwayat Unduhan: Lihat unduhan sebelumnya dengan thumbnail dan status dari tombol History.
🌍 Lokalisasi
YTSage mendukung 14 bahasa untuk jangkauan global. Pilih bahasa pilihan Anda di Custom Options → Language.
Bahasa yang Didukung
| Bahasa | Kode | Bahasa | Kode |
|---|---|---|---|
| 🇺🇸 Inggris | en |
🇪🇸 Spanyol | es |
| 🇸🇦 Arab | ar |
🇫🇷 Prancis | fr |
| 🇩🇪 Jerman | de |
🇮🇳 Hindi | hi |
| 🇮🇩 Indonesia | id |
🇮🇹 Italia | it |
| 🇯🇵 Jepang | ja |
🇵🇱 Polandia | pl |
| 🇧🇷 Portugis | pt |
🇷🇺 Rusia | ru |
| 🇹🇷 Turki | tr |
🇨🇳 Mandarin | zh |
Terjemahan README
| Bahasa | File | Bahasa | File |
|---|---|---|---|
| 🇺🇸 Inggris | README.md | 🇪🇸 Spanyol | README.es.md |
| 🇸🇦 Arab | README.ar.md | 🇫🇷 Prancis | README.fr.md |
| 🇩🇪 Jerman | README.de.md | 🇮🇳 Hindi | README.hi.md |
| 🇮🇩 Indonesia | README.id.md | 🇮🇹 Italia | README.it.md |
| 🇯🇵 Jepang | README.ja.md | 🇵🇱 Polandia | README.pl.md |
| 🇧🇷 Portugis | README.pt.md | 🇷🇺 Rusia | README.ru.md |
| 🇹🇷 Turki | README.tr.md | 🇨🇳 Mandarin | README.zh.md |
💡 Ingin membantu menerjemahkan? Lihat bagian Kontribusi untuk membantu kami menambahkan lebih banyak bahasa!
🛠️ Troubleshooting
Klik untuk melihat masalah umum dan solusinya
- Tabel format tidak muncul: Perbarui yt-dlp ke versi terbaru dan coba beralih ke yt-dlp Nightly.
- Unduhan gagal: Periksa koneksi internet Anda dan pastikan video tersedia.
- Kesalahan Unduhan Spesifik:
- Video Pribadi: Gunakan autentikasi cookie untuk mengakses konten pribadi.
- Konten Dibatasi Usia: Masuk ke akun YouTube Anda untuk melihat video yang dibatasi usia.
- Video yang Diblokir Geo: Pertimbangkan menggunakan VPN untuk melewati batasan regional.
- Video Dihapus: Video tidak lagi tersedia di YouTube.
- Live Stream: Streaming langsung tidak dapat diunduh saat sedang disiarkan; tunggu hingga streaming selesai.
- Kesalahan Jaringan: Periksa koneksi internet Anda dan coba lagi.
- URL Tidak Valid: Pastikan URL benar dan berasal dari platform yang didukung.
- Konten Premium: Memerlukan langganan YouTube Premium.
- Blokir Hak Cipta: Konten diblokir karena pembatasan hak cipta.
- File video dan audio terpisah setelah diunduh: Ini terjadi ketika FFmpeg hilang atau tidak terdeteksi. YTSage memerlukan FFmpeg untuk menggabungkan aliran video dan audio berkualitas tinggi.
- Solusi: Pastikan FFmpeg terinstal dan dapat diakses di PATH sistem Anda. Untuk pengguna Windows, opsi termudah adalah mengunduh file
YTSage-v<version>-ffmpeg.exe, yang dilengkapi dengan FFmpeg.
- Solusi: Pastikan FFmpeg terinstal dan dapat diakses di PATH sistem Anda. Untuk pengguna Windows, opsi termudah adalah mengunduh file
🛡️ Peringatan Windows Defender / Antivirus
Beberapa perangkat lunak antivirus mungkin menandai file .exe sebagai positif palsu (false positive). Ini adalah batasan umum dari aplikasi yang dipaketkan.
Mengapa ini terjadi:
- Heuristik antivirus mungkin salah mengidentifikasi executable yang dipaketkan sebagai mencurigakan.
Opsi Aman:
- ✅ Gunakan instalasi pip:
pip install ytsage(direkomendasikan) - ✅ Build dari sumber: Mengikuti panduan ini
- ✅ Whitelist aplikasi di perangkat lunak antivirus Anda.
🍎 macOS: "App is damaged and can’t be opened"
Jika Anda melihat kesalahan ini di macOS Sonoma atau yang lebih baru, Anda perlu menghapus atribut karantina.
- Buka Terminal (Anda dapat menemukannya menggunakan Spotlight).
- Ketik perintah berikut tetapi JANGAN tekan Enter dulu. Pastikan untuk menyertakan spasi di akhir:
xattr -d com.apple.quarantine - Tarik file
YTSage.appdari jendela Finder Anda dan lepaskan langsung ke jendela Terminal. Ini akan secara otomatis menempelkan jalur file yang benar. - Tekan Enter untuk menjalankan perintah.
- Coba buka kembali YTSage.app. Sekarang seharusnya dapat diluncurkan dengan benar.
Lokasi Konfigurasi (Lanjutan)
- Windows:
%LOCALAPPDATA%\YTSage - macOS:
~/Library/Application Support/YTSage - Linux:
~/.local/share/YTSage
💖 Sponsor
Jika YTSage menghemat waktu Anda, pertimbangkan untuk mensponsori proyek ini. Sponsor membantu mencakup waktu pengembangan, pengujian di semua platform, dan peningkatan di masa mendatang.
- GitHub Sponsors: https://github.com/sponsors/oop7
- Tautan sponsor tersedia langsung melalui dialog About di dalam aplikasi.
👥 Kontribusi
Kami menerima kontribusi! Berikut cara Anda dapat membantu:
- 🍴 Fork repositori
- 🌿 Buat cabang fitur Anda:
git checkout -b feature/FiturLuarBiasa
- 💾 Komit perubahan Anda:
git commit -m 'Tambah FiturLuarBiasa'
- 📤 Push ke cabang:
git push origin feature/FiturLuarBiasa
- 🔄 Buka Pull Request
🌍 Berkontribusi pada Terjemahan
- Perbarui file README lokal yang relevan (misalnya
readme-translations/README.id.md) - Jaga agar string aplikasi tetap sinkron dengan mengedit
ytsage/languages/<code>.json - Jika bahasa Anda belum ada, mulailah dari
README.mddan buatREADME.<code>.md
📂 Struktur Proyek
YTSage - Struktur Proyek
Dokumen ini menjelaskan struktur folder yang terorganisir dari YTSage.
📁 Struktur Proyek
YTSage/
├── 📁 .github/ # Konfigurasi GitHub
│ ├── 📁 ISSUE_TEMPLATE/ # Templat Issue
│ │ └── 🐛-bug-report.md # Templat laporan bug
│ ├─── 📁 workflows/ # Alur kerja GitHub Actions
│ │ ├── build-linux.yml # Alur kerja build Linux
│ │ ├── build-macos.yml # Alur kerja build macOS
│ │ │── build-windows.yml # Alur kerja build Windows
| | └── release-all.yml # Alur kerja rilis master
│ └── 📄 CI_CD_README.md # Dokumentasi CI/CD
├── 📁 branding/ # Aset branding (screenshot, SVG)
│ ├── 📁 icons/ # Ikon aplikasi
│ ├── 📁 screenshots/ # Screenshot untuk dokumentasi
│ └── 📁 svg/ # Aset SVG
├── 📄 LICENSE # File lisensi
├── 📄 pyproject.toml # Metadata proyek dan dependensi
├── 📄 README.md # Dokumentasi proyek
├── 📄 requirements.txt # Dependensi Python (dev)
└── 📁 ytsage/ # Paket kode sumber
├── 📁 assets/ # Aset runtime
│ ├── 📁 Icon/ # Ikon aplikasi
│ └── 📁 sound/ # File audio
├── 📁 languages/ # File lokalisasi
│ ├── 📄 ar.json # Terjemahan Arab
│ ├── 📄 de.json # Terjemahan Jerman
│ ├── 📄 en.json # Terjemahan Inggris
│ └── ... # Bahasa lainnya
├── 📁 core/ # Logika bisnis inti
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_deno.py # Integrasi Deno
│ ├── 📄 ytsage_downloader.py # Fungsionalitas pengunduhan
│ ├── 📄 ytsage_ffmpeg.py # Integrasi FFmpeg
│ ├── 📄 ytsage_utils.py # Fungsi utilitas
│ └── 📄 ytsage_yt_dlp.py # Integrasi yt-dlp
├── 📁 gui/ # Komponen antarmuka pengguna
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_gui_main.py # Jendela utama aplikasi
│ └── 📁 ytsage_gui_dialogs/ # Kelas dialog
├── 📁 utils/ # Modul utilitas
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_config_manager.py # Manajemen konfigurasi
│ └── 📄 ytsage_logger.py # Alat logging
├── 📄 __init__.py # Titik masuk paket
└── 📄 main.py # Skrip eksekusi utama
⭐️ Riwayat Bintang
📜 Lisensi
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE untuk detailnya.
🙏 Terima Kasih
Tampilkan Terima Kasih
Terima kasih banyak kepada semua orang yang telah berkontribusi pada proyek ini dengan membuka masalah untuk menyarankan perbaikan atau melaporkan bug.
| Komponen Utama | |
|---|---|
| yt-dlp | Mesin Pengunduhan |
| FFmpeg | Pemrosesan Media |
| Deno | Runtime untuk integrasi yt-dlp |
| Pustaka & Framework | |
| PySide6 | Framework GUI |
| Pillow | Pemrosesan Gambar |
| requests | Permintaan HTTP |
| packaging | Manajemen Versi & Pemaketan |
| markdown | Rendering Markdown |
| loguru | Logging |
| Aset & Kontributor | |
| New Notification 09 oleh Universfield | Suara Notifikasi |
| viru185 | Kontributor Kode |
⚠️ Penafian
Alat ini hanya untuk penggunaan pribadi. Harap hormati Ketentuan Layanan YouTube dan hak-hak produser konten.
Dibuat dengan ❤️ oleh oop7



