Kling 3.0 API: metinden video isteği kodu ve gerçek klipler
Metinden videoya bir görev, kling-3.0 modeliyle tek bir POST. Aşağıda istek kodu, aldığı alanlar ve 29 Ekim 2026'da üretip ölçtüğümüz iki 5 saniyelik klip var.
Bu sayfada
- Kling 3.0 isteğinde neler var
- İstek kodu
- Ürettiğimiz iki klip
- Kâğıt kayık
- Çaydanlık
- Dosyalar ne ölçtü
- Kareler ne gösteriyor
- Hatalar ve sınırlar
- Sık sorulan sorular
- kling-3.0 hangi süreleri kabul ediyor?
- std ile pro arasındaki fark ne?
- Kliplerde ses var mı?
- Bir klibe görselden başlayabilir miyim?
- Bir klip ne kadar sürede oluşuyor?
Kling 3.0 ile metinden videoya bir görev, https://api.omniakey.com/v1/media/tasks adresine kling-3.0 modeli, text_to_video işlemi ve iki zorunlu parametreyle yapılan tek bir POST'tur: duration (5, 10 veya 15 saniye) ve mode (std veya pro). Yanıt bir görev kimliği döndürür; başarılı olana kadar sorgulayın, ardından MP4'ü indirin. 29 Ekim 2026'da 1280×720 çözünürlükte std modda iki 5 saniyelik klip ürettik ve dosyalarıyla kareleri ölçtük.
Kling 3.0 isteğinde neler var
İstek gövdesinde yedi alan bulunur. İkisi, duration ve mode, Kling için zorunludur: klibin uzunluğunu ve kalite sınıfını bunlar belirler.
| Alan | Ne gönderilir |
|---|---|
model | kling-3.0 |
type | video |
operation | text_to_video |
input.prompt | sahne, hareket ve kamera tek bir metin olarak |
parameters.duration | 5, 10 veya 15, tam saniye |
parameters.mode | std veya pro |
parameters.aspect_ratio | 16:9, 9:16 veya 1:1 |
Alan adlarını ve değerleri tablodaki gibi yazın; iki zorunlu alanı atlamayın. İstek gövdesini olduğu gibi kopyalayıp kendi promptunuzla değiştirebilirsiniz. Model sayfasının kendi örneği duration 6 ve 720p değerli bir resolution alanı gönderiyor; burada ikisi de geçerli değil: sayfa yalnızca 5, 10 veya 15 saniye kabul ediyor ve ayrı bir resolution alanı olmadığını söylüyor (model sayfası, 29 Ekim 2026'da kontrol edildi). Sayfanın SSS bölümü standard çıktıyı 720P, pro çıktıyı 1080P ile eşleştiriyor.
Ses varsayılan olarak geliyor ve sayfada kapatma anahtarı listelenmiyor (29 Ekim 2026'da kontrol edildi). En-boy oranı metinden video için geçerli; görselden video biçimi ilk kareden alır ve açıkça verilen oranı reddeder. Bu iki çalıştırmada std, 5 saniye ve 16:9 kullanıldı; pro mod, 10 ve 15 saniye, 9:16 ve 1:1, görselden video ve son kare bunların dışında kaldı.
Prompt metni sahneyi, hareketi ve kamerayı belirler. Sonucu en çok prompt etkiler. Kling 3.0 prompt rehberi bir promptun parçalarını ve kamera dilini anlatıyor.
İstek kodu
Tek bir Python dosyası gövdeyi gönderir, görevi sorgular ve MP4'ü indirir. Anahtarı OMNIAKEY_API_KEY ortam değişkeninden okur, oluşturma isteğine rastgele bir Idempotency-Key koyar ve sorgular arasında 5 saniye bekler, en fazla 180 deneme boyunca. Gövde bir sonraki bölümdeki iki kliple aynı alanları ve değerleri taşır: model kling-3.0, type video, operation text_to_video, duration 5, mode std, oran 16:9. Python standart kütüphanesi yeterli: SDK veya başka bir bağımlılık kurmak gerekmiyor. Bu 5 saniye ve 180 deneme sınırı kodda duruyor; çok yavaş ya da çok uzun geliyorsa bu iki sayıyı değiştirin.
import json
import os
import time
import urllib.error
import urllib.request
import uuid
API = "https://api.omniakey.com/v1/media/tasks"
KEY = os.environ["OMNIAKEY_API_KEY"]
def request(method, url, body=None, extra_headers=None):
headers = {"Authorization": f"Bearer {KEY}", "User-Agent": "omniakey-example/1"}
data = None
if body is not None:
headers["Content-Type"] = "application/json"
data = json.dumps(body).encode()
headers.update(extra_headers or {})
req = urllib.request.Request(url, data=data, headers=headers, method=method)
with urllib.request.urlopen(req, timeout=120) as resp:
return json.load(resp)
def poll(url, attempts=5):
for attempt in range(attempts):
try:
return request("GET", url)
except urllib.error.HTTPError as err:
if err.code < 500 or attempt == attempts - 1:
raise
except urllib.error.URLError:
if attempt == attempts - 1:
raise
time.sleep(5 * (attempt + 1))
def text_to_video(prompt, out_path, duration=5, mode="std", aspect_ratio="16:9"):
body = {
"model": "kling-3.0",
"type": "video",
"operation": "text_to_video",
"input": {"prompt": prompt},
"parameters": {"duration": duration, "mode": mode, "aspect_ratio": aspect_ratio},
}
task = request("POST", API, body, {"Idempotency-Key": str(uuid.uuid4())})["id"]
print("task", task, flush=True)
for _ in range(180):
time.sleep(5)
state = poll(f"{API}/{task}")
if state["status"] not in ("queued", "processing"):
break
if state["status"] != "succeeded":
raise RuntimeError(state.get("error") or state["status"])
asset_url = state["assets"][0]["url"] # imzalı bağlantı kısa ömürlü, hemen indirin
req = urllib.request.Request(asset_url, headers={"User-Agent": "omniakey-example/1"})
with urllib.request.urlopen(req, timeout=300) as resp, open(out_path, "wb") as f:
f.write(resp.read())
return task
if __name__ == "__main__":
task = text_to_video(
"A paper boat drifts slowly down a rain-soaked street at dusk. Warm streetlights reflect on "
"the wet cobblestones. The camera follows the boat at a steady pace. No people, no text.",
"paper-boat.mp4",
)
print("done", task)
Her sorgu görev adresine bir GET'tir ve döngü progress.percent yerine status alanını izler; yüzde, klip işlenirken 0'da kalabilir. Durum queued ve processing dışına çıktığında kod durur: succeeded indirmeye assets[0].url üzerinden geçer, başka her durum görevin kendi hata mesajını fırlatır. İndirme hemen yapılmalı çünkü dosya bağlantısı kısa ömürlüdür; süresi dolduğunda görevi yeniden sorgulayıp yeni bir bağlantı alın. Görev kaydı 24 saat tutulduğu için kimliği bu süre içinde yeniden sorgulayabilirsiniz. Bağlantı kopması veya sunucu hatası (5xx) alan bir sorgu beş kez denenir ve her denemede bekleme uzar.
Bu dosyayı 29 Ekim 2026'da aynı ayarlarla bir kez daha çalıştırdık. İlk deneme sorgulama sırasında bağlantıyı kaybetti, bu yüzden sorgulama artık yeniden deniyor. İkinci çalıştırma task_PNB1kPopriUyfcHsXhVWY2hBOEoSUIqM görevini döndürdü; MP4'ü 1280×720'de 5.04 saniye ve stereo AAC parça olarak ölçüldü. Oluşturmadan indirmeye 807 saniye geçti; aşağıdaki iki klip için bu süre 82.2 ve 110.7 saniyeydi, yani uzun beklemelere yer açın.
Ürettiğimiz iki klip
İki istek de 29 Ekim 2026'da yukarıdaki gövdeyle gönderildi. Kâğıt kayık görevi task_cbOtsBxO75cml3nOmVUu9YG3PkYXW2ja, çaydanlık görevi task_M2Ub1EoCaCUa1FjOZDdWDOuEOS9nRjnt. Her prompt tam yazıldığı gibi gönderildi. Görev kimliklerini sorun gidermek için saklayabilirsiniz.
Kâğıt kayık
A paper boat drifts slowly down a rain-soaked street at dusk. Warm streetlights reflect on the wet cobblestones. The camera follows the boat at a steady pace. No people, no text.

Çaydanlık
A ceramic teapot sits on a wooden table by a window. Steam rises in slow curls. Soft morning light moves across the table. The camera pushes in slowly. No people, no text.

Dosyalar ne ölçtü
Bir klip aracı her indirmeyi 29 Ekim 2026'da ölçtü. Ölçüm, indirilen dosyaların kendisinde yapıldı.
- Kâğıt kayık — Boyut: 1280×720; Kare hızı: 24.0 fps; Süre: 5.04 s; Ses: AAC, 2 kanal, 44.1 kHz; Ortalama seviye: −50.9 dB; En yüksek seviye: −34.0 dB; Kesme: yok
- Çaydanlık — Boyut: 1280×720; Kare hızı: 24.0 fps; Süre: 5.04 s; Ses: AAC, 2 kanal, 44.1 kHz; Ortalama seviye: −54.3 dB; En yüksek seviye: −35.9 dB; Kesme: yok
- Koddan çıkan klip — Boyut: 1280×720; Kare hızı: 24.0 fps; Süre: 5.04 s; Ses: AAC, 2 kanal, 44.1 kHz; Ortalama seviye: −48.4 dB; En yüksek seviye: −20.0 dB; Kesme: yok
İlk iki klip çok sessiz: ortalama seviyeler −50.9 dB ve −54.3 dB, tepe değerler −34.0 dB ve −35.9 dB. Koddan çıkan klip daha yüksek: ortalama −48.4 dB, tepe −20.0 dB. Yalnızca seviyeyi ölçtük; parçaların içeriği ölçümün dışında kaldı. Kesme algılayıcısı üçünün hiçbirinde güçlü ya da zayıf kesme bulmadı, yani her klip tek planda akıyor. Üçünün boyutu, kare hızı ve süresi aynı; karşılaştırırken dönüştürmeniz gerekmiyor. Üç dosya da aynı ses biçimiyle kodlanmış.
Kareler ne gösteriyor
İki klip de prompta uyuyor; çaydanlık klibi kendi eklediği küçük bir hareketle ayrılıyor.
Kâğıt kayık klibinde kayık 5.04 saniye boyunca karenin ortasına yakın duruyor, ıslak sokak arkasından kayıp geçiyor; bu yüzden çekim, kayığı izleyen bir kamera gibi okunuyor. Sıcak sokak lambası yansımaları son kareye kadar taşlarda kalıyor (kareler 29 Ekim 2026'da kontrol edildi). Takibi hiçbir kesme bozmuyor.
Çaydanlık klibinde buhar yavaş kıvrımlarla yükselip dağılıyor, sabah ışığı ahşap masanın üzerinde ilerliyor. Çaydanlık son karede daha büyük ve başlangıca göre sağ alt köşeye daha yakın; bu, hafif yana kaymayla birlikte bir yakınlaşma gibi okunuyor. Prompt yavaş bir yakınlaşma istemişti, yana kayma ise promptun istemediği bir şey (kareler 29 Ekim 2026'da kontrol edildi).

Hatalar ve sınırlar
5, 10 ve 15 dışında bir süre HTTP 400 model_price_error döndürür ve hiçbir iş oluşturulmaz (video API belgeleri, 29 Ekim 2026'da kontrol edildi). Bu üç değerden tam saniye gönderin.
Idempotency-Key olmadan gönderilen oluşturma isteği 400 missing_idempotency_key döndürür; anahtar 255 karaktere kadar olabilir. Aynı anahtar ve aynı gövde mevcut görevi HTTP 200 ile döndürür ve yeniden ücret alınmaz; aynı anahtarla değişmiş bir gövde ise 409 idempotency_key_reused verir (medya API genel bakışı, 29 Ekim 2026'da kontrol edildi). İki 400 de görev oluşturulurken dönüyor; gövdeyi düzeltip yeniden gönderin.
29 Ekim 2026'da Python'un varsayılan urllib User-Agent'ı ile gönderilen bir POST, Cloudflare'den HTTP 403 ve error code: 1010 gövdesini döndürdü; kendi User-Agent başlığımızla istek API'ye ulaştı. Hem oluşturma isteğinde hem indirmede bir User-Agent ayarlayın.
Çıktı bağlantıları kısa ömürlüdür: birini saklamak yerine yeni bir assets[].url için görevi yeniden sorgulayın (video API belgeleri, 29 Ekim 2026'da kontrol edildi). Görev kayıtları oluşturmadan sonra 24 saat saklanır (medya API genel bakışı, 29 Ekim 2026'da kontrol edildi).
Kling 3.0 saniye başına değil, üretim başına ücretlendirilir (video API belgeleri, 29 Ekim 2026'da kontrol edildi). Güncel ücretler için OmniaKey fiyatlandırma sayfasına bakın.
Sık sorulan sorular
kling-3.0 hangi süreleri kabul ediyor?
5, 10 ve 15 saniye. Başka her değer HTTP 400 model_price_error döndürür ve görev oluşturmaz (video API belgeleri, 29 Ekim 2026'da kontrol edildi).
std ile pro arasındaki fark ne?
Model sayfası ikisini Standard ve Pro olarak adlandırıyor ve standard çıktıyı 720P, pro çıktıyı 1080P ile eşleştiriyor (29 Ekim 2026'da kontrol edildi). Yalnızca std çalıştırdık, bu yüzden ikisi arasında ölçülmüş bir farkımız yok.
Kliplerde ses var mı?
Her klip 44.1 kHz'de iki kanallı bir AAC parça taşıyor. İlk ikisi çok sessiz, ortalama seviyeler −50.9 dB ve −54.3 dB; koddan çıkan klip daha yüksek, ortalama −48.4 dB ve tepe −20.0 dB. Yalnızca seviyeyi ölçtük, parçaların içeriğini tanımlamadık.
Bir klibe görselden başlayabilir miyim?
Model sayfası, ilk kare ve isteğe bağlı son kare ile görselden video özelliğini listeliyor (29 Ekim 2026'da kontrol edildi). İlk kare en-boy oranını belirler ve bu işlemde açıkça verilen oran reddedilir.
Bir klip ne kadar sürede oluşuyor?
29 Ekim 2026'daki iki çalıştırmamızda kâğıt kayık 110.7 saniyede, çaydanlık 82.2 saniyede tamamlandı. İkisi de 16:9'da 5 saniyelik std kliplerdi.
Kling 3.0 model sayfasından başlayın ve aynı gövdeyi kendi promptunuzla gönderin.
Bu makaledeki modeller
İlgili makaleler
Kling 3.0 prompt rehberi: yapı, örnekler ve gerçek klipler
Dört prompt, dört gerçek klip: kesmeler nerede düştü, hangi diyalog geçti ve kamera nerede neredeyse hiç hareket etmedi.
Kling 3.0 vs Seedance 2.5
İki model de OmniaKey üzerinde yayında ve aynı planı karşılayabiliyor. Fark faturalama sözleşmesinde: biri mode ve duration matrisinden üretim başına bir kez ücretlendiriyor, diğeri çıktı saniyesi ile çözünürlüğü çarpıyor ve referans tabanlı bir planı yalnızca biri kabul ediyor.
HappyHorse 1.1 vs Kling 3.0: aynı prompt ile test ve fiyat
Aynı üç istem: HappyHorse 1.1 kalabalık sahneyi ve parfüm dönüşünü kazandı, Kling 3.0 hareketi tam yaptı.

