how-tos

Kling 4.0 API Rehberi: Python ve cURL ile İlk Videonuzu Oluşturun

PoYo Team
5 min read
Share:

Film projektörüne film takan bir makinist, editoryal illüstrasyon

PoYo üzerindeki Kling 4.0 API, metinden videoya, ilk/son kare üretimi, görsel referanslar ve video düzenleme için tek bir model kimliği kullanır: kling-4.0. Bir istek gönderin, görev kimliğini saklayın ve görev tamamlanana kadar durumu yoklayın. Bu rehber, PoYo'nun 24 Ekim 2026'da kontrol edilen güncel şemasını esas alır; başka bir sağlayıcının alan adları bununla birebir değiştirilemez.

Girdileri görsel olarak denemek için Kling 4.0 deneme alanını açın veya API belgelerine göz atın.

cURL ile ilk videoyu oluşturun

Kabuk ortamınızda POYO_API_KEY değişkenini tanımlayın, ardından bu beş saniyelik isteği gönderin. Kimlik bilgisini tarayıcı kodunda değil, sunucunuzda tutun.

curl --fail-with-body https://api.poyo.ai/api/generate/submit \
  -H "Authorization: Bearer $POYO_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "kling-4.0",
    "input": {
      "prompt": "A paper boat floats beneath a stone bridge. One continuous low tracking shot, soft morning light, gentle water sounds, no speech or on-screen text.",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "16:9"
    }
  }'

JSON yanıtından data.task_id değerini okuyun; başarılı bir gönderim, videonun tamamlandığı anlamına gelmez. Aşağıdaki YOUR_TASK_ID ifadesini bu değerle değiştirin:

curl --fail-with-body \
  https://api.poyo.ai/api/generate/status/YOUR_TASK_ID \
  -H "Authorization: Bearer $POYO_API_KEY"

Belgelenen durumlar not_started, running, finished ve failed şeklindedir. Görev tamamlandığında video file_url değeri için data.files alanını inceleyin. Hata durumunda error_message alanına bakın ve teşhis için görev kimliğini saklayın. Mevcut bir görevi yoklamak için onu yeniden göndermeniz gerekmez.

Süre sınırlı bir Python yoklama döngüsü

requests paketini kurun ve bu kodu arka uçta çalıştırın. Kod hem HTTP hem de uygulama hatalarını kontrol eder, başarısız bir görevde durur ve bekleme süresini 30 dakikayla sınırlar. Zaman aşımı, aynı görevi daha sonra yeniden kontrol etmeniz gerektiği anlamına gelir; gönderimi otomatik olarak tekrarlamak, faturalandırılan ikinci bir iş oluşturabilir.

import os
import time
import requests

base = "https://api.poyo.ai"
session = requests.Session()
session.headers["Authorization"] = "Bearer " + os.environ["POYO_API_KEY"]

def checked(response):
    response.raise_for_status()
    body = response.json()
    if body.get("code") not in (0, 200):
        raise RuntimeError(body.get("message") or "PoYo API error")
    return body["data"]

task = checked(session.post(base + "/api/generate/submit", json={
    "model": "kling-4.0",
    "input": {
        "prompt": "A paper boat floats beneath a stone bridge. Slow tracking shot.",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9",
    },
}, timeout=60))
task_id = task["task_id"]
print("Task:", task_id, flush=True)
deadline = time.monotonic() + 1800
while time.monotonic() < deadline:
    task = checked(session.get(
        base + "/api/generate/status/" + task_id, timeout=60))
    if task["status"] == "failed":
        raise RuntimeError(task.get("error_message") or "Generation failed")
    if task["status"] == "finished":
        videos = [f["file_url"] for f in task.get("files", [])
                  if f.get("file_type") == "video"]
        if not videos:
            raise RuntimeError("Finished task returned no video")
        print(videos[0])
        break
    time.sleep(10)
else:
    raise TimeoutError("Check the saved task ID again: " + task_id)

Doğru girdi modunu seçin

Amaçinput içindeki alanlarÖnemli kısıt
Metinden videoyaprompt veya multi_promptYalnızca birini sağlayın
İlk/son karelerSıralı bir veya iki URL içeren image_urlsaspect_ratio alanını göndermeyin
Referansla üretimreference_image_urls, reference_video_urls veya kling_elementsEn fazla bir isteğe bağlı ilk kare
Görüntü düzenlemevideo_url ve promptimage_urls, multi_prompt, reference_video_urls veya aspect_ratio kullanılmaz

Kaynak video alanı, referans görseller de mevcut olsa bile düzenleme modunu seçer. Görselden videoya üretimde ilk görsel başlangıç karesini belirler; ikinci görsel ise bitiş karesini tanımlar. Referans görseller kimliğe veya stile yön verir ve sınır kareleriyle aynı anlama gelmez.

Göndermeden önce doğrulanması gereken limitler

Üretim, 720p veya 1080p çözünürlükte 3 ila 30 saniye arasındaki tam sayı sürelerini destekler. Bu PoYo şemasında normal bir istem 26.000 karakterle sınırlıdır. Her multi_prompt çekimi en fazla 512 karakter kabul eder; çekim süresi belirtilmezse varsayılan olarak beş saniye kullanılır. Çekim sürelerinin toplamı 3–30 saniye olmalıdır ve açıkça belirtilen üst düzey süre bu toplama eşit olmalıdır.

Referanslar en fazla 10 görsel, beş video ve yedi özneye izin verir; tümü birlikte 15 varlık sınırını aşamaz. İlk kare hem görsel hem de genel sınıra dahil edilir. Her referans veya özne videosu 3–30 saniye olmalıdır; bunların toplam gerçek süresi 30 saniyeyi geçemez. Fazla büyük bir girdiyi doğrulamadan geçirmek için süreleri aşağı yuvarlamayın.

İlk faturayı anlayın

Video girdisi olmayan beş saniyelik 720p bir istek 142,5 kredi, yani mevcut listelenen dönüşüm oranıyla $0.7125 tutar. Video girdisi hem ücret oranını hem de faturalandırılan süreyi değiştirir. Referans videolu veya düzenleme iş akışlarını tahmin etmeden önce fiyatlandırma örneklerine bakın.

Resmi içerik üretici ürünü, birden fazla anahtar kare dahil ek kontroller sunduğunu belirtir. PoYo'nun buradaki şeması en fazla iki sınır karesi ve çekim başına istemler sağlar; bu uç noktaya uydurma keyframes, seed, negative_prompt veya generate_audio alanları göndermeyin. Çalışan örnekler için istem rehberine ve Omni Reference eğitimine geçin.

Sıkça sorulan sorular

API model kimliği kling-4-0 mı? Hayır. Bu, sayfanın slug değeridir. İstekte kullanılan model kimliği kling-4.0'dır.

Burada 4K isteyebilir miyim? Bu PoYo uç noktası şu anda yalnızca 720p ve 1080p kabul eder. İçerik üretici uygulamasının pazarlama özelliklerini kopyalamak yerine sağlayıcı şemasını kontrol edin.

Geri çağırma (callback) kullanabilir miyim? Gönderim isteği üst düzey bir callback_url alanını destekler. Geri çağırma işleme için güncel belgelere başvurun; yukarıdaki yoklama örneği buna bağlı değildir.

Nereden başlamalıyım? Önce kısa, yalnızca metin içeren bir istek kullanın, görev kimliğini ve sonucunu kaydedin, ardından deneme alanında her seferinde bir girdi türü ekleyin.

Share: