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.aiAuthorization: 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_type | string | text-to-video | text-to-video | image-to-video | reference-to-video |
input.prompt | string | — | עד 8000 תווים. השדה אופציונלי רק ביצירה מתמונה. יש למספר הפניות לפי סוג וסדר במערך, החל מ־@Image1, @Video1 ו־@Audio1. |
input.duration | integer | 5 | 3–30 s |
input.resolution | string | 720p | 720p | 1080p |
input.aspect_ratio | string | לפי מצב היצירה | ערכים נתמכים auto16:99:161:121:9יחס קבוע קובע את צורת הפלט. כשהשדה מושמט או מוגדר כ־auto, מצב טקסט משתמש ביחס 16:9 ומצב תמונה משתמש ביחס של הפריים הראשון. במצב ייחוס היחס נקבע לפי תמונות או סרטוני הייחוס. |
input.image_urls | string[] | [] | ביצירה מתמונה יש לספק את הפריים הראשון ואחריו, לפי הצורך, את האחרון. מצב הייחוס תומך בעד 10 תמונות. |
input.keyframe_urls | string[] | [] | פריימים ביניים לפי סדר ההקרנה ביצירה מתמונה. עד 9 ללא פריים סיום או 8 עם פריים סיום. |
input.video_urls | string[] | [] | למצב ייחוס בלבד. יש לספק כתובות HTTPS לסרטונים שישמשו דוגמה לפעולה או לתנועת המצלמה. עד 5 קטעים, כל אחד באורך 2 עד 30 שניות, ובסך הכול עד 30 שניות. |
input.audio_urls | string[] | [] | למצב ייחוס בלבד. יש לספק כתובות HTTPS לקטעי שמע שישמשו דוגמה לקול או לצליל שייווצר. עד 3 קטעים באורך 5 עד 30 שניות כל אחד. |
input.keep_original_sound | boolean | false | כאשר video_urls מכיל סרטון ייחוס, true שומר את השמע המקורי ו־false (ברירת המחדל) יוצר שמע חדש. ללא סרטון ייחוס ההגדרה אינה משפיעה. |
תגובת יצירה
קוד HTTP 200 מחזיר taskId (מחרוזת) ו-credits (מספר). תגובה זו מאשרת את יצירת המשימה, אך לא את השלמתה. הסכום המוצג להלן תואם למדריך המהיר של 5 שניות ב-720p.
{
"taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"credits": 65
}מצבי יצירה ודוגמאות
טקסט לווידאו
יצירה מתוך הנחיית טקסט. כתובות 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. |
| שדה | סוג | תיאור ומגבלות |
|---|---|---|
id | string | מזהה המשימה. זהו ה-taskId שהתקבל בתגובת היצירה. |
created_at | number | זמן יצירת המשימה בפורמט Unix timestamp (שניות). |
model | string | מזהה הדגם הציבורי ששימש למשימה זו. |
billing_status | string | סטטוס חיוב: reserved (שמור), charged (חויב), refunded (זוכה) או refund_failed (הזיכוי נכשל). |
credits | number | הקרדיטים שנשמרו עבור משימה זו. ערך זה נשמר גם לאחר זיכוי; יש לבדוק את billing_status כדי לקבוע את תוצאת החיוב הסופית. |
failed_reason | string | null | סיבת הכישלון במשימות שנכשלו; אחרת הערך הוא null. תגובות של שאילתות שנכשלו אינן כוללות את השדה data. |
data | object | קיים בשאילתות של משימות שלא נכשלו. מכיל פרטי פלט ועיבוד. |
data.results | string[] | מערך כתובות URL של הסרטון. ריק עד להשלמת המשימה או לאחר פקיעת תוקף הסרטון. |
data.video_expires_at | string | null | מועד פקיעת התוקף של הסרטון בפורמט ISO 8601, או null לפני שהסרטון זמין. שמרו את התוצאה לפני מועד זה. |
data.last_frame_url | string | null | כתובת ה-URL של הפריים האחרון כאשר התבקש וזמין, אחרת null. |
data.processing_time | number | 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 קובצי עזר בסך הכל