docs
This commit is contained in:
59
README.md
59
README.md
@@ -9,6 +9,9 @@ YouTube video transkriptlerini otomatik olarak çıkarıp, tam metin içeren RSS
|
||||
- ✅ **API Key Authentication** - Tüm endpoint'ler API key gerektirir
|
||||
- ✅ **Güvenlik Önlemleri** - SQL injection, XSS, rate limiting koruması
|
||||
- ✅ **Transcript Cache** - 3 günlük cache ile YouTube IP blocking önleme
|
||||
- ✅ **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** - Timestamp'li, kategorize edilmiş log sistemi
|
||||
- ✅ RSS-Bridge entegrasyonu (100+ video desteği)
|
||||
- ✅ Async rate limiting (AIOLimiter)
|
||||
- ✅ SpaCy ile Sentence Boundary Detection
|
||||
@@ -60,7 +63,7 @@ curl -H "X-API-Key: demo_key_12345" \
|
||||
# Channel Handle ile (API key query parametresi)
|
||||
curl "http://localhost:5000/?channel=@tavakfi&format=Atom&api_key=demo_key_12345"
|
||||
|
||||
# Channel URL ile (max_items: her istekte işlenecek transcript sayısı, default: 10, max: 100, 20'şer batch'ler)
|
||||
# Channel URL ile (max_items: her istekte işlenecek transcript sayısı, default: 10, max: 100, 5'şer batch'ler)
|
||||
curl -H "X-API-Key: demo_key_12345" \
|
||||
"http://localhost:5000/?channel_url=https://www.youtube.com/@tavakfi&format=Atom&max_items=50"
|
||||
```
|
||||
@@ -109,6 +112,10 @@ rss_bridge:
|
||||
base_url: "https://rss-bridge.org/bridge01"
|
||||
format: "Atom"
|
||||
max_items: 100 # RSS-Bridge'den çekilecek video sayısı (web server'da max_items parametresi farklı)
|
||||
|
||||
# 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)
|
||||
```
|
||||
|
||||
### Güvenlik Yapılandırması
|
||||
@@ -146,22 +153,66 @@ Her API isteğinde kaç video transcript'inin işleneceğini kontrol eder:
|
||||
- **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)
|
||||
|
||||
**Önemli Notlar:**
|
||||
- `max_items` parametresi **her istekte işlenecek transcript sayısını** belirler
|
||||
- RSS-Bridge'den daha fazla video çekilir (max_items × 2, minimum 50) çünkü bazı videolar transcript'siz olabilir
|
||||
- **Batch İşleme**: YouTube IP blocking'i önlemek için 20'şer batch'ler halinde işlenir
|
||||
- **Batch İşleme**: YouTube IP blocking'i önlemek için 5'şer batch'ler halinde işlenir
|
||||
- **Batch'ler Arası Bekleme**: 60-90 saniye random bekleme (human-like behavior)
|
||||
- **Veritabanı Kaydı**: Her batch işlendikten sonra hemen veritabanına kaydedilir, böylece sonraki sorgularda görülebilir
|
||||
- İlk isteklerde daha az transcript görebilirsiniz; sonraki isteklerde cache'den daha fazla transcript döner
|
||||
|
||||
**Örnek:**
|
||||
```bash
|
||||
# 50 transcript işle (20+20+10 batch'ler halinde)
|
||||
# 50 transcript işle (5+5+5+5+5+5+5+5+5+5 batch'ler halinde)
|
||||
curl -H "X-API-Key: demo_key_12345" \
|
||||
"http://localhost:5000/?channel_id=UC9h8BDcXwkhZtnqoQJ7PggA&max_items=50&format=Atom"
|
||||
```
|
||||
|
||||
### FlareSolverr Yapılandırması
|
||||
|
||||
FlareSolverr, YouTube'un bot korumasını aşmak için gerçek tarayıcı kullanır:
|
||||
|
||||
```yaml
|
||||
# config/config.yaml
|
||||
flaresolverr:
|
||||
url: "http://192.168.1.27:8191/v1" # FlareSolverr API URL'i
|
||||
```
|
||||
|
||||
veya environment variable:
|
||||
```bash
|
||||
export FLARESOLVERR_URL=http://192.168.1.27:8191/v1
|
||||
```
|
||||
|
||||
**FlareSolverr Avantajları:**
|
||||
- Gerçek tarayıcı kullanımı (headless browser)
|
||||
- Bot algılamasını aşma
|
||||
- Cloudflare ve DDoS-GUARD korumasını bypass etme
|
||||
- Otomatik fallback: FlareSolverr erişilemezse normal istek yapılır
|
||||
|
||||
### Gerçek Tarayıcı Header'ları
|
||||
|
||||
Sistem, gerçek tarayıcı gibi görünmek için:
|
||||
- **User-Agent Rotasyonu**: 7 farklı tarayıcı User-Agent'ı (Chrome, Firefox, Safari, Edge)
|
||||
- **Tam Header Seti**: Accept, Accept-Language, Sec-Fetch-*, Referer, vb.
|
||||
- **Her İstekte Random**: Her istekte farklı User-Agent seçilir
|
||||
|
||||
### Detaylı Loglama
|
||||
|
||||
Sistem, tüm işlemleri kategorize edilmiş loglarla takip eder:
|
||||
|
||||
- **`[RATE_LIMIT]`**: Rate limiting ve bekleme süreleri
|
||||
- **`[TRANSCRIPT]`**: Transcript çıkarım işlemleri
|
||||
- **`[PROCESS]`**: Genel işlem akışı
|
||||
- **`[BATCH]`**: Batch işleme bilgileri
|
||||
- **`[VIDEO]`**: Video seviyesi işlemler
|
||||
- **`[CACHE]`**: Cache kontrolleri
|
||||
- **`[FLARESOLVERR]`**: FlareSolverr istekleri
|
||||
- **`[HEADERS]`**: Header yönetimi
|
||||
|
||||
Log formatı: `YYYY-MM-DD HH:MM:SS | LEVEL | MODULE | MESSAGE`
|
||||
|
||||
## Proje Yapısı
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user