This commit is contained in:
salvacybersec
2025-11-13 04:19:56 +03:00
parent 2dc0eb8b19
commit c677983aa7

30
API.md
View File

@@ -87,7 +87,7 @@ YouTube kanalı için transcript feed'i oluşturur.
| `channel` | string | ⚠️* | Channel handle (@username veya username) | | `channel` | string | ⚠️* | Channel handle (@username veya username) |
| `channel_url` | string | ⚠️* | Full YouTube channel URL | | `channel_url` | string | ⚠️* | Full YouTube channel URL |
| `format` | string | ❌ | Feed formatı: `Atom` (varsayılan) veya `Rss` | | `format` | string | ❌ | Feed formatı: `Atom` (varsayılan) veya `Rss` |
| `max_items` | integer | ❌ | Maksimum video sayısı (varsayılan: 50, max: 500) | | `max_items` | integer | ❌ | Maksimum transcript sayısı (varsayılan: 10, max: 100, 20'şer batch'ler halinde işlenir) |
\* `channel_id`, `channel` veya `channel_url` parametrelerinden biri zorunludur. \* `channel_id`, `channel` veya `channel_url` parametrelerinden biri zorunludur.
@@ -104,7 +104,7 @@ curl -H "X-API-Key: demo_key_12345" \
# Channel URL ile # Channel URL ile
curl -H "X-API-Key: demo_key_12345" \ curl -H "X-API-Key: demo_key_12345" \
"http://localhost:5000/?channel_url=https://www.youtube.com/@tavakfi&format=Atom&max_items=100" "http://localhost:5000/?channel_url=https://www.youtube.com/@tavakfi&format=Atom&max_items=50"
# Query parametresi ile API key # Query parametresi ile API key
curl "http://localhost:5000/?channel_id=UC9h8BDcXwkhZtnqoQJ7PggA&api_key=demo_key_12345&format=Rss" curl "http://localhost:5000/?channel_id=UC9h8BDcXwkhZtnqoQJ7PggA&api_key=demo_key_12345&format=Rss"
@@ -160,7 +160,7 @@ curl "http://localhost:5000/?channel_id=UC9h8BDcXwkhZtnqoQJ7PggA&api_key=demo_ke
"channel": "@username veya username", "channel": "@username veya username",
"channel_url": "https://www.youtube.com/@username veya https://www.youtube.com/channel/UC...", "channel_url": "https://www.youtube.com/@username veya https://www.youtube.com/channel/UC...",
"format": "Atom veya Rss (varsayılan: Atom)", "format": "Atom veya Rss (varsayılan: Atom)",
"max_items": "Maksimum video sayısı (varsayılan: 50)" "max_items": "Maksimum transcript sayısı (varsayılan: 10, maksimum: 100, 20'şer batch'ler halinde işlenir)"
} }
} }
``` ```
@@ -245,12 +245,12 @@ curl -H "X-API-Key: demo_key_12345" "http://localhost:5000/info"
"channel": "@username veya username", "channel": "@username veya username",
"channel_url": "Full YouTube channel URL", "channel_url": "Full YouTube channel URL",
"format": "Atom veya Rss (varsayılan: Atom)", "format": "Atom veya Rss (varsayılan: Atom)",
"max_items": "Maksimum video sayısı (varsayılan: 50)" "max_items": "Maksimum transcript sayısı (varsayılan: 10, maksimum: 100, 20'şer batch'ler halinde işlenir)"
}, },
"examples": [ "examples": [
"/?channel_id=UC9h8BDcXwkhZtnqoQJ7PggA&format=Atom", "/?channel_id=UC9h8BDcXwkhZtnqoQJ7PggA&format=Atom",
"/?channel=@tavakfi&format=Rss", "/?channel=@tavakfi&format=Rss",
"/?channel_url=https://www.youtube.com/@tavakfi&format=Atom&max_items=100" "/?channel_url=https://www.youtube.com/@tavakfi&format=Atom&max_items=50"
] ]
} }
``` ```
@@ -313,8 +313,10 @@ Sadece aşağıdaki formatlar kabul edilir:
- Tip: Integer - Tip: Integer
- Minimum: 1 - Minimum: 1
- Maksimum: 500 - Maksimum: 100
- Varsayılan: 50 - Varsayılan: 10
- **Batch İşleme**: 20'şer batch'ler halinde işlenir (YouTube IP blocking önleme için)
- **Veritabanı Kaydı**: Her batch işlendikten sonra hemen veritabanına kaydedilir, böylece sonraki sorgularda görülebilir
## CORS ## CORS
@@ -392,7 +394,7 @@ API_KEY="demo_key_12345"
CHANNEL_ID="UC9h8BDcXwkhZtnqoQJ7PggA" CHANNEL_ID="UC9h8BDcXwkhZtnqoQJ7PggA"
curl -H "X-API-Key: $API_KEY" \ curl -H "X-API-Key: $API_KEY" \
"http://localhost:5000/?channel_id=$CHANNEL_ID&format=Atom&max_items=10" "http://localhost:5000/?channel_id=$CHANNEL_ID&format=Atom&max_items=50"
``` ```
## Notlar ## Notlar
@@ -401,12 +403,22 @@ curl -H "X-API-Key: $API_KEY" \
2. **Rate Limiting**: Her API key için farklı rate limit tanımlanabilir. Limit aşıldığında 60 saniye beklemeniz gerekir. 2. **Rate Limiting**: Her API key için farklı rate limit tanımlanabilir. Limit aşıldığında 60 saniye beklemeniz gerekir.
3. **Transcript İşleme**: Transcript'ler arka planda asenkron olarak işlenir. Yeni videolar için birkaç dakika gecikme olabilir. 3. **Transcript İşleme**:
- Transcript'ler 20'şer batch'ler halinde işlenir (YouTube IP blocking önleme için)
- Her batch işlendikten sonra veritabanına kaydedilir
- `max_items` parametresi ile her istekte işlenecek transcript sayısını kontrol edebilirsiniz (maksimum 100)
- Batch'ler arası 2 saniye bekleme süresi vardır
- Yeni videolar için birkaç dakika gecikme olabilir
4. **Format Seçimi**: Atom formatı daha modern ve önerilir. RSS formatı eski RSS reader'lar için uygundur. 4. **Format Seçimi**: Atom formatı daha modern ve önerilir. RSS formatı eski RSS reader'lar için uygundur.
5. **API Key Güvenliği**: API key'lerinizi güvenli tutun ve asla public repository'lere commit etmeyin. 5. **API Key Güvenliği**: API key'lerinizi güvenli tutun ve asla public repository'lere commit etmeyin.
6. **Batch İşleme Örneği**:
- `max_items=50` isteği: 20+20+10 batch'ler halinde işlenir
- Her batch tamamlandığında veritabanına kaydedilir
- Sonraki sorgularda tüm işlenmiş transcript'ler görülebilir
## Destek ## Destek
Sorularınız için GitHub Issues kullanabilirsiniz. Sorularınız için GitHub Issues kullanabilirsiniz.