Clips Export API
Gunakan API ini ketika Anda telah membuat tugas AI Clipping atau Find Moments dan ingin merender klip nanti, atau mengekspornya ulang dengan gaya subtitel berbeda, rasio aspek, AI hook, atau pengaturan ekspor lainnya.
project_id harus berupa ID tugas asli yang dikembalikan oleh:
POST /api/v2/clipsPOST /api/v2/clips/find-moments
Kirim Tugas Ekspor
POST https://wayinvideo-api.wayin.ai/api/v2/clips/export
Body Permintaan
| Parameter | Tipe | Wajib | Default | Deskripsi |
|---|---|---|---|---|
project_id | string | Ya | — | ID tugas AI Clipping atau Find Moments asli. |
clip_indices | integer[] | Tidak | null | Indeks klip yang akan diekspor. Jika dihilangkan, sistem mengekspor semua klip dalam proyek. |
target_lang | string | Tidak | null | Bahasa target untuk konten output termasuk subtitel (lihat Bahasa yang Didukung). Jika null, bahasa output mengikuti bahasa tugas sumber. |
resolution | string | Tidak | SD_480 | Resolusi output: SD_480, HD_720, FHD_1080, QHD_2K, UHD_4K. |
enable_caption | boolean | Tidak | false | Apakah akan menambahkan Animated Caption saat rendering. Jika true, caption_display dan cc_style_tpl berlaku; jika false, ekspor tidak memiliki Animated Caption. |
caption_display | string | Tidak | original | Mode subtitel: both, original, translation. Hanya digunakan saat enable_caption adalah true. |
cc_style_tpl | string | Tidak | temp-7 | ID template gaya subtitel (lihat Gaya Subtitel). Hanya digunakan saat enable_caption adalah true. |
enable_ai_hook | boolean | Tidak | false | Apakah akan menambahkan hook teks yang menarik perhatian dan dihasilkan secara otomatis di awal atau akhir setiap klip yang diekspor. Jika true, ai_hook_script_style dan ai_hook_position berlaku; jika false, tidak ada AI hook yang ditambahkan. |
ai_hook_script_style | string | Tidak | serious | Gaya teks hook yang dihasilkan. Nilai yang diizinkan: serious, casual, informative, conversational, humorous, parody, inspirational, dramatic, empathetic, persuasive, neutral, excited, calm. Hanya digunakan saat enable_ai_hook adalah true. |
ai_hook_position | string | Tidak | beginning | Posisi teks hook yang dihasilkan. Nilai yang diizinkan: beginning, end. Hanya digunakan saat enable_ai_hook adalah true. |
ai_hook_keywords | string | Tidak | null | Kata kunci opsional untuk mengarahkan teks AI hook yang dihasilkan. Hanya digunakan saat enable_ai_hook adalah true. |
ai_hook_text_duration | integer | Tidak | null | Durasi overlay teks AI hook dalam milidetik. Hanya digunakan saat enable_ai_hook adalah true. |
enable_ai_reframe | boolean | Tidak | false | Aktifkan AI Reframe. Jika true, ratio wajib diisi; jika false, klip diekspor dengan rasio aspek aslinya tidak berubah. |
ratio | string | Ya jika enable_ai_reframe adalah true | — | Rasio aspek: RATIO_9_16, RATIO_1_1, RATIO_4_5, RATIO_16_9. Wajib saat enable_ai_reframe adalah true. |
Contoh Permintaan
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips/export \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2" \
-d '{
"project_id": "proj_abc123",
"clip_indices": [0, 2],
"resolution": "UHD_4K",
"enable_caption": true,
"caption_display": "both",
"cc_style_tpl": "word-focus",
"enable_ai_hook": true,
"ai_hook_script_style": "serious",
"ai_hook_position": "beginning",
"enable_ai_reframe": true,
"ratio": "RATIO_9_16"
}'
Respons Pengiriman
{
"data": {
"export_task_id": "export_task_xyz789",
"name": "sample export task",
"status": "CREATED"
}
}
| Field | Tipe | Deskripsi |
|---|---|---|
export_task_id | string | Identifier tugas ekspor unik. Gunakan nilai ini untuk melakukan polling progres ekspor. |
name | string | Nama tugas ekspor |
status | string | CREATED, QUEUED, ONGOING, SUCCEEDED, FAILED |
Ambil Hasil Ekspor
Lakukan polling tugas ekspor hingga status menjadi SUCCEEDED.
GET https://wayinvideo-api.wayin.ai/api/v2/clips/export/{taskId}
Parameter Path
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
taskId | string | Ya | export_task_id yang dikembalikan oleh endpoint pengiriman ekspor |
Contoh Permintaan
curl -X GET https://wayinvideo-api.wayin.ai/api/v2/clips/export/export_task_xyz789 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2"
Contoh Respons
{
"data": {
"export_task_id": "export_task_xyz789",
"name": "sample export task",
"status": "SUCCEEDED",
"expire_at": 1775831883112,
"cost_usage": 48.0,
"clips": [
{
"idx": 0,
"title": "sample title",
"begin_ms": 15000,
"end_ms": 75000,
"thumbnail": "https://cdn.example.com/thumb/clip_001.jpg",
"tags": ["insight", "analysis"],
"desc": "sample description",
"score": 81,
"export_link": "https://cdn.example.com/export/clip_001.mp4"
}
]
}
}
Field Respons
| Field | Tipe | Deskripsi |
|---|---|---|
export_task_id | string | Identifier tugas ekspor unik |
name | string | Nama tugas ekspor |
status | string | CREATED, QUEUED, ONGOING, SUCCEEDED, FAILED |
error_message | string | Alasan error (hanya ada saat status adalah FAILED) |
expire_at | integer | Stempel waktu kedaluwarsa dalam milidetik (epoch). Setelah waktu ini, tugas kedaluwarsa dan hasil tidak dapat lagi diambil melalui endpoint hasil ekspor. |
cost_usage | number | Kredit API yang digunakan untuk permintaan ekspor ini |
clips | array | Daftar objek klip yang diekspor. Saat status adalah ONGOING, mungkin berisi hasil ekspor parsial; saat status adalah SUCCEEDED, berisi semua klip yang diekspor. |
Objek clips yang dikembalikan oleh endpoint hasil ekspor menggunakan struktur yang sama dengan objek klip di endpoint hasil utama, termasuk export_link untuk setiap klip yang telah dirender.