Galatasaray maç videolarını indiren, profesyonel 9:16 montaj oluşturan ve AI/ML ile tüm sosyal medya platformlarına optimize eden araç.
- 🎥 Video Toplama: yt-dlp ile yüksek kaliteli Galatasaray videoları
- 📹 Video Düzenleme: Montaj, renk grading, slow-motion, 9:16 format
- 🤖 AI Modülü:
- LLM API 🚀 YENİ (Gemini & OpenAI)
- Video metadata üretimi (başlık, açıklama, hashtag)
- Çoklu dil desteği (TR/EN/AR/...)
- Transkript analizi ve özetleme
- Sahne yorumlama
- YOLOv8 yüz tanıma (oyuncu tespiti)
- Whisper konuşma yazıya çevir + Gelişmiş Metin Analizi ⭐
- Oyuncu isimleri & sayıları (Eren 3x, Sané 1x...)
- Futbol olayları (GOL, ŞUT, PENALTI...)
- Aksiyon kelimeleri (koşma, atlama, vuruş...)
- Duygu tespiti (heyecan, hayal kırıklığı...)
- İstatistikler (ilk, son, galibiyet...)
- Sentiment skoru (-2 ~ +2)
- Müzik Analizi 🎵
- Tempo & BPM
- Genre tahmini (electronic, pop, ambient...)
- Mood (calm, energetic, intense)
- Vokal/Enstrümantal tespiti
- Parlaklık & Enerji seviyesi
- Video Temizleme 🧹
- Reklam/logo/yazı silme (3 metod)
- TV logoları (beIN, TRT, A Spor...)
- Skor tablosu & overlay silme
- librosa beat tespiti (müzik senkronizasyon)
- LLM API 🚀 YENİ (Gemini & OpenAI)
- 🌍 Multi-Platform: TikTok, Instagram Reels, YouTube Shorts, Twitter, Facebook
- 📝 Çok Dilli Metadata: Türkçe, İngilizce, Arapça başlık/açıklama/hashtag
# Temel paketler
pip install yt-dlp opencv-python moviepy librosa
# AI/ML Stack (PyTorch CPU mode)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install transformers huggingface-hub ultralytics openai-whisper
# LLM API'leri (Gemini & OpenAI)
pip install google-generativeai openai
# Opsiyonel: Çoklu dil desteği
pip install deep-translator python-dotenv tqdm# Gemini (ücretsiz/hızlı - önerilen)
$env:GEMINI_API_KEY = "your-gemini-key-here"
# Veya OpenAI (ücretli ama güçlü)
$env:OPENAI_API_KEY = "your-openai-key-here"API Key almak için:
Detaylı bilgi için: LLM API Kullanım Kılavuzu
### 3. Kanal Listesini Hazırla
[maç_görüntüleri_kanalları.md](docs/maç_görüntüleri_kanalları.md) dosyasında kanal URL'leri listelenmiştir.
### 4. LLM ile Kullanım (Önerilen)
Tüm modüller artık LLM desteğine sahip. Detaylı kullanım için: [LLM Kullanım Kılavuzu](docs/LLM_USAGE_GUIDE.md)
```python
# Metadata üretimi
from src.ai.metadata_generator import MetadataGenerator
gen = MetadataGenerator(use_llm=True, llm_provider="gemini")
# Ses analizi
from src.ai.audio_analyzer import AudioAnalyzer
analyzer = AudioAnalyzer("video.mp4", use_llm=True)
# Batch export
from src.batch_export import BatchExporter
exporter = BatchExporter("video.mp4", use_llm=True)
# yt-dlp ile URL listesi oluştur
python src/collect/collect_gs_videos_ytdlp.py --date-after 20240101 --out-dir data/video# Türkçe altyazı ve yüksek kalite
python src/download/download_gs_videos_ytdlp.py --urls-file data/video/gs_video_urls_ytdlp.txt --confirm-rights --out-dir data/video/downloads# Professionel 9:16 montaj oluştur (renk grading, slow-motion)
python src/edit/create_eren_final_simple.py --input-dir data/input --output-file outputs/social/eren_comeback_final.mp4# Tüm platformlara optimize et + metadata + ses analizi
python src/batch_export.py outputs/social/eren_comeback_final.mp4outputs/
├── social/
│ └── eren_comeback_final.mp4 (Master video, 9:16, 1080x1920)
├── optimized/
│ ├── video_tiktok.mp4 (TikTok 9:16)
│ ├── video_instagram.mp4 (Reels 9:16)
│ ├── video_youtube_shorts.mp4 (Shorts 9:16)
│ ├── video_twitter.mp4 (Twitter 16:9)
│ └── video_facebook.mp4 (Facebook 1:1)
└── audio_analysis/
├── analysis.json (Whisper + Beat'ler)
└── *.json (Transkripsiyon)
- YOLOv8 yüz tanıma (oyuncu tespiti)
- PlayerDatabase (6 Galatasaray oyuncusu)
- SceneDetector (gol ve kutlama tespiti)
- Çok dilli başlık (TR/EN/AR)
- Platform-specific açıklamalar
- Trending hashtag'ler
- YouTube timestamps
- TikTok: 9:16, 1080×1920, 5 Mbps
- Instagram Reels: 9:16, 1080×1920, 6 Mbps
- YouTube Shorts: 9:16, 1080×1920, 8 Mbps
- Twitter: 16:9, 1280×720, 2.5 Mbps
- Facebook: 1:1, 1080×1080, 5 Mbps
- Whisper: Konuşma yazıya çevir (otomatik altyazı)
- librosa: Beat tespiti (müzik senkronizasyon)
- Sessiz bölüm tespiti (kesiş noktaları)
Kanal ID'lerini bulmak:
- YouTube'da kanalı aç
- URL'deki
/channel/veya@sonrasını not et /c/veya handle'ı, kanal ID'sine dönüştürmek için/channel/UC...formatını arala veya YouTube Data API kullan
MIT - Akademik ve kişisel kullanım için özgürce kullanılabilir.