api docs
This commit is contained in:
30
API.md
30
API.md
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user