This commit is contained in:
salvacybersec
2025-11-13 05:43:02 +03:00
parent f9517549f1
commit 9e3b792e0c
3 changed files with 120 additions and 17 deletions

View File

@@ -84,9 +84,23 @@ YouTube video transkriptlerini otomatik olarak çıkarıp, tam metin içeren RSS
- **Retry-After Header**: 429 hatalarında `Retry-After` header'ını kullanma
- Dinamik bekleme süresi (statik delay yerine)
- Exponential backoff mekanizması
- **FlareSolverr Desteği**: Bot korumasını aşmak için FlareSolverr entegrasyonu
- FlareSolverr API üzerinden istek yapma
- Gerçek tarayıcı (headless browser) kullanımı
- Otomatik fallback: FlareSolverr erişilemezse normal istek
- **Gerçek Tarayıcı Header'ları**: Bot algılamasını önlemek için
- User-Agent rotasyonu (7 farklı tarayıcı)
- Tam tarayıcı header seti (Accept, Sec-Fetch-*, Referer, vb.)
- Her istekte random User-Agent seçimi
- **Detaylı Loglama**: Kategorize edilmiş log sistemi
- Timestamp'li, seviyeli loglar (DEBUG, INFO, WARNING, ERROR)
- Log kategorileri: [RATE_LIMIT], [TRANSCRIPT], [FLARESOLVERR], [HEADERS], vb.
- **IP Blocking Yönetimi**:
- IP blocking tespiti ve dinamik bekleme (5 dakika + block_count × 1 dakika, max 30 dakika)
- İstekler arası random bekleme (10-20 saniye, blocking varsa 30-60 saniye)
- Timeout ve retry mekanizmaları
**Süre Tahmini**: 3-4 gün
**Süre Tahmini**: 5-6 gün (FlareSolverr ve header desteği ile)
### 2.2. Transcript Temizleme ve Dönüştürme (`transcript_cleaner.py`)
@@ -335,9 +349,14 @@ channel_id = get_channel_id_from_handle(handle_url)
- **Varsayılan**: 10 transcript
- **Maksimum**: 100 transcript
- **Kullanım**: `?max_items=50` query parametresi ile belirtilir
- **Batch İşleme**: 20'şer batch'ler halinde işlenir (YouTube IP blocking önleme için)
- **Batch İşleme**: 5'şer batch'ler halinde işlenir (YouTube IP blocking önleme için)
- **Batch'ler Arası Bekleme**: 60-90 saniye random bekleme (human-like behavior)
- **İstekler Arası Bekleme**: 10-20 saniye random (blocking varsa 30-60 saniye)
- **Veritabanı Kaydı**: Her batch işlendikten sonra hemen veritabanına kaydedilir
- **RSS-Bridge Limit**: max_items × 2 kadar video çekilir (bazı videolar transcript'siz olabilir)
- **FlareSolverr Desteği**: Bot korumasını aşmak için FlareSolverr entegrasyonu
- **Gerçek Tarayıcı Header'ları**: User-Agent rotasyonu ve tam tarayıcı header seti
- **Detaylı Loglama**: Kategorize edilmiş, timestamp'li log sistemi
- [ ] Transaction yönetimi (ACID compliance)
- [ ] Connection pooling ve error handling
@@ -458,6 +477,11 @@ channel_id = get_channel_id_from_handle(handle_url)
enable_sbd: true
paragraph_length: 3
# FlareSolverr ayarları (YouTube IP blocking önleme için)
flaresolverr:
url: "http://192.168.1.27:8191/v1" # FlareSolverr API URL'i (devre dışı için null)
# veya environment variable: FLARESOLVERR_URL=http://192.168.1.27:8191/v1
rss:
title: "Channel Transcript Feed"
description: "Full-text transcript RSS feed"
@@ -624,12 +648,16 @@ jobs:
### 8.1. Performans Optimizasyonu
**Görevler:**
- [ ] Paralel transcript çıkarımı (çoklu video için)
- [ ] Caching mekanizması
- [ ] Rate limiting yönetimi
- [ ] Batch processing optimizasyonu
- [x] Paralel transcript çıkarımı (çoklu video için)
- [x] Caching mekanizması (3 günlük transcript cache)
- [x] Rate limiting yönetimi (AIOLimiter ile async)
- [x] Batch processing optimizasyonu (5'şer batch'ler, 60-90 saniye bekleme)
- [x] FlareSolverr entegrasyonu (bot korumasını aşma)
- [x] Gerçek tarayıcı header'ları (User-Agent rotasyonu)
- [x] IP blocking yönetimi (dinamik bekleme, random delays)
- [x] Detaylı loglama sistemi
**Süre Tahmini**: 2-3 gün
**Süre Tahmini**: 2-3 gün (Tamamlandı)
### 8.2. Self-Hosted RSS-Bridge Deployment (Opsiyonel - Rate Limiting Sorunları İçin)
@@ -670,7 +698,11 @@ jobs:
### 8.3. Monitoring ve Logging
**Görevler:**
- [ ] Detaylı logging sistemi
- [x] Detaylı logging sistemi
- Python `logging` modülü entegrasyonu
- Kategorize edilmiş loglar: [RATE_LIMIT], [TRANSCRIPT], [PROCESS], [BATCH], [VIDEO], [CACHE], [FLARESOLVERR], [HEADERS]
- Timestamp'li, seviyeli log formatı (DEBUG, INFO, WARNING, ERROR)
- Docker logları ile kolay takip
- [ ] Hata bildirimleri (email, webhook)
- [ ] Feed health monitoring
- [ ] İstatistikler (SQLite sorguları ile):