---
## ❓ Neden YTSage?
YTSage, **basit ama güçlü bir YouTube indiricisi** isteyen kullanıcılar için tasarlanmıştır. Diğer araçların aksine şunları sunar:
- Temiz, modern bir PySide6 arayüzü
- Video, ses ve altyazılar için tek tıklamayla indirmeler
- SponsorBlock, altyazı birleştirme ve oynatma listesi seçimi gibi gelişmiş özellikler
- YouTube'un ötesinde yt-dlp destekli siteler için İsteğe Bağlı Genel Mod
- Platformlar arası destek ve kolay kurulum
## ✨ Özellikler
| Temel Özellikler | Gelişmiş Özellikler | Ekstra Özellikler |
|-------------------------------------|--------------------------------------------------|
| 🎥 Format Tablosu | 🚫 SponsorBlock Entegrasyonu | 🎞️ FPS/HDR Ekran |
| 🎵 Ses Çıkarma | 📝 Çoklu Altyazı Seç ve Birleştir | 🔄 yt-dlp'yi Otomatik Güncelle |
| ✨ Basit kullanıcı arayüzü | 💾 Açıklamayı ve Küçük Resmi Kaydet | 🛠️ FFmpeg/yt-dlp/Deno Algılama |
| 📋 Çalma Listesi Desteği ve Seçici | 🚀 Hız Sınırlayıcı | ⚙️ Özel Komutlar |
| 📑 Bölümleri Yerleştir | ✂️ Video Bölümlerini Kırp | 🍪 Çerezlerle Giriş Yapın |
| 📜 Geçmişi İndir | 🔄 Kanal Seçimini Serbest Bırak | 🌐 Proxy Desteği |
| 🎚️ Ses Formatı Dönüştürme | 🎬 Video Formatı Ayarları | 🆙 Yerleşik Güncelleyici Sekmesi |
| 🌍 Genel Mod | 🔊 Ses Normalizasyonu (EBU R128) | 🌍 14 Dilde Yerelleştirme |
## 🚀 Kurulum
### ⚡ Hızlı Kurulum (Önerilir)
YTSage'i PyPI'den yükleyin:
```bash
pip install ytsage
```
🔄 Mevcut bir kurulumu güncelleyin
```bash
pip install --upgrade ytsage
```
Ardından uygulamayı başlatın:
```bash
ytsage
```
### 📦 Önceden Oluşturulmuş Yürütülebilir Dosyalar
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 Windows
| Biçim | Açıklama |
|----------|----------------|
|  | Standart yükleyici |
|  | FFmpeg paketiyle birlikte |
|  | Taşınabilir versiyon, kurulum gerektirmez |
|  | FFmpeg ile taşınabilir, sıkıştırılmış |
🛠️ Kurulum Adımları
1. **EXE Yükleyici (`.exe`)**: Dosyaya çift tıklayın ve kurulum sihirbazını izleyin.
2. **Taşınabilir Sürüm (`.zip`)**: Arşivi istediğiniz konuma çıkarın ve `ytsage.exe`'i çalıştırın.
3. **FFmpeg Paketli**: Sisteminizde FFmpeg yüklü değilse FFmpeg paketli versiyonlarını seçin.
#### 🐧 Linux
| Biçim | Açıklama |
|----------|----------------|
|  | Debian paketi |
|  | AppImage, taşınabilir |
|  | RPM paketi |
|  | Düz Paket Paketi |
🛠️ Kurulum Adımları
- **DEB (`.deb`)**:
```bash
sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Fix missing dependencies if any
```
- **RPM (`.rpm`)**:
```bash
sudo rpm -i ytsage-*.rpm
```
- **AppImage (`.AppImage`)**:
```bash
chmod +x YTSage-*.AppImage
./YTSage-*.AppImage
```
- **Flatpak**: Flathub'daki talimatları izleyin veya şunu çalıştırın:
```bash
flatpak install flathub io.github.oop7.ytsage
```
#### 🍎macOS
| Biçim | Açıklama |
|----------|----------------|
|  | Apple Silicon için sıkıştırılmış uygulama |
|  | Apple Silicon için disk görüntüsü yükleyici |
🛠️ Kurulum Adımları
- **DMG Installer (`.dmg`)**: Bağlamak için çift tıklayın, ardından `YTSage.app`'i Uygulamalar klasörünüze sürükleyin.
- **Uygulama Arşivi (`.zip`)**: Zip dosyasını çıkartın ve `YTSage.app`'i Uygulamalar klasörünüze taşıyın.
*Not: "Uygulama hasar gördü" hatasıyla karşılaşırsanız aşağıdaki [macOS troubleshooting section](#troubleshooting)'e bakın.*
---
💻 Kaynaktan Manuel Kurulum
### 1. Depoyu Klonlayın
```bash
git clone https://github.com/oop7/YTSage.git
cd YTSage
```
### 2. Bağımlılıkları Kurun
#### ⚡UV ile
```bash
uv pip install .
```
#### 📦 Veya standart pip ile
```bash
pip install .
```
### 3. Uygulamayı çalıştırın
```bash
python -m ytsage.main
```
## 📸 Ekran görüntüleri
İndirme Ayarları
Çalma Listesi İndir
Ses Formatı
Özel Seçenekler
## 📖 Kullanım
🎯 Temel Kullanım
1. **YTSage'i başlatın**
2. **YouTube URL'sini yapıştırın** (veya "URL'yi yapıştır" düğmesini kullanın)
3. **"Analiz Et"i tıklayın**
4. **Biçim Seçin:**
- `Video` video indirmeleri için
- `Audio Only` ses çıkarma için
5. **Seçenekleri seçin:**
- Altyazıları etkinleştirin ve dili seçin
- Altyazı birleştirmeyi etkinleştir
- Küçük resmi kaydet
- Sponsor segmentlerini kaldırın
- Açıklamayı kaydet
- Bölümleri yerleştir
6. **Çıktı Dizinini Seçin**
7. **"İndir"e tıklayın**
> 💡 Varsayılan indirme dizini kullanıcının "İndirilenler" klasörüdür.
📋 Çalma Listesi İndir
1. **Oynatma Listesi URL'sini yapıştırın**
2. **"Analiz Et"i tıklayın**
3. **Oynatma seçiciden videoları seçin (isteğe bağlı, varsayılan olarak tümü)**
4. **İstediğiniz formatı/kaliteyi seçin**
5. **"İndir"e tıklayın**
> 💡 Uygulama indirme sırasını otomatik olarak yönetir
🌍 YouTube dışı siteler için Genel Mod
YTSage'in Dailymotion, CBC Gem, TikTok ve diğerleri gibi yt-dlp tarafından desteklenen sitelerdeki URL'leri kabul etmesini istiyorsanız Genel Modu kullanın.
Nasıl kullanılır:
1. `Download Settings`'i açın.
2. `Generic Mode`'ı etkinleştirin.
3. Desteklenen YouTube dışı bir video veya oynatma listesi URL'sini yapıştırın.
4. `Analyze`'a tıklayın.
5. Bir format seçin ve her zamanki gibi indirin.
Notlar:
- Genel Mod yalnızca YTSage içindeki URL doğrulamasını değiştirir. Hedef sitenin yüklü yt-dlp sürümünüz tarafından hala desteklenmesi gerekiyor.
- Bazı siteler, çıkarıcıya bağlı olarak çerezlere, oturum açma oturumuna, proxy'ye veya ekstra yt-dlp argümanlarına ihtiyaç duyar.
- Bir site başarısız olursa, sorunu bildirmeden önce yerleşik güncelleyici sekmesinden yt-dlp'yi güncelleyin.
🧰 Medya ve İndirme Seçenekleri
- **Altyazı Seçenekleri:** Dilleri filtreleyin ve altyazıları video dosyasına ekleyin
- **Altyazı Birleştirme:** Sabit kodlanmış altyazılar için altyazıları video dosyasıyla birleştirin
- **Açıklamayı Kaydet:** Video açıklamasını bir metin dosyası olarak kaydedin
- **Küçük Resmi Kaydet:** Video küçük resmini bir resim dosyası olarak kaydedin
- **Bölümleri Göm:** Uyumlu video oynatıcılar için bölüm işaretlerini meta veri olarak gömün
- **Sponsor Segmentlerini Kaldır:** SponsorBlock'u kullanarak sponsor segmentlerini videodan kaldırın
- **Videoyu Kırp:** `HH:MM:SS` biçiminde zaman aralıklarını belirterek videonun yalnızca belirli bölümlerini indirin
⚙️ Çıktı ve Dosya Ayarları
- **Hız Sınırlayıcı:** İndirme hızını sınırlayın, örneğin 500 KB/s için `500K`
- **İndirme Yolunu Kaydet:** Gelecekteki indirmeler için varsayılan indirme yolunu kaydedin. **İndirme Ayarları → İndirme Yolu**'nda mevcuttur.
- **Çıktı Dosya Adı Formatı:** `%(title)s`, `%(uploader)s` ve `%(resolution)s` gibi değişkenleri kullanarak çıktı dosya adı formatını özelleştirin. **İndirme Ayarları → Dosya Adı Formatı**'nda mevcuttur.- **Çıktı Formatını Zorla:** Video indirme işlemlerini `mp4`, `webm` veya `mkv` gibi belirli bir kapsayıcı formatına zorlayın. **İndirme Ayarları → Çıktı Formatı Ayarları** bölümünde mevcuttur.
- **Ses Formatı Dönüştürme:** Yalnızca ses indirmelerini `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A` gibi tercih edilen formatlara dönüştürün `Vorbis` veya `Best`. **İndirme Ayarları → Ses Formatı Ayarları**'nda mevcuttur.
- **Ses Normalizasyonu:** EBU R128 kullanarak yalnızca ses indirmeleri için ses düzeyini standartlaştırın.
🌐 Erişim ve Ağ
- **Çerezler ile Giriş Yapın:** Özel içeriğe erişmek için çerezleri kullanarak YouTube'a giriş yapın.
Nasıl kullanılır:
1. **Önerilen:** Uygulamadaki yerleşik `Extract cookies from browser` seçeneğini kullanın, ardından tarayıcınızı ve isteğe bağlı olarak bir profili seçin.
2. Alternatif olarak çerezleri manuel olarak çıkarın:
a. [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file) gibi bir uzantı kullanarak çerezleri tarayıcınızdan dışa aktarın
b. Çerezleri Netscape formatında kopyalayın
c. `cookies.txt` adında bir dosya oluşturun ve çerezleri bu dosyaya yapıştırın
D. Uygulamada `cookies.txt` dosyasını seçin
- **Proxy Desteği:** İndirmeler için bir proxy sunucusu kullanın, örneğin `http://:`
- **Genel Mod:** YTSage'in, yt-dlp tarafından desteklenen YouTube dışı sitelerden analiz yapmasına ve indirme yapmasına izin verin. **İndirme Ayarları → Genel Mod**'dan etkinleştirin.
🛠️ Araçlar ve Bakım
- **Özel Komutlar:** Komut satırı bağımsız değişkenleri aracılığıyla gelişmiş yt-dlp özelliklerine erişin
- **Güncelleyici Sekmesi:** Özel Seçenekler'de yerleşik güncelleme araçlarını tek yerden yönetin:
- **yt-dlp Güncellemeleri:** Güncellemeleri kontrol edin ve Mevcut ve Gecelik sürüm kanalları arasında geçiş yapın
- **FFmpeg Sürüm Denetleyicisi:** FFmpeg sürümünüzü kontrol edin ve kurulum kılavuzlarını açın
- **Deno Güncellemeleri:** Deno çalışma zamanını kontrol edin ve güncelleyin
- **FFmpeg/yt-dlp/Deno Algılama:** Hakkında iletişim kutusundan FFmpeg, yt-dlp ve Deno yollarını ve sürümlerini otomatik olarak algılar.
- **İndirme Geçmişi:** **Geçmiş** düğmesinden geçmiş indirmeleri küçük resimler ve durumlarla birlikte görüntüleyin.
🌍 Yerelleştirme
YTSage, dünya çapında erişilebilirlik için **14 dili** destekler. **Özel Seçenekler → Dil**'den tercih ettiğiniz dili seçin.
### Desteklenen Diller
| Dil | Kod | Dil | Kod |
|----------|------|----------|------|
| 🇺🇸 İngilizce | `en` | 🇪🇸 İspanyolca | `es` |
| 🇸🇦 Arapça | `ar` | 🇫🇷 Fransızca | `fr` |
| 🇩🇪 Almanca | `de` | 🇮🇳 Hintçe | `hi` |
| 🇮🇩 Endonezce | `id` | 🇮🇹 İtalyanca | `it` |
| 🇯🇵 Japonca | `ja` | 🇵🇱 Lehçe | `pl` |
| 🇧🇷 Portekizce | `pt` | 🇷🇺 Rusça | `ru` |
| 🇹🇷 Türkçe | `tr` | 🇨🇳 Çince | `zh` |
### README Çevirileri
| Dil | Dosya | Dil | Dosya |
|----------|------|----------|------|
| 🇺🇸 İngilizce | [README.md](../README.md) | 🇪🇸 İspanyolca | [README.es.md](README.es.md)
| 🇸🇦 Arapça | [README.ar.md](README.ar.md) | 🇫🇷 Fransızca | [README.fr.md](README.fr.md) |
| 🇩🇪 Almanca | [README.de.md](README.de.md) | 🇮🇳 Hintçe | [README.hi.md](README.hi.md) |
| 🇮🇩 Endonezce | [README.id.md](README.id.md) | 🇮🇹 İtalyanca | [README.it.md](README.it.md) |
| 🇯🇵 Japonca | [README.ja.md](README.ja.md) | 🇵🇱 Lehçe | [README.pl.md](README.pl.md) |
| 🇧🇷 Portekizce | [README.pt.md](README.pt.md) | 🇷🇺 Rusça | [README.ru.md](README.ru.md) |
| 🇹🇷 Türkçe | [README.tr.md](README.tr.md) | 🇨🇳 Çince | [README.zh.md](README.zh.md) |
> 💡 **Çeviriye katkıda bulunmak mı istiyorsunuz?** Daha fazla dil eklememize yardımcı olmak için [Contributing](#contributing) bölümüne göz atın!
## 🛠️ Sorun giderme
Genel sorunları ve çözümleri görüntülemek için tıklayın
- **Biçim tablosu görüntülenmiyor:** yt-dlp'yi en son sürüme güncelleyin ve her gece yt-dlp'ye geçin.
- **İndirme başarısız oluyor:** İnternet bağlantınızı kontrol edin ve videonun mevcut olduğundan emin olun.
- **Belirli indirme hataları:**
- **Özel videolar:** Özel içeriğe erişmek için çerez kimlik doğrulamasını kullanın.
- **Yaş kısıtlamalı içerik:** Yaş kısıtlamalı videoları görüntülemek için YouTube hesabına giriş yapın.
- **Coğrafi olarak engellenen videolar:** Bölgesel kısıtlamaları aşmak için bir VPN kullanmayı düşünün.
- **Kaldırılan/silinen videolar:** Video artık YouTube'da mevcut değil.
- **Canlı yayınlar:** Canlı yayınlar indirilemez; akışın bitmesini bekleyin.
- **Ağ hataları:** İnternet bağlantınızı kontrol edip tekrar deneyin.
- **Geçersiz URL'ler:** URL'nin doğru olduğundan ve desteklenen bir platforma ait olduğundan emin olun.
- **Premium içerik:** YouTube Premium üyeliği gerektirir.
- **Telif hakkı engellemeleri:** İçerik, telif hakkı kısıtlamaları nedeniyle engellenmiştir.
- **İndirmeden sonra video ve ses dosyalarını ayırın:** Bu, FFmpeg eksik olduğunda veya algılanmadığında meydana gelir. YTSage, yüksek kaliteli video ve ses akışlarını birleştirmek için FFmpeg'e ihtiyaç duyar.
- **Çözüm:** FFmpeg'in sisteminizin PATH'inde kurulu ve erişilebilir olduğundan emin olun. Windows kullanıcıları için en kolay seçenek, FFmpeg ile birlikte gelen `YTSage-v-ffmpeg.exe` dosyasını indirmektir.
---
#### 🛡️ Windows Defender / Antivirüs Uyarısı
Bazı antivirüs yazılımları `.exe` dosyalarını yanlış pozitif olarak işaretleyebilir. Bu, paket uygulamaların **bilinen bir sınırlamasıdır**.
**Bu neden oluyor:**
- Antivirüs buluşsal yöntemleri, paketlenmiş yürütülebilir dosyaları şüpheli olarak yanlış tanımlayabilir
**Güvenli alternatifler:**
- ✅ **Pip kurulumunu kullanın:** `pip install ytsage` (önerilir)
- ✅ **Kaynaktan oluşturun**: bunu takip ederek [guide](../.github/CI_CD_README.md)
- ✅ **Uygulamayı antivirüs yazılımınızda beyaz listeye alın**
#### 🍎 macOS: "Uygulama hasarlı ve açılamıyor"
Bu hatayı macOS Sonoma veya daha yeni bir sürümde görüyorsanız karantina özelliğini kaldırmanız gerekir.
1. **Terminal'i açın** (Spotlight'ı kullanarak bulabilirsiniz).
2. **Aşağıdaki komutu yazın** ancak **henüz Enter'a basmayın**. Sondaki boşluğu eklediğinizden emin olun:
```bash
xattr -d com.apple.quarantine
```
3. **`YTSage.app` dosyasını Finder pencerenizden sürükleyip doğrudan Terminal penceresine bırakın. Bu, doğru dosya yolunu otomatik olarak yapıştıracaktır.
4. **Komutu çalıştırmak için **Enter** tuşuna basın.
5. **YTSage.app'i tekrar açmayı deneyin.** Artık doğru şekilde başlatılması gerekir.
---
#### **Yapılandırma Konumları (Gelişmiş)**
- **Windows:** `%LOCALAPPDATA%\YTSage`
- **macOS:** `~/Library/Application Support/YTSage`
- **Linux:** `~/.local/share/YTSage`
## 💖 Sponsor
YTSage size zaman kazandırıyorsa projeye sponsor olmayı düşünün. Sponsorluk, geliştirme süresinin, platformlar arası testlerin ve gelecekteki iyileştirmelerin karşılanmasına yardımcı olur.
- GitHub Sponsorları: https://github.com/sponsors/oop7
- Sponsor bağlantısına doğrudan uygulamanın içindeki Hakkında iletişim kutusundan da ulaşılabilir.
[](https://github.com/sponsors/oop7)
## 👥 Katkıda Bulunmak
Katkılarınızı bekliyoruz! İşte nasıl yardımcı olabileceğiniz:
1. 🍴 Depoyu çatallayın
2. 🌿 Özellik dalınızı oluşturun:
```bash
git checkout -b feature/AmazingFeature
```
3. 💾 Değişikliklerinizi gerçekleştirin:
```bash
git commit -m 'Add some AmazingFeature'
```
4. 📤 Şubeye itin:
```bash
git push origin feature/AmazingFeature
```
5. 🔄 Bir Çekme İsteği Açın
### 🌍 Çevirilere Katkıda Bulunmak
- Eşleşen yerelleştirilmiş README dosyasını güncelleyin (örneğin `README.es.md`)
- `ytsage/languages/.json` düzenleyerek uygulama dizelerini senkronize tutun
- Diliniz eksikse `README.md`'den başlayın ve `README..md`'i oluşturun
📂 Proje Yapısı
## YTSage - Proje Yapısı
Bu belge YTSage'in organize klasör yapısını açıklamaktadır.
### 📁 Proje Yapısı
```
YTSage/
├── 📁 .github/ # GitHub configuration
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
│ │ └── 🐛-bug-report.md # Bug report template
│ ├─── 📁 workflows/ # GitHub Actions workflows
│ │ ├── build-linux.yml # Linux build workflow
│ │ ├── build-macos.yml # macOS build workflow
│ │ │── build-windows.yml # Windows build workflow
| | └── release-all.yml # Master release workflow
│ └── 📄 CI_CD_README.md # CI/CD documentation
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
│ ├── 📁 icons/ # Application icons
│ ├── 📁 screenshots/ # Screenshots for documentation
│ └── 📁 svg/ # SVG assets
├── 📄 LICENSE # License file
├── 📄 pyproject.toml # Project metadata and dependencies
├── 📄 README.md # Project documentation
├── 📄 requirements.txt # Python dependencies (dev)
└── 📁 ytsage/ # Source package
├── 📁 assets/ # Runtime assets
│ ├── 📁 Icon/ # Application icons
│ └── 📁 sound/ # Audio files
├── 📁 languages/ # Localization files
│ ├── 📄 ar.json # Arabic translation
│ ├── 📄 de.json # German translation
│ ├── 📄 en.json # English translation
│ └── ... # Other languages
├── 📁 core/ # Core business logic
│ ├── 📄 __init__.py # Core package init
│ ├── 📄 ytsage_deno.py # Deno integration
│ ├── 📄 ytsage_downloader.py # Download functionality
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
│ ├── 📄 ytsage_utils.py # Utility functions
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
├── 📁 gui/ # User interface components
│ ├── 📄 __init__.py # GUI package init
│ ├── 📄 ytsage_gui_main.py # Main application window
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
├── 📁 utils/ # Utility modules
│ ├── 📄 __init__.py # Utils package init
│ ├── 📄 ytsage_config_manager.py # Configuration management
│ └── 📄 ytsage_logger.py # Logging utilities
├── 📄 __init__.py # Package entry point
└── 📄 main.py # Main execution script
```
## ⭐️ Yıldız Tarihi
## Yıldız Geçmişi
## 📜 Lisans
Bu proje MIT Lisansı kapsamında lisanslıdır; ayrıntılar için [LICENSE](../LICENSE) dosyasına bakın.
## 🙏 Teşekkürler
Teşekkürleri Göster
Bir iyileştirme önermek veya hata bildirmek için konu açarak bu projeye katkıda bulunan herkese yürekten teşekkür ederiz.
## ⚠️ Yasal Uyarı
Bu araç yalnızca kişisel kullanım içindir. Lütfen YouTube'un hizmet şartlarına ve içerik oluşturucuların haklarına saygı gösterin.
---
[oop7](https://github.com/oop7) tarafından ❤️ ile yapılmıştır