KozeKoze
กลับไปยังบล็อก
บทช่วยสอน2026年6月28日·管理员

เอกสารประกอบการเรียกใช้ API สำหรับการสร้างวิดีโอ

Kozeai มีอินเทอร์เฟซสำหรับการสร้างวิดีโอที่ใช้งานร่วมกับ OpenAI Sora ได้ โดยใช้โหมดงานแบบอะซิงโครนัส: ขั้นแรกให้ส่งงานเพื่อรับ `task_id` จากนั้นตรวจสอบสถานะของงาน และดาวน์โหลดเนื้อหาวิดีโอเมื่อเสร็จสมบูรณ์

เอกสารประกอบการเรียกใช้ API สำหรับการสร้างวิดีโอ

kozeai มีอินเทอร์เฟซสำหรับการสร้างวิดีโอที่เข้ากันได้กับ OpenAI Sora โดยใช้โหมด **งานแบบอะซิงโครนัส**: ขั้นแรกให้ส่งงานเพื่อรับ `task_id` จากนั้นตรวจสอบสถานะของงาน และดาวน์โหลดเนื้อหาวิดีโอเมื่อเสร็จสมบูรณ์

การตรวจสอบสิทธิ์

คำขอทั้งหมดจะได้รับการตรวจสอบสิทธิ์โดยใช้ `Authorization: Bearer `

ใช้โค้ดนี้หลังจากสร้างโทเค็น API ในคอนโซลแล้ว

export KOZEAI_API_KEY="sk-your-token"
export KOZEAI_BASE_URL="https://api.kozeai.com"

อินเทอร์เฟซ ภาพรวม

<ตาราง> <หัวข้อ> วิธีการ เส้นทาง วัตถุประสงค์ <เนื้อหา> POST /v1/videos/generations สร้างงานวิดีโอ GET /v1/videos/{task_id} สอบถามสถานะงาน GET /v1/videos/{task_id}/content เล่นออนไลน์หรือดาวน์โหลด mp4

รหัสงานในรูปแบบ task_12345 ที่ส่งคืนโดยอินเทอร์เฟซการส่งงาน เป็นของผู้ใช้ปัจจุบันเท่านั้น


1. สร้างงานวิดีโอ

curl "$KOZEAI_BASE_URL/v1/videos/generations" \
-H "Authorization: Bearer $KOZEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "video-ds-2.0",
"prompt": "วิดีโอแบบภาพยนตร์ความยาว 9:16 นาที แสดงภาพแมววิ่งท่ามกลางแสงแดดอบอุ่น",
"วินาที": 15,
"อัตราส่วนภาพ": "9:16"
}'

พารามิเตอร์คำขอ

พารามิเตอร์ ประเภท จำเป็น คำอธิบาย
model string ใช่ ชื่อโมเดลวิดีโอ เช่น video-ds-2.0
prompt string ใช่ คำอธิบายเนื้อหาวิดีโอ
วินาที จำนวนเต็ม ไม่ใช่ ระยะเวลาของวิดีโอ (วินาที) ขึ้นอยู่กับช่วงการรองรับของโมเดลต้นทาง
อัตราส่วนภาพ สตริง ไม่ใช่ อัตราส่วนภาพ ที่ใช้กันทั่วไป 9:16, 16:9, 1:1
รูปภาพ อาร์เรย์ ไม่ใช่ URL ของรูปภาพอ้างอิงหรือ base64
วิดีโอ อาร์เรย์ ไม่ใช่ URL วิดีโออ้างอิง
เสียง อาร์เรย์ ไม่ใช่ URL เสียงอ้างอิง

โมเดลต้นทางที่แตกต่างกันอาจรองรับพารามิเตอร์ที่แตกต่างกัน

พารามิเตอร์ที่ไม่ได้ระบุไว้จะถูกส่งผ่านตามโปรโตคอลต้นทาง

วิดีโอที่สร้างจากรูปภาพ (พร้อมรูปภาพอ้างอิง)

ส่งอาร์เรย์ images เพื่อสร้างวิดีโอโดยอิงจากรูปภาพอ้างอิง:

curl "$KOZEAI_BASE_URL/v1/videos/generations" \

-H "Authorization: Bearer $KOZEAI_API_KEY" \

-H "Content-Type: application/json" \

-d '{

"model": "video-ds-2.0",
"prompt": "ใช้สไตล์ภาพอ้างอิงและสร้างวิดีโอผลิตภัณฑ์ที่ราบรื่น",
"seconds": 15,
"aspect_ratio": "9:16",
"images": ["https://example.com/input.png"],
"videos": ["https://example.com/input.mp4"],
"audios": ["https://example.com/input.mp3"]
}'
  • images รองรับ URL รูปภาพหรือ base64
  • videos / audios เป็นเอกสารอ้างอิงเพิ่มเติม
  • เมื่อโทรผ่านอินเทอร์เฟซการเติมข้อความอัตโนมัติในแชท (ดูท้ายบทความ) เพียงแนบรูปภาพไปกับข้อความ ระบบจะแปลงเป็นพารามิเตอร์ images โดยอัตโนมัติ

การตอบกลับ (การส่งสำเร็จ)

{
"id": "task_12345",
"task_id": "task_12345",
"object": "video",
"model": "video-ds-2.0",
"status": "queued",
"progress": 0,
"created_at": 

}

status ค่า: queued (อยู่ในคิว), in_progress (กำลังดำเนินการ), completed (เสร็จสมบูรณ์), failed (ล้มเหลว)


2. สถานะงานสำรวจ

ใช้ id ที่ส่งคืนโดยการส่งเพื่อสำรวจ โดยแนะนำให้มีช่วงเวลา 3-5 วินาที

curl "$KOZEAI_BASE_URL/v1/videos/task_12345" \
-H "Authorization: Bearer $KOZEAI_API_KEY"

การตอบสนอง (กำลังสร้าง)

{
"id": "task_12345",
"object": "video",
"model": "video-ds-2.0",
"status": "in_progress",
"progress": 45,
"created_at": 1751000000
}

Response (Complete)

{
"id": "task_12345",
"object": "video",
"model": "video-ds-2.0",
"status": "completed",
"progress": 100,
"created_at": 1751000000,

หลังจากเสร็จสิ้น `metadata.content_url` จะให้ที่อยู่ของวิดีโอที่สามารถเข้าถึงได้โดยตรง นอกจากนี้ยังสามารถดาวน์โหลดได้โดยใช้ส่วนติดต่อเนื้อหาด้านล่าง

การตอบสนอง (ล้มเหลว)

{
"id": "task_12345",
"object": "video",
"status": "failed",
"error": { "message": "Failure reason" }
}

3. ดาวน์โหลดเนื้อหาวิดีโอ

curl -L "$KOZEAI_BASE_URL/v1/videos/task_12345/content" \
-H "Authorization: Bearer $KOZEAI_API_KEY" \
-o result.mp4

  • ส่งคืนรหัส 409 Conflict หากงานไม่เสร็จสมบูรณ์ (ยังอยู่ในคิว/กำลังสร้าง)
  • รองรับการดาวน์โหลดแบบแบ่งส่วน/การเล่นแบบลากและวางโดยใช้ส่วนหัวคำขอ
  • ส่งคืน

ตัวอย่างแบบเต็ม

JavaScript (fetch + polling)

const BASE = process.env.KOZEAI_BASE_URL;
const KEY = process.env.KOZEAI_API_KEY;
const headers = { Authorization: `Bearer ${KEY}` };

// 1. ส่งงาน
const submit = await fetch(`${BASE}/v1/videos/generations`, {
method: 'POST',
headers: { ...headers, 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'video-ds-2.0',
prompt: 'วิดีโอโฆษณาที่ราบรื่นของขวดน้ำหอมบนกระจก',
seconds: 15,
aspect_ratio: '9:16',

}),
});
const task = await submit.json();
const taskId = task.id;

// 2. โพลล์จนกว่าจะเสร็จสมบูรณ์
async function poll() {
while (true) {
const res = await fetch(`${BASE}/v1/videos/${taskId}`, { headers });

const data = await res.json();
if (data.status === 'completed') return data;
if (data.status === 'failed') throw new Error(data.error?.message || 'failed');
await new Promise((r) => setTimeout(r, 5000));

}
}
const done = await poll();

// 3. รับที่อยู่ของวิดีโอ
console.log('ที่อยู่ของวิดีโอ:', done.metadata?.content_url
|| `${BASE}/v1/videos/${taskId}/content`);

Python (requests + polling)

import os, time, requests

BASE = os.environ["KOZEAI_BASE_URL"]
KEY = os.environ["KOZEAI_API_KEY"]
headers = {"Authorization": f"Bearer {KEY}"}

# 1. ส่งงาน
resp = requests.post(

f"{BASE}/v1/videos/generations",
headers=headers,
json={
"model": "video-ds-2.0",
"prompt": "วิดีโอภาพยนตร์ความยาว 9:16 นาทีของแมววิ่งผ่านน้ำอุ่น แสงแดด",
"วินาที": 15,
"อัตราส่วนภาพ": "9:16",
},
)
task_id = resp.json()["id"]

# 2. การสำรวจ
ในขณะที่เป็นจริง:
data = requests.get(f"{BASE}/v1/videos/{task_id}", headers=headers).json()
if data["status"] == "completed":
break
if data["status"] == "failed":
raise RuntimeError(data.get("error", {}).get("message", "failed"))
time.sleep(5)

# 3. ดาวน์โหลด
mp4 = requests.get(f"{BASE}/v1/videos/{task_id}/content", headers=headers)
with open("result.mp4", "wb") as f: f.write(mp4.content)


เรียกใช้ในอินเทอร์เฟซการเสร็จสิ้นการแชท (การใช้งานที่เข้ากันได้)

สามารถเรียกใช้โมเดลวิดีโอผ่าน /v1/chat/completions ได้เช่นกัน ซึ่งช่วยให้สามารถนำไคลเอนต์แชทกลับมาใช้ใหม่ได้

เมื่อทำการร้องขอ เพียงแค่ส่งชื่อโมเดลวิดีโอใน `model` และระบบจะแปลงเป็นงานวิดีโอโดยอัตโนมัติ:
curl $KOZEAI_BASE_URL/v1/chat/completions

\ -H Authorization: Bearer $KOZEAI_API_KEY \ -H Content-Type: application/json \ -d { Model: } `

ส่งคืน "video-ds-2.0

, "messages: [{"role: "user, "content: "a cat running in the sunlight, cinematic, 9:16}] }

ส่งคืนสถานะการเสร็จสิ้นการแชท

รูปแบบคือ `message.content` ซึ่งประกอบด้วยสถานะของงานและลิงก์ `/v1/videos/{task_id}` ลิงก์นี้จะเล่นวิดีโอเมื่อเสร็จสิ้น หน้าล็อบบี้แชทใช้เมธอดนี้

ทั้งสองจุดเข้าใช้งาน (/v1/videos/generations และ /v1/chat/completions) ใช้ระบบงานเดียวกันและไม่ขัดแย้งกัน สำหรับการเข้าถึงโดยตรง สำหรับการผสานรวม ขอแนะนำให้ใช้อินเทอร์เฟซมาตรฐาน `/v1/videos/*`


รหัสข้อผิดพลาด

รหัสสถานะ ความหมาย
401 โทเค็นหายไป หมดอายุ หรือไม่ถูกต้อง
403 ยอดเงินคงเหลือไม่เพียงพอ หรือกลุ่มปัจจุบันไม่มีสิทธิ์สำหรับโมเดลนี้
404 รหัสงาน ไม่มีอยู่ หรือไม่เกี่ยวข้อง สำหรับผู้ใช้ปัจจุบัน หรือโมเดลยังไม่ได้กำหนดค่า
409 เนื้อหาวิดีโอไม่พร้อม (งานยังอยู่ในคิว/กำลังสร้าง)
429 กำลังเรียกใช้ขีดจำกัดอัตรา
502 ซัพพลายเออร์ต้นทางล้มเหลวหรือส่งผลลัพธ์ที่ไม่ถูกต้อง

เอกสารประกอบการเรียกใช้ API สำหรับการสร้างวิดีโอ | Koze AI