---
## ❓ 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:
- Modern ve temiz bir PySide6 arayüzü
- Tek tıkla video, ses ve altyazı indirme
- SponsorBlock, altyazı birleştirme ve oynatma listesi seçimi gibi gelişmiş özellikler
- yt-dlp tarafından desteklenen YouTube dışındaki siteler için isteğe bağlı "Genel Mod"
- Çoklu platform desteği ve kolay kurulum
## ✨ Özellikler
| Temel Özellikler | Gelişmiş Özellikler | Ekstra Özellikler |
|-----------------------------------|-----------------------------------------|------------------------------------|
| 🎥 Format Tablosu | 🚫 SponsorBlock Entegrasyonu | 🎞️ FPS/HDR Gösterimi |
| 🎵 Ses Çıkarma | 📝 Altyazı Seçimi ve Birleştirme | 🔄 Otomatik yt-dlp Güncellemesi |
| ✨ Basit Kullanıcı Arayüzü | 💾 Açıklama ve Küçük Resim Kaydetme | 🛠️ FFmpeg/yt-dlp/Deno Algılama |
| 📋 Oynatma Listesi Desteği | 🚀 Hız Sınırlayıcı | ⚙️ Özel Komutlar |
| 📑 Bölüm Entegrasyonu | ✂️ Video Kırpma | 🍪 Çerez ile Giriş |
| 📜 İndirme Geçmişi | 🔄 Yayın Kanalı Seçimi | 🌐 Proxy Desteği |
| 🎚️ Ses Formatı Dönüştürme | 🎬 Video Format Ayarları | 🆙 Entegre Güncelleme Sekmesi |
| 🌍 Genel Mod | 🔊 Ses Normalizasyonu (EBU R128) | 🌍 14 Dilde Yerelleştirme |
| 💾 Oynatma Listesi Dışa Aktarma | ⚙️ Varsayılan Kalite ve Altyazı | |
## 🚀 Kurulum
### ⚡ Hızlı Kurulum (Önerilen)
YTSage'i PyPI üzerinden yükleyin:
```bash
pip install ytsage
```
🔄 Mevcut Kurulumu Güncelle
```bash
pip install --upgrade ytsage
```
Ardından uygulamayı çalıştırın:
```bash
ytsage
```
### 📦 Hazır Çalıştırılabilir Dosyalar (Executable)
> [👉 En Son Sürümü İndir](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 Windows
| Format | Açıklama |
|--------|-------------|
|  | Standart Kurulum Dosyası |
|  | FFmpeg Dahil |
|  | Taşınabilir Sürüm, kuruluma gerek yok |
|  | FFmpeg Dahil Taşınabilir, sıkıştırılmış (ZIP) |
🛠️ Kurulum Adımları
1. **EXE Yükleyici (`.exe`)**: Dosyaya çift tıklayın ve kurulum sihirbazını takip edin.
2. **Taşınabilir Sürüm (`.zip`)**: Dosyayı istediğiniz yere çıkarın ve `ytsage.exe` dosyasını çalıştırın.
3. **Dahili FFmpeg**: Sisteminizde FFmpeg kurulu değilse, FFmpeg dahil olan sürümleri seçin.
#### 🐧 Linux
| Format | Açıklama |
|--------|-------------|
|  | Debian Paketi |
|  | AppImage, Taşınabilir |
|  | RPM Paketi |
|  | Flatpak Paketi |
🛠️ Kurulum Adımları
- **DEB (`.deb`)**:
```bash
sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Gerekirse eksik bağımlılıkları gidermek için
```
- **RPM (`.rpm`)**:
```bash
sudo rpm -i ytsage-*.rpm
```
- **AppImage (`.AppImage`)**:
```bash
chmod +x YTSage-*.AppImage
./YTSage-*.AppImage
```
- **Flatpak**: Flathub üzerindeki talimatları izleyin veya şunu çalıştırın:
```bash
flatpak install flathub io.github.oop7.ytsage
```
#### 🍎 macOS
| Format | Açıklama |
|--------|-------------|
|  | Apple Silicon için ZIP Uygulaması |
|  | Apple Silicon için Disk Image Kurulum Dosyası |
🛠️ Kurulum Adımları
- **DMG Yükleyici (`.dmg`)**: Bağlamak için çift tıklayın ve `YTSage.app` dosyasını Uygulamalar klasörünüze sürükleyin.
- **Uygulama Arşivi (`.zip`)**: ZIP dosyasını çıkarın ve `YTSage.app` dosyasını Uygulamalar klasörünüze taşıyın.
*Not: "Uygulama hasarlı" hatası alırsanız, aşağıdaki macOS Sorun Giderme bölümüne bakın.*
---
💻 Kaynak Kodundan Manuel Kurulum
### 1. Depoyu Klonlayın
```bash
git clone https://github.com/oop7/YTSage.git
cd YTSage
```
### 2. Bağımlılıkları Yükleyin
#### ⚡ 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ı
Oynatma Listesi İndirme
Ses Formatı
Özel Seçenekler
## 📖 Kullanım
🎯 Temel Kullanım
1. **YTSage'i başlatın**
2. **Bir YouTube URL'si yapıştırın** (veya "Paste URL" düğmesini kullanın)
3. **"Analyze" düğmesine tıklayın**
4. **Formatı Seçin:**
- Video indirmek için `Video`
- Sadece ses çıkarmak için `Audio Only`
5. **Seçenekleri Belirleyin:**
- Altyazıları etkinleştirin ve dili seçin
- Altyazı birleştirmeyi (Merge subs) etkinleştirin
- Küçük resmi kaydet (Save thumbnail)
- Sponsor bölümlerini kaldır (SponsorBlock)
- Açıklamayı kaydet (Save description)
- Bölümleri göm (Embed chapters)
6. **Çıkış Dizinini Seçin**
7. **"Download" düğmesine tıklayın**
> 💡 Varsayılan indirme dizini kullanıcının "İndirmeler" klasörüdür.
📋 Oynatma Listesi İndirme
1. **Oynatma Listesi URL'sini yapıştırın**
2. **"Analyze" düğmesine tıklayın**
3. **Seçiciden videoları seçin (varsayılan olarak tümü seçilidir)**
4. **İstediğiniz formatı/kaliteyi seçin**
5. **"Download" düğmesine tıklayın**
> 💡 Uygulama indirme kuyruğunu otomatik olarak yönetir ve oynatma listesi girişlerini `.txt`, `.csv`, `.m3u` veya `.json` dosyaları olarak dışa aktarabilirsiniz.
🌍 YouTube Dışındaki Siteler İçin Genel Mod
YTSage'in Dailymotion, TikTok ve diğerleri gibi yt-dlp tarafından desteklenen sitelerden gelen URL'leri kabul etmesini istediğinizde Genel Modu kullanın.
Nasıl kullanılır:
1. `Download Settings` bölümünü açın.
2. `Generic Mode` seçeneğini etkinleştirin.
3. YouTube dışındaki desteklenen bir video veya oynatma listesi URL'sini yapıştırın.
4. `Analyze` düğmesine tıklayın.
5. Bir format seçin ve normal şekilde indirin.
Notlar:
- Genel Mod sadece YTSage içindeki URL doğrulamasını değiştirir. Hedef site hala yüklü yt-dlp sürümünüz tarafından desteklenmelidir.
- Bazı siteler, çıkarıcıya bağlı olarak çerezler, giriş, proxy veya ek yt-dlp argümanları gerektirebilir.
- Bir site hata verirse, sorun bildirmeden önce entegre güncelleme sekmesinden yt-dlp'yi güncelleyin.
🧰 Medya ve İndirme Seçenekleri
- **Altyazı Seçenekleri:** Dilleri filtreleyin ve altyazıları video dosyasına gömün.
- **Altyazı Birleştirme:** Altyazıları video dosyasına kalıcı olarak (hardcode) birleştirir.
- **Açıklamayı Kaydet:** Video açıklamasını bir metin dosyası olarak kaydeder.
- **Küçük Resmi Kaydet:** Video küçük resmini bir resim dosyası olarak kaydeder.
- **Bölümleri Göm:** Uyumlu video oynatıcılar için meta veri olarak bölüm işaretlerini ekler.
- **Sponsor Bölümlerini Kaldır:** Videodaki sponsorlu bölümleri kaldırmak için SponsorBlock kullanır.
- **Videoyu Kırp:** Zaman aralığını `SA:DA:SA` formatında belirterek videonun sadece belirli bölümlerini indirin.
⚙️ Çıkış ve Dosya Ayarları
- **Hız Sınırlayıcı:** İndirme hızını sınırlandırın, örneğin 500 KB/s için `500K`.
- **İndirme Yolunu Kaydet:** Gelecekteki indirmeler için varsayılan indirme yolunu kaydeder. **Download Settings → Download Path** bölümünde mevcuttur.
- **Varsayılan Video Çözünürlüğü:** Otomatik seçim için tercih ettiğiniz video çözünürlüğünü ayarlayın (örn: 1080p, 720p). **Download Settings → Default Video Resolution** bölümünde mevcuttur.
- **Varsayılan Altyazı Dilleri:** Otomatik seçim için varsayılan altyazı dillerini ayarlayın (virgülle ayrılmış, örn: `tr,en`). **Download Settings → Default Subtitle Languages** bölümünde mevcuttur.
- **Dosya Adı Formatı:** Çıkış dosyası adı formatını `%(title)s`, `%(uploader)s` gibi değişkenler kullanarak özelleştirin. **Download Settings → Filename Format** bölümünde mevcuttur.
- **Çıkış Formatını Zorla:** Videoyu `mp4`, `webm` veya `mkv` gibi belirli bir konteyner formatında indirmeye zorlar. **Download Settings → Output Format Settings** bölümünde mevcuttur.
- **Ses Formatı Dönüştürme:** Sadece ses indirmelerini `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` veya `Best` gibi tercih edilen formatlara dönüştürün. **Download Settings → Audio Format Settings** bölümünde mevcuttur.
- **Ses Normalizasyonu:** EBU R128 kullanarak sadece ses indirmeleri için ses seviyesini standartlaştırır.
- **Eşzamanlı Bağlantılar:** Dosyaları aynı anda birden fazla parça halinde indirerek indirme hızını önemli ölçüde artırın. **Download Settings → General → Concurrent Connections** bölümünde mevcuttur (Varsayılan 1, IP engellemelerini önlemek için maksimum 8-10 önerilir).
🌐 Erişim ve Ağ
- **Çerez ile Giriş:** Özel içeriğe erişmek için çerezleri kullanarak YouTube'da oturum açın.
Kullanım:
1. **Önerilen:** Uygulamadaki entegre `Extract cookies from browser` seçeneğini kullanın, tarayıcıyı ve isteğe bağlı olarak profili seçin.
2. İsteğe bağlı olarak çerezleri manuel olarak çıkarın:
a. [cookie-editor](https://github.com/moustachauve/cookie-editor) gibi bir uzantı kullanarak tarayıcınızdan çerezleri dışa aktarın.
b. Çerezleri Netscape formatında kopyalayın.
c. `cookies.txt` adlı bir dosya oluşturun ve çerezleri yapıştırın.
d. Uygulamada `cookies.txt` dosyasını seçin.
- **Proxy Desteği:** İndirmeler için bir proxy sunucusu kullanın, örn: `http://:`
- **Genel Mod:** YTSage'in yt-dlp tarafından desteklenen YouTube dışındaki siteleri analiz etmesine ve indirmesine olanak tanır. **Download Settings → Generic Mode** bölümünden etkinleştirin.
🛠️ Araçlar ve Bakım
- **Özel Komutlar:** Komut satırı argümanları aracılığıyla gelişmiş yt-dlp özelliklerine erişin.
- **Güncelleme Sekmesi:** Entegre güncelleme araçlarını Özel Seçenekler altındaki tek bir yerden yönetin:
- **yt-dlp Güncelleme:** Güncellemeleri kontrol edin ve Stable ile Nightly yayın kanalları arasında geçiş yapın.
- **FFmpeg Sürüm Kontrolü:** FFmpeg sürümünüzü kontrol edin ve kurulum kılavuzlarını açın.
- **Deno Güncelleme:** Deno çalışma zamanını kontrol edin ve güncelleyin.
- **FFmpeg/yt-dlp/Deno Algılama:** Hakkında diyaloğunda FFmpeg, yt-dlp ve Deno yollarını ve sürümlerini otomatik olarak algılar.
- **İndirme Geçmişi:** **History** düğmesi aracılığıyla küçük resimler ve durumlarla birlikte geçmiş indirmeleri görün.
🌍 Yerelleştirme
YTSage, küresel erişim için **14 dili** destekler. Tercih ettiğiniz dili **Custom Options → Language** bölümünden 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 yardımcı olmak ister misiniz?** Daha fazla dil eklememize yardımcı olmak için [Katkıda Bulunma](#katkıda-bulunma) bölümüne bakın!
## 🛠️ Sorun Giderme
Yaygın sorunlar ve çözümler için tıklayın
- **Format tablosu görünmüyor:** yt-dlp'yi en son sürüme güncelleyin ve yt-dlp Nightly kanalına geçmeyi deneyin.
- **İndirme başarısız oldu:** İnternet bağlantınızı kontrol edin ve videonun erişilebilir olduğundan emin olun.
- **Belirli İndirme Hataları:**
- **Özel Videolar:** Özel içeriğe erişmek için çerez kimlik doğrulamasını kullanın.
- **Yaş Sınırlı İçerik:** Yaş sınırlı videoları görüntülemek için YouTube hesabınızda oturum açın.
- **Coğrafi Engelli Videolar:** Bölgesel kısıtlamaları aşmak için bir VPN kullanmayı düşünün.
- **Video Kaldırıldı:** Video artık YouTube'da mevcut değildir.
- **Canlı Yayınlar:** Canlı yayınlar yayınlanırken indirilemez; yayın bitene kadar bekleyin.
- **Ağ Hataları:** İnternet bağlantınızı kontrol edin ve tekrar deneyin.
- **Geçersiz URL:** URL'nin doğru olduğundan ve desteklenen bir platforma ait olduğundan emin olun.
- **Premium İçerik:** YouTube Premium aboneliği gerektirir.
- **Telif Hakkı Engeli:** İçerik telif hakkı kısıtlamaları nedeniyle engellenmiştir.
- **İndirme sonrası video ve ses dosyaları ayrı:** Bu durum FFmpeg eksik olduğunda veya algılanmadığında olur. YTSage, yüksek kaliteli video ve ses akışlarını birleştirmek için FFmpeg gerektirir.
- **Çözüm:** FFmpeg'in kurulu olduğundan ve sistem PATH'inizde 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, paketlenmiş uygulamaların **bilinen bir sınırlamasıdır**.
**Neden olur:**
- Antivirüs sezgiselleri paketlenmiş yürütülebilir dosyaları hatalı bir şekilde şüpheli olarak tanımlayabilir.
**Güvenli Seçenekler:**
- ✅ **pip kurulumunu kullanın:** `pip install ytsage` (önerilir)
- ✅ **Kaynaktan derleyin**: Bu [kılavuzu](.github/CI_CD_README.md) takip ederek
- ✅ **Uygulamayı antivirüs yazılımınızın beyaz listesine ekleyin**.
#### 🍎 macOS: "Uygulama hasarlı ve açılamıyor"
macOS Sonoma veya daha yeni sürümlerde bu hatayı görüyorsanız, karantina özniteliğini kaldırmanız gerekir.
1. **Terminal'i açın** (Spotlight kullanarak bulabilirsiniz).
2. **Aşağıdaki komutu yazın**, ancak henüz Enter tuşuna **BASMAYIN**. Sonundaki boşluğu eklediğinizden emin olun:
```bash
xattr -d com.apple.quarantine
```
3. **`YTSage.app` dosyasını Finder penceresinden sürükleyin** ve 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 düzgün bir şekilde çalışmalıdır.
---
#### **Yapılandırma Konumu (Gelişmiş)**
- **Windows:** `%LOCALAPPDATA%\YTSage`
- **macOS:** `~/Library/Application Support/YTSage`
- **Linux:** `~/.local/share/YTSage`
## 💖 Sponsor Olun
YTSage size zaman kazandırıyorsa, projeye sponsor olmayı düşünün. Sponsorluklar geliştirme süresini, tüm platformlarda test yapmayı ve gelecekteki iyileştirmeleri karşılamaya yardımcı olur.
- GitHub Sponsors: https://github.com/sponsors/oop7
- Sponsorluk bağlantısı uygulamadaki Hakkında diyaloğu üzerinden doğrudan mevcuttur.
[](https://github.com/sponsors/oop7)
## 👥 Katkıda Bulunma
Katkılarınız bekliyoruz! İşte nasıl yardımcı olabileceğiniz:
1. 🍴 Depoyu Fork'layın
2. 🌿 Özellik dalınızı oluşturun:
```bash
git checkout -b feature/AmazingFeature
```
3. 💾 Değişikliklerinizi commit'leyin:
```bash
git commit -m ' AmazingFeature Ekle'
```
4. 📤 Dalı push'layın:
```bash
git push origin feature/AmazingFeature
```
5. 🔄 Bir Pull Request açın
### 🌍 Çevirilerle Katkıda Bulunun
- İlgili yerelleştirilmiş README dosyasını güncelleyin (örn: `readme-translations/README.tr.md`)
- Uygulama dizelerini `ytsage/languages/.json` dosyasını düzenleyerek senkronize tutun
- Diliniz eksikse, `README.md` dosyasından başlayın ve `README..md` dosyasını oluşturun
📂 Proje Yapısı
## YTSage - Proje Yapısı
Bu belge YTSage'in düzenli klasör yapısını detaylandırır.
### 📁 Proje Düzeni
```
YTSage/
├── 📁 .github/ # GitHub konfigürasyonları
│ ├── 📁 ISSUE_TEMPLATE/ # Sorun şablonları
│ │ └── 🐛-bug-report.md # Hata raporu şablonu
│ ├─── 📁 workflows/ # GitHub Actions iş akışları
│ │ ├── build-linux.yml # Linux derleme akışı
│ │ ├── build-macos.yml # macOS derleme akışı
│ │ │── build-windows.yml # Windows derleme akışı
| | └── release-all.yml # Ana yayın akışı
│ └── 📄 CI_CD_README.md # CI/CD dökümantasyonu
├── 📁 branding/ # Marka varlıkları (ekran görüntüleri, SVG'ler)
│ ├── 📁 icons/ # Uygulama ikonları
│ ├── 📁 screenshots/ # Dökümantasyon için ekran görüntüleri
│ └── 📁 svg/ # SVG varlıkları
├── 📄 LICENSE # Lisans dosyası
├── 📄 pyproject.toml # Proje metadatası ve bağımlılıklar
├── 📄 README.md # Proje dökümantasyonu
├── 📄 requirements.txt # Python bağımlılıkları (dev)
└── 📁 ytsage/ # Kaynak kod paketi
├── 📁 assets/ # Çalışma zamanı varlıkları
│ ├── 📁 Icon/ # Uygulama ikonları
│ └── 📁 sound/ # Ses dosyaları
├── 📁 languages/ # Yerelleştirme dosyaları
│ ├── 📄 ar.json # Arapça çeviri
│ ├── 📄 de.json # Almanca çeviri
│ ├── 📄 en.json # İngilizce çeviri
│ └── ... # Diğer diller
├── 📁 core/ # Temel iş mantığı
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_deno.py # Deno entegrasyonu
│ ├── 📄 ytsage_downloader.py # İndirme işlevselliği
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg entegrasyonu
│ ├── 📄 ytsage_utils.py # Yardımcı fonksiyonlar
│ └── 📄 ytsage_yt_dlp.py # yt-dlp entegrasyonu
├── 📁 gui/ # Kullanıcı arayüzü bileşenleri
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_gui_main.py # Ana uygulama penceresi
│ └── 📁 ytsage_gui_dialogs/ # Diyalog sınıfları
├── 📁 utils/ # Yardımcı modüller
│ ├── 📄 __init__.py
│ ├── 📄 ytsage_config_manager.py # Yapılandırma yönetimi
│ └── 📄 ytsage_logger.py # Günlük tutma araçları
├── 📄 __init__.py # Paket giriş noktası
└── 📄 main.py # Ana yürütme scripti
```
## ⭐️ Yıldız Geçmişi
## Star History
## 📜 Lisans
Bu proje MIT Lisansı altında lisanslanmıştır - detaylar için [LICENSE](LICENSE) dosyasına bakın.
## 🙏 Teşekkürler
Teşekkürleri Göster
İyileştirmeler önermek veya hataları bildirmek için sorunlar açarak bu projeye katkıda bulunan herkese çok teşekkürler.