yt-dlp ve FFmpeg üzerine kurulmuş, gelişmiş bir komut satırı arayüzü (CLI) ile YouTube'dan video ve ses indirme aracı. Kullanıcı dostu arayüzü ile belirli format ve kalitelerde indirme yapmayı kolaylaştırır.
- Kullanılan Araçlar
- Amaç
- Proje Özellikleri
- Teknik Detaylar
- İndirme ve Çalıştırma
- Kullanım
- Proje Yapısı
- Not
- Backend İndirici:
yt-dlpile güçlü ve hızlı indirme altyapısı. - Medya İşleme:
FFmpegile video-ses birleştirme ve format dönüştürme. - Konsol Arayüzü (CLI):
Richkütüphanesi ile modern ve interaktif bir arayüz.
| Kullanılan Araç | Sürüm (Önerilen) | Amaç |
|---|---|---|
| Python | 3.8+ | Ana programlama dili |
| yt-dlp | En son | YouTube'dan video/ses akışlarını indirme |
| Rich | En son | İnteraktif ve zengin konsol arayüzü (tablolar, ilerleme çubukları vb.) |
| FFmpeg | En son | Video ve ses dosyalarını birleştirme (muxing) ve dönüştürme |
Bu proje, standart yt-dlp kullanımını daha interaktif ve kullanıcı dostu hale getirmek amacıyla geliştirilmiştir. Kullanıcıların komut ezberlemeden, sadece menülerden seçim yaparak istedikleri kalitede ve formatta (MP4, MP3, FLAC vb.) YouTube içeriğini kolayca indirebilmelerini sağlamaktır.
{
"İndirme Seçenekleri": "Video veya sadece Ses olarak indirme",
"Format Çeşitliliği": "Video için 1080p/720p/480p; Ses için MP3, M4A, WAV, FLAC",
"Playlist Desteği": "Tek link ile tüm oynatma listesini indirme",
"Akıllı Klasörleme": "İndirilen dosyaları 'indirilenler' klasöründe, playlistleri kendi adıyla açılan alt klasörlerde düzenler",
"Otomatik Bağımlılık Kontrolü": "Program başlamadan kritik 'FFmpeg' aracının kurulu olup olmadığını kontrol eder",
"Zengin Konsol Arayüzü": "Rich ile hazırlanmış tablolar, paneller ve anlık ilerleme çubuğu",
"Kolay Kullanım": "Komut bilgisi gerektirmeyen, tamamen interaktif menü tabanlı arayüz",
"Hata Yönetimi": "Geçersiz linkler veya indirme hataları için anlaşılır hata mesajları",
"Çapraz Platform Desteği": "Windows, macOS, Linux üzerinde çalışır"
}| Özellik | Durum | Detay |
|---|---|---|
| Video/Ses Birleştirme | ✅ | FFmpeg kullanarak en iyi video ve ses akışlarını birleştirir (muxing). |
| Ses Formatı Dönüştürme | ✅ | İndirilen en iyi kalitedeki sesi istenen formata (MP3, FLAC vb.) dönüştürür. |
| İnteraktif Arayüz | ✅ | Rich kütüphanesi ile kullanıcıdan anlık girdi alır (Prompts) ve verileri tablolarda sunar. |
| Anlık İlerleme Takibi | ✅ | İndirme hızını, kalan süreyi ve dosya boyutunu gösteren canlı ilerleme çubuğu. |
| Hata Yakalama | ✅ | yt-dlp ve ağ hatalarını yakalayıp kullanıcıyı bilgilendirir. |
| Oynatma Listesi Yönetimi | ✅ | Liste bilgilerini çeker, kullanıcı onayı alır ve tüm videoları sıralı indirir. |
| Modüler Kod Yapısı | ✅ | Fonksiyonlar görevlerine göre ayrılmış, okunabilir ve bakımı kolay kod yapısı. |
Projeyi yerel ortamınızda çalıştırmak için aşağıdaki adımları izleyebilirsiniz:
-
FFmpeg Kurulumu (ÖNEMLİ): Bu araç, video ve ses dosyalarını işlemek için FFmpeg'e ihtiyaç duyar.
- ffmpeg.org/download.html adresinden işletim sisteminize uygun sürümü indirin.
- İndirdiğiniz dosyaları bir klasöre çıkarın ve o klasörün yolunu sisteminizin PATH (Ortam Değişkenleri)'ine ekleyin. Bu, programın FFmpeg'i bulabilmesi için kritik bir adımdır.
-
Repoyu Klonlayın:
git clone https://github.com/metehansenyer/YouTube-Downloader.git cd YouTube-Downloader -
Sanal Ortam (Virtual Environment) oluşturun ve etkinleştirin: Projenin diğer Python kurulumlarınızdan izole çalışması için bu adım şiddetle tavsiye edilir.
Windows için:
python -m venv venv venv\Scripts\activate
macOS/Linux için:
python -m venv venv source venv/bin/activate -
Gerekli Python kütüphanelerini yükleyin:
pip install --upgrade yt-dlp rich
-
Programı çalıştırın:
python main.py
- Programı çalıştırdığınızda sizi bir hoşgeldin mesajı karşılar ve FFmpeg kontrolü yapılır.
- İndirmek istediğiniz YouTube video veya oynatma listesi linkini yapıştırıp
Enter'a basın. - "Video olarak mı, ses dosyası olarak mı indirmek istersiniz?" sorusuna
vveyasile cevap verin. - Ekranda beliren tablodan, indirmek istediğiniz kalite veya formatın numarasını girin.
- İndirme işlemi, canlı ilerleme çubuğu ile başlayacaktır.
- İşlem tamamlandığında dosyalarınızı
indirilenlerklasöründe bulabilirsiniz.
Bu proje tek bir betikten oluşur. İlk indirmeden sonra oluşacak klasör yapısı aşağıdaki gibi olacaktır:
YouTube-Downloader/
├── main.py # Ana program betiği
└── indirilenler/ # Tüm indirilen medyanın ana klasörü
├── Tekil Video Adı.mp4 # Örnek tekil video indirmesi
└── Oynatma Listesi Adı/ # Oynatma listeleri için oluşturulan alt klasör
├── 1 - Listenin 1. Videosu.mp3
├── 2 - Listenin 2. Videosu.mp3
└── ...
Not: Bu araç, kişisel ve eğitim amaçlı kullanım için tasarlanmıştır. İndirilen içeriklerin telif haklarına ve YouTube'un hizmet şartlarına uymak kullanıcının sorumluluğundadır. Lütfen bu aracı sorumlu bir şekilde kullanın.