YouTube videolarınızın başlık ve açıklamalarını 50 farklı dile otomatik olarak çeviren ve tek tuşla YouTube'a yükleyen ASP.NET Core MVC uygulaması.
- ✅ YouTube'dan video bilgilerini otomatik çekme
- ✅ OpenAI GPT-4o-mini ile 50 dile profesyonel çeviri
- ✅ Çevirileri önizleme ve düzenleme imkanı
- ✅ Tek tıkla toplu yükleme
- ✅ Modern ve kullanıcı dostu arayüz
- ✅ Paralel işleme ile hızlı çeviri
- ✅ YouTube API kota yönetimi
İngilizce, İspanyolca, Portekizce, Fransızca, Almanca, İtalyanca, Rusça, Japonca, Korece, Çince (Basitleştirilmiş), Çince (Geleneksel), Arapça, Hintçe, Bengalce, Pencapça, Telugu, Marathi, Tamilce, Urduca, Türkçe, Vietnamca, Tayca, Endonezce, Malayca, Filipince, Hollandaca, Lehçe, Ukraynaca, Rumence, Çekçe, İsveççe, Macarca, Yunanca, Danca, Fince, Norveççe, Slovakça, Bulgarca, Hırvatça, Sırpça, Litvanca, Letonca, Estonca, Slovence, İbranice, Farsça, Svahili, Afrikanca, Katalanca, Baskça
- .NET 8.0 SDK
- Google Cloud Console hesabı (YouTube Data API v3 için)
- OpenAI API anahtarı
- Google Cloud Console adresine gidin
- Yeni bir proje oluşturun veya mevcut bir projeyi seçin
- APIs & Services > Library bölümünden YouTube Data API v3'ü etkinleştirin
- APIs & Services > Credentials bölümünden OAuth 2.0 Client ID oluşturun:
- Application type: Desktop app
- Name: YouTube Translator (veya istediğiniz bir isim)
- Oluşturulan client ID'nin JSON dosyasını indirin
- İndirilen dosyayı
client_secrets.jsonolarak projenin ana dizinine kopyalayın
- OpenAI Platform adresine gidin
- API Keys bölümünden yeni bir API anahtarı oluşturun
- Anahtarı kopyalayın (sadece bir kez gösterilir)
appsettings.json dosyasını düzenleyin:
{
"OpenAI": {
"ApiKey": "BURAYA_OPENAI_API_ANAHTARINIZI_YAPIŞTIRIN",
"Model": "gpt-4o-mini"
},
"YouTube": {
"ApplicationName": "YouTube Translator",
"ClientSecretsPath": "client_secrets.json"
}
}cd YoutubeTranslator
dotnet run --project YoutubeTranslator/YoutubeTranslator.csprojTarayıcınızda https://localhost:5001 adresine gidin.
- Ana sayfada YouTube video ID'sini veya tam URL'sini girin
- Örnek ID:
dQw4w9WgXcQ - Örnek URL:
https://www.youtube.com/watch?v=dQw4w9WgXcQ
- Örnek ID:
- Çevirmek istediğiniz dilleri seçin (Tümünü Seç butonu ile tüm 50 dili seçebilirsiniz)
- "Videoyu Çek ve Çevir" butonuna tıklayın
- İlk kullanımda Google OAuth ekranı açılacak
- YouTube hesabınızla giriş yapın ve izinleri onaylayın
- Kimlik bilgileri kaydedilir, bir daha giriş yapmanız gerekmez
- Tüm çeviriler tablo formatında gösterilir
- İsterseniz çevirileri düzenleyebilirsiniz
- Her dil için başlık ve açıklama ayrı ayrı görüntülenir
- "Tümünü YouTube'a Yükle" butonuna tıklayın
- Yükleme işlemi otomatik olarak başlar
- İşlem birkaç dakika sürebilir (50 dil için)
- Sonuç sayfasında başarılı ve başarısız yüklemeler gösterilir
┌─────────────────┐
│ Controllers │
│ Translation │
└────────┬────────┘
│
┌────┴────┐
│ │
┌───▼──┐ ┌──▼────┐
│YouTube│ │OpenAI │
│Service│ │Service│
└───┬──┘ └──┬────┘
│ │
│ │
┌───▼────────▼───┐
│ YouTube API │
│ OpenAI API │
└────────────────┘
- TranslationController: Ana iş akışını yönetir
- YouTubeService: YouTube Data API v3 entegrasyonu
- OpenAiService: GPT-4o-mini ile çeviri işlemleri
- LanguageConstants: 50 dil tanımları
- Paralel Çeviri: 5 eşzamanlı OpenAI isteği
- Batch İşleme: YouTube'a 5'erli gruplar halinde yükleme
- Rate Limiting: API kota limitlerini aşmamak için gecikme
- Caching: YouTube OAuth token'ları önbelleğe alınır
- Input: $0.15 / 1M token
- Output: $0.60 / 1M token
- Ortalama maliyet (50 dil): ~$0.05-0.10 per video
- Günlük kota: 10,000 units
- Video okuma: 1 unit
- Localization güncelleme: 50 units
- 50 dil yükleme: ~2,500 units
- Dosyanın proje ana dizininde olduğundan emin olun
- Dosya adının tam olarak
client_secrets.jsonolduğunu kontrol edin
appsettings.jsondosyasında API anahtarının doğru girildiğinden emin olun- Anahtarın geçerli olduğunu OpenAI dashboard'dan kontrol edin
- Google Cloud Console'da günlük kota kullanımınızı kontrol edin
- Gerekirse kota artırımı talep edin
- Daha az dil seçerek test edin
- GPT-4o-mini yerine GPT-4 kullanmayı deneyin (daha pahalı)
appsettings.json'da model değerini değiştirin:"Model": "gpt-4"
⚠️ API anahtarlarını asla Git'e commit etmeyin⚠️ appsettings.jsondosyasını.gitignore'a ekleyin⚠️ Production ortamında User Secrets veya Azure Key Vault kullanın⚠️ client_secrets.jsondosyasını güvenli tutun
Bu proje MIT lisansı altında lisanslanmıştır.
Pull request'ler memnuniyetle karşılanır. Büyük değişiklikler için lütfen önce bir issue açın.