Authentication
Tüm /api/v1/* endpointleri Bearer authentication ister. Key'i /profile/api-keys üzerinden oluştur ve Authorization header'ında geçir:
Authorization: Bearer xva_abc123def456...
Key formatı: xva_ + 32 byte base64url (toplam ~50 karakter). Sunucumuzda SHA-256 hash olarak saklanır — düz metin asla loglanmaz veya yedeklenmez. Key'i kaybedersen yenisini oluşturman gerekir.
Endpoints
/api/v1/tweetTweet metaverisini ve indirilebilir tüm medya URL'lerini döner.
Query parametreleri
| Ad | Tip | Açıklama |
|---|---|---|
url | string | Tweet URL'i (x.com veya twitter.com). Status ID otomatik tespit edilir. |
Yanıt: 200 OK
{
"id": "1789234567890",
"text": "Tweet metni...",
"authorName": "Elon Musk",
"authorScreenName": "elonmusk",
"authorAvatarUrl": "https://pbs.twimg.com/...",
"createdAt": "2026-04-27T08:00:00.000Z",
"durationSec": 84,
"posterUrl": "https://...",
"width": 1920,
"height": 1080,
"videoVariants": [
{
"qualityLabel": "1080p",
"url": "https://video.twimg.com/...",
"contentType": "video/mp4",
"bitrate": 2176000
},
{ "qualityLabel": "720p", "url": "...", ... }
],
"imageUrls": ["https://pbs.twimg.com/..."],
"isAnimatedGif": false
}/api/v1/downloadBir medya URL'ini doğru Content-Disposition başlığıyla proxy'ler. CORS atlanır, dosya stream halinde gelir, sunucumuzda iz kalmaz.
Query parametreleri
| Ad | Tip | Açıklama |
|---|---|---|
url | string | video.twimg.com / pbs.twimg.com / ton.twimg.com kaynaklı medya URL'i. |
filename | string | Önerilen dosya adı. Sanitize edilir. |
Yanıt: 200 OK
Binary stream — dosya içeriği. Header'lar:
Content-Type: video/mp4 Content-Disposition: attachment; filename="tweet-1080p.mp4" Content-Length: 14523847 X-RateLimit-Limit: 10000 X-RateLimit-Remaining: 9847 X-RateLimit-Tier: PRO
Rate Limits
Her isteğin apiKeyId'ye göre 24 saatlik kayar pencere içinde sayılır.
| Tier | Günlük istek | Burst | Tipik kullanım |
|---|---|---|---|
| FREE | 100 | kısıtlı | Kişisel script, deneme |
| PRO | 10.000 | orta | Bot, küçük ölçek otomasyon |
| GOLD | 100.000 | geniş | B2B, yüksek hacim |
Limit aşıldığında 429 Too Many Requests dönülür. Her yanıtta X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Tier header'ları bulunur.
Kod örnekleri
curl
# Tweet metadata curl -H "Authorization: Bearer xva_..." \ "https://demo.huntvideos.co/api/v1/tweet?url=https://x.com/elonmusk/status/123" # 1080p video indir curl -H "Authorization: Bearer xva_..." \ "https://demo.huntvideos.co/api/v1/download?url=https://video.twimg.com/...&filename=tweet.mp4" \ -o tweet.mp4
JavaScript / Node.js
const res = await fetch(
"https://demo.huntvideos.co/api/v1/tweet?url=" + encodeURIComponent(tweetUrl),
{ headers: { Authorization: "Bearer xva_..." } }
);
if (!res.ok) throw new Error(`API ${res.status}: ${await res.text()}`);
const tweet = await res.json();
console.log(tweet.videoVariants[0].url);Python
import requests
r = requests.get(
"https://demo.huntvideos.co/api/v1/tweet",
params={"url": "https://x.com/user/status/123"},
headers={"Authorization": "Bearer xva_..."},
timeout=30,
)
r.raise_for_status()
tweet = r.json()
print(tweet["videoVariants"][0]["url"])PHP
$ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => "https://demo.huntvideos.co/api/v1/tweet?url=" . urlencode($tweetUrl), CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["Authorization: Bearer xva_..."], ]); $response = json_decode(curl_exec($ch), true);
Hata kodları
| Status | Anlamı | Çözüm |
|---|---|---|
400 | Bad Request — eksik/hatalı parametre | url doğru formatta mı? |
401 | Unauthorized — key yok veya geçersiz | Authorization: Bearer xva_... başlığını kontrol et. |
403 | Forbidden — key pasif, süresi dolmuş veya host izinli değil | /profile/api-keys'den durumu gör. |
404 | Tweet bulunamadı (silinmiş ya da korumalı) | Sadece herkese açık tweet'ler kapsam içi. |
429 | Rate limit aşıldı | Tier'ını yükselt ya da pencerenin kapanmasını bekle. |
502 | Upstream hatası — X / Twitter geçici sorun | Birkaç saniye sonra yeniden dene. |
Webhooks
Çok yakında. Toplu thread arşivleme tamamlandığında veya zamanlanmış indirme bittiğinde sana POST callback gönderecek. İlgileniyorsan iletişime geç.
Sürüm notları
- v1.0.0 — Bearer auth, /api/v1/tweet ve /api/v1/download endpoint'leri, tier-based rate limits.