דילוג לתיעוד
בעמוד זה

Kling 4.0

צרו סרטונים עם Kling 4.0 באמצעות טקסט, פריים ראשון ואחרון, או קלטי התייחסות רב-מודאליים. עמוד זה מכסה את תהליך העבודה המלא מקבלת הבקשה ועד לקבלת התוצאה עבור דגם זה.

מזהה דגם ב-API: kling-4-0

תהליך היצירה הוא אסינכרוני. שמרו את ה-taskId שמוחזר בעת יצירת המשימה, ולאחר מכן בדקו את הסטטוס שלה או קבלו עדכון באמצעות Webhook.

יכולות

תכונהערכים נתמכים
רזולוציית פלט720p · 1080p
אורך הפלט3–30 s
יחס גובה-רוחבauto, 16:9, 9:16, 1:1, 21:9
תמונות התייחסותעד 10 תמונות
סרטוני התייחסותעד 5 סרטונים
קובצי אודיו להתייחסותעד 3 קובצי שמע
כל קלטי ההתייחסות יחדעד 15 קובצי עזר בסך הכל
סרטוני התייחסות (Σ)30 שניות
seedלא נתמך

תמחור וקרדיטים

החיוב על יצירת סרטונים מתבצע בנקודות זכות (credits) בהתאם למשך הזמן לחיוב בשניות. ללא סרטון קלט, המשך לחיוב הוא אורך סרטון הפלט; עם סרטון קלט, החיוב כולל גם את אורך סרטון הייחוס.

הטבלה שלהלן מציגה את נקודות הזכות לחיוב בשנייה, ולא את העלות הכוללת של המשימה. התעריף נקבע לפי הדגם, רזולוציית הפלט, והאם סופקו סרטוני ייחוס במצב Reference-to-Video. לחישוב העלות הכוללת, עיין בנוסחאות ובדוגמאות שמתחת לטבלה.

רזולוציית פלטללא קלט וידאועם קלט וידאו
720p‏13 קרדיטים לשנייה‏8 קרדיטים לשנייה
1080p‏20 קרדיטים לשנייה‏13 קרדיטים לשנייה
  • ללא קלט וידאו: שניות פלט × תעריף ללא וידאו.
  • כשיש קלט וידאו, T הוא משך כל סרטוני הייחוס בשניות כפי שמדד השרת. מעגלים כלפי מעלה את מספר הקרדיטים הסופי. ceil((duration + max(duration, T)) × rate)
  • התייחסויות המבוססות על תמונה או אודיו בלבד מחושבות לפי תעריף 'ללא וידאו'. תעריף החיוב עבור סרטון התייחסות חל רק במצב reference-to-video כאשר מסופקים סרטוני התייחסות.

דוגמאות לחישוב עלויות

יצירת טקסט לווידאו באורך 5 שניות ברזולוציית 720p: 5 × 13 = 65 קרדיטים.

פלט באורך 5 שניות ב-720p עם סרטון התייחסות של 5 שניות: (5 + 5) × 8 = 80 קרדיטים.

הקרדיטים נשמרים בעת שליחת הבקשה ומחויבים רק עם הצלחת המשימה. משימות שנכשלו או שהזמן שלהן קצב (timeout) נכנסות לתהליך זיכוי. סטטוס חיוב של refund_failed פירושו שהזיכוי לא הושלם בהצלחה; יש לבדוק את יומני הרישום (logs) של ה-API או לפנות לתמיכה.

אימות

צרו מפתח API בלוח הבקרה. המפתח המלא יוצג פעם אחת בלבד. שמרו אותו בשרת שלכם ושלחו אותו כטוקן Bearer בכל בקשה.

כתובת בסיס (Base URL)

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

הגדירו את משתנה הסביבה SEEVIO_API_KEY לפני הרצת דוגמאות אלו. דוגמאות ה-JavaScript רצות על השרת שלכם באמצעות Node.js; דוגמאות ה-Python משתמשות בחבילת requests.

מדריך מהיר

שלחו בקשה בסיסית זו, שמרו את ה-taskId שמוחזר, והשתמשו בדוגמה לשאילתת משימה המופיעה להלן. ערך הקרדיטים (credits) בתגובת היצירה מייצג את כמות הקרדיטים השמורה עבור המשימה.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "kling-4-0",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video"
  }
}'

דוגמה לתגובת יצירת משימה

לאחר קבלת הבקשה שלעיל, ה-API מחזיר תגובת JSON זו. הפרמטר taskId הוא מזהה המשימה המשמש לשאילתות סטטוס הבאות; הפרמטר credits מייצג את מספר הקרדיטים השמורים עבור משימה זו. תגובה זו מאשרת את יצירת המשימה, ולא שהסרטון מוכן. עליך לבצע פנייה יזומה (polling) לבדיקת סטטוס המשימה או להשתמש ב-Webhook כדי לקבל את תוצאות הסרטון.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 65
}

יצירת משימה

POST https://api.seevio.ai/v1/videos/generations

שלחו אובייקט JSON המכיל model ו-input, בתוספת callback_url אופציונלי. הקפידו תמיד לציין את מזהה המודל (model ID) המוצג בדף זה; השמטת המודל תבחר ב-seedance-2-0 כברירת מחדל.

גוף הבקשה

שדהסוגחובהתיאור ומגבלות
model
stringכן

מזהה דגם. כדי להשתמש ב-Kling 4.0, הגדר שדה זה כ-kling-4-0.

callback_url
stringלא

כתובת HTTPS ציבורית לקבלת קריאות חוזרות (POST callbacks) במקרה של הצלחה או כישלון. שימוש ברשתות פרטיות וב-localhost אינו מותר.

דוגמה: https://example.com/webhooks/seevio
input
objectכן

פרמטרי קלט

פרמטרי קלט

שדהסוגברירת מחדלתיאור ומגבלות
input.generation_typestringtext-to-videotext-to-video | image-to-video | reference-to-video
input.promptstring—עד 8000 תווים. השדה אופציונלי רק ביצירה מתמונה. יש למספר הפניות לפי סוג וסדר במערך, החל מ־@Image1, @Video1 ו־@Audio1.
input.durationinteger53–30 s
input.resolutionstring720p720p | 1080p
input.aspect_ratiostringלפי מצב היצירה
ערכים נתמכיםauto16:99:161:121:9

יחס קבוע קובע את צורת הפלט. כשהשדה מושמט או מוגדר כ־auto, מצב טקסט משתמש ביחס 16:9 ומצב תמונה משתמש ביחס של הפריים הראשון. במצב ייחוס היחס נקבע לפי תמונות או סרטוני הייחוס.

input.image_urlsstring[][]ביצירה מתמונה יש לספק את הפריים הראשון ואחריו, לפי הצורך, את האחרון. מצב הייחוס תומך בעד 10 תמונות.
input.keyframe_urlsstring[][]פריימים ביניים לפי סדר ההקרנה ביצירה מתמונה. עד 9 ללא פריים סיום או 8 עם פריים סיום.
input.video_urlsstring[][]למצב ייחוס בלבד. יש לספק כתובות HTTPS לסרטונים שישמשו דוגמה לפעולה או לתנועת המצלמה. עד 5 קטעים, כל אחד באורך 2 עד 30 שניות, ובסך הכול עד 30 שניות.
input.audio_urlsstring[][]למצב ייחוס בלבד. יש לספק כתובות HTTPS לקטעי שמע שישמשו דוגמה לקול או לצליל שייווצר. עד 3 קטעים באורך 5 עד 30 שניות כל אחד.
input.keep_original_soundbooleanfalseכאשר video_urls מכיל סרטון ייחוס, true שומר את השמע המקורי ו־false (ברירת המחדל) יוצר שמע חדש. ללא סרטון ייחוס ההגדרה אינה משפיעה.

תגובת יצירה

קוד HTTP 200 מחזיר taskId (מחרוזת) ו-credits (מספר). תגובה זו מאשרת את יצירת המשימה, אך לא את השלמתה. הסכום המוצג להלן תואם למדריך המהיר של 5 שניות ב-720p.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 65
}

מצבי יצירה ודוגמאות

החליפו את כתובות ה-URL לדוגמה של example.com בקובצי ה-HTTPS הציבוריים והנגישים שלכם. כתובות ה-URL שבדוגמה נועדו להמחיש את מבנה הבקשה בלבד ואינן זמינות להורדה.

טקסט לווידאו

יצירה מתוך הנחיית טקסט. כתובות URL של מדיה אינן מועברות במצב זה.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "kling-4-0",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video"
  }
}'

פריים ראשון

ספקו תמונה אחת כפריים הראשון, ותארו את התנועה הרצויה בהנחיית הטקסט.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "kling-4-0",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first.jpg"
    ]
  }
}'

פריים ראשון ואחרון

ביצירה מתמונה יש לספק את הפריים הראשון ואחריו, לפי הצורך, את האחרון. מצב הייחוס תומך בעד 10 תמונות.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "kling-4-0",
  "input": {
    "prompt": "",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first.jpg",
      "https://example.com/last.jpg"
    ]
  }
}'

דוגמה לפריימי מפתח: ורד נפתח

יוצרים סרטון בהילוך מהיר של 8 שניות מארבע תמונות שצולמו מאותה זווית. במערך image_urls מציבים ניצן סגור כפריים ראשון וורד פתוח לגמרי כפריים אחרון. במערך keyframe_urls מציבים תחילה עלי כותרת שרק נפתחו ואחר כך פרח פתוח למחצה. הסרטון עובר מהניצן דרך שני שלבי הביניים עד לפריחה מלאה. המערך קובע את סדר התמונות והמודל קובע את התזמון.

החליפו את כתובות ה-URL לדוגמה של example.com בקובצי ה-HTTPS הציבוריים והנגישים שלכם. כתובות ה-URL שבדוגמה נועדו להמחיש את מבנה הבקשה בלבד ואינן זמינות להורדה.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "kling-4-0",
  "input": {
    "prompt": "A time-lapse of a rose opening. Keep the camera still and the light soft as the petals unfold.",
    "duration": 8,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/rose-bud.jpg",
      "https://example.com/rose-full-bloom.jpg"
    ],
    "keyframe_urls": [
      "https://example.com/rose-opening.jpg",
      "https://example.com/rose-half-open.jpg"
    ]
  }
}'

התייחסות רב-מודאלית

שילוב של תמונות, סרטונים וקובצי אודיו להתייחסות. הנחיית הטקסט נשארת שדה חובה. שימוש בסרטון התייחסות משנה את נוסחת החיוב.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "kling-4-0",
  "input": {
    "prompt": "Animate @Image1 with the movement of @Video1 and ambience from @Audio1.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "image_urls": [
      "https://example.com/character.jpg"
    ],
    "video_urls": [
      "https://example.com/motion.mp4"
    ],
    "audio_urls": [
      "https://example.com/surf.mp3"
    ],
    "keep_original_sound": false
  }
}'

שאילתת משימה

GET https://api.seevio.ai/v1/tasks/{taskId}

החליפו את מזהה הדוגמה ב-taskId שהתקבל בעת היצירה. שאילתות יחזירו רק משימות השייכות למשתמש של מפתח ה-API; מזהים שאינם נגישים או שאינם קיימים יחזירו שגיאת HTTP 404.

כנקודת מוצא, בצעו שאילתה (polling) כל 10–20 שניות, הפחיתו את התדירות במקרה של שגיאת HTTP 429, ועצרו כאשר הסטטוס הופך ל-completed או failed. בסביבת פרודקשן מומלץ להשתמש ב-Webhooks. כל דוגמת קוד להלן מבצעת שאילתה אחת בלבד.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
סטטוסתיאור ומגבלות
queuedהתקבל וממתין לעיבוד.
generatingהיצירה מתבצעת כעת.
completedהושלם בהצלחה. יש להוריד את הקבצים מ-data.results לפני מועד פקיעת התוקף.
failedנכשל סופית. יש לבדוק את failed_reason ואת billing_status.
שדהסוגתיאור ומגבלות
idstring
מזהה המשימה. זהו ה-taskId שהתקבל בתגובת היצירה.
created_atnumber
זמן יצירת המשימה בפורמט Unix timestamp (שניות).
modelstring
מזהה הדגם הציבורי ששימש למשימה זו.
billing_statusstring
סטטוס חיוב: reserved (שמור), charged (חויב), refunded (זוכה) או refund_failed (הזיכוי נכשל).
creditsnumber
הקרדיטים שנשמרו עבור משימה זו. ערך זה נשמר גם לאחר זיכוי; יש לבדוק את billing_status כדי לקבוע את תוצאת החיוב הסופית.
failed_reasonstring | null
סיבת הכישלון במשימות שנכשלו; אחרת הערך הוא null. תגובות של שאילתות שנכשלו אינן כוללות את השדה data.
dataobject
קיים בשאילתות של משימות שלא נכשלו. מכיל פרטי פלט ועיבוד.
data.resultsstring[]
מערך כתובות URL של הסרטון. ריק עד להשלמת המשימה או לאחר פקיעת תוקף הסרטון.
data.video_expires_atstring | null
מועד פקיעת התוקף של הסרטון בפורמט ISO 8601, או null לפני שהסרטון זמין. שמרו את התוצאה לפני מועד זה.
data.last_frame_urlstring | null
כתובת ה-URL של הפריים האחרון כאשר התבקש וזמין, אחרת null.
data.processing_timenumber | null
משך עיבוד המשימה בשניות, במידה וזמין. אחרת יוחזר null.

משימה הושלמה: תגובת שאילתה עם תוצאות הווידאו

כאשר השאילתה מחזירה status=completed, יצירת הווידאו הסתיימה. ניתן לקרוא את כתובות ה-URL של הסרטונים מתוך data.results ולהוריד אותם לפני המועד המצוין ב-data.video_expires_at. הסטטוס billing_status=charged מציין כי הקרדיטים השמורים חויבו.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "kling-4-0",
  "is_draft": false,
  "draft_task_id": null,
  "status": "completed",
  "billing_status": "charged",
  "credits": 65,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

משימה נכשלה: תגובת שאילתה עם פרטי השגיאה והחיוב

כאשר השאילתה מחזירה status=failed, תהליך היצירה הסתיים ללא הצלחה. ניתן לראות את סיבת הכישלון ב-failed_reason ואת סטטוס ההחזר ב-billing_status. בדוגמה זו, refunded מציין שהקרדיטים הוחזרו. השדה credits שומר על הערך המקורי שהוזמן, והתגובה אינה כוללת את השדה data.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "kling-4-0",
  "is_draft": false,
  "draft_task_id": null,
  "status": "failed",
  "billing_status": "refunded",
  "credits": 65,
  "failed_reason": "provider_failed"
}

Webhooks

הגדירו callback_url בבקשת היצירה כדי לקבל בקשת POST מסוג JSON כאשר המשימה מסתיימת או נכשלת. החזירו תגובת 2xx בתוך 15 שניות. שליחות שנכשלו ינוסו שוב; טפלו בקבלת שידורים חוזרים בצורה אידמפוטנטית (idempotent) לפי מזהה המשימה.

קצה הקישור החוזר (callback endpoint) שלך חייב לקבל בקשות POST עם גוף בקשה מסוג JSON (Content-Type: application/json).

יצירת משימה עם קריאה חוזרת (Callback)

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "kling-4-0",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video"
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

המשימה הושלמה: נתוני ה-payload של ה-callback שהצליח

כאשר היצירה מצליחה, ה-callback יכיל את הסטטוס status=completed. השתמש ב-id כדי לזהות את המשימה וב-data.results כדי לקבל את כתובות ה-URL של הווידאו. יש להוריד ולשמור את התוצאות לפני הזמן המצוין ב-data.video_expires_at.

השדה created_at מציין את זמן יצירת האירוע ו-task_created_at את זמן יצירת המשימה, בשניות Unix. הדוגמאות מציגות שדות מומלצים; התגובה עשויה לכלול שדות נוספים.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652848,
  "model": "kling-4-0",
  "status": "completed",
  "task_created_at": 1788652800,
  "billing_status": "charged",
  "credits": 65,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

המשימה נכשלה: נתוני ה-payload של ה-callback שנכשל

כאשר היצירה נכשלת, ה-callback יכיל את הסטטוס status=failed. השתמש ב-id כדי לזהות את המשימה, ב-failed_reason כדי לראות את סיבת הכתב וב-credits_refunded כדי לראות את כמות הקרדיטים שזוכתה.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652848,
  "model": "kling-4-0",
  "status": "failed",
  "task_created_at": 1788652800,
  "billing_status": "refunded",
  "credits": 65,
  "failed_reason": "provider_failed",
  "credits_refunded": 65
}

דוגמה לקוד קליטה (Receiver)

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrls = callbackData.data.results;
    // Save the video URLs and mark this task as completed in your application.
    console.log(callbackData.id, videoUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

דוגמה זו ב-Next.js קוראת את גוף ה-JSON של ה-callback ומטפלת ישירות במשימות שהושלמו או נכשלו. מומלץ להוסיף שמירה בבסיס נתונים ומניעת כפילויות של מזהי משימות (task-ID deduplication) באפליקציה שלך; מומלץ להעביר עבודות איטיות לתור (queue) לפני החזרת אישור על קבלת ה-callback.

מגבלות ודרישות מדיה

  • כל כתובות ה-URL של המדיה והקריאות החוזרות חייבות להיות כתובות HTTPS ציבוריות. הימנעו משימוש ב-localhost, כתובות IP פרטיות או קבצים הדורשים עוגיות (cookies) או התחברות. כתובות URL של סרטוני/קובצי אודיו להתייחסות חייבות להוביל ישירות לקובץ המדיה לקריאה.
  • נפח כל סרטון לא יעלה על 100 MB.
  • נפח כל קובץ שמע לא יעלה על 15 MB.
  • עד 15 קובצי עזר בסך הכל