Docs / video / GetRun Assemble
GetRun Assemble online
Rakit beberapa klip menjadi satu video vertikal: potong per segment sesuai timeline, samakan rasio dan fps, lalu bakar caption. Berjalan di server GetRun, bukan model generatif — tidak menambah atau mengubah gambar apa pun.
Rp Rp20 / detik keluaran
⏱ ±20–180 detik perkiraan waktu
getrun-edit/assemble model id
Potong per segmentCaption dibakarSamakan rasio & fps
1 · Create a task
Kirim permintaan untuk membuat tugas generasi video. Wajib header Idempotency-Key. Saldo direservasi sebesar estimasi; task gagal tidak ditagih.
curl -X POST https://run.getcore.id/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: my-task-001" \
-H "Content-Type: application/json" \
-d '{
"model": "getrun-edit/assemble",
"input": {
"clips": [
"https://storage.getcore.id/outputs/task_a/0.mp4"
],
"seconds": 3,
"timeline": "{\"segments\":[{\"clip\":0,\"start\":0,\"end\":3,\"caption\":\"Stop scrolling\"}]}",
"resolution": "720p",
"aspect_ratio": "9:16"
}
}'const res = await fetch('https://run.getcore.id/v1/tasks', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Idempotency-Key': 'my-task-001',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"model": "getrun-edit/assemble",
"input": {
"clips": [
"https://storage.getcore.id/outputs/task_a/0.mp4"
],
"seconds": 3,
"timeline": "{\"segments\":[{\"clip\":0,\"start\":0,\"end\":3,\"caption\":\"Stop scrolling\"}]}",
"resolution": "720p",
"aspect_ratio": "9:16"
}
}),
});
const task = await res.json();import requests
res = requests.post(
"https://run.getcore.id/v1/tasks",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Idempotency-Key": "my-task-001",
},
json={
"model": "getrun-edit/assemble",
"input": {
"clips": [
"https://storage.getcore.id/outputs/task_a/0.mp4"
],
"seconds": 3,
"timeline": "{\"segments\":[{\"clip\":0,\"start\":0,\"end\":3,\"caption\":\"Stop scrolling\"}]}",
"resolution": "720p",
"aspect_ratio": "9:16"
}
},
)
task = res.json()Input parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
fps |
integer | No | Opsi: 24 25 30 |
30 |
clips |
array | Yes | Klip video yang akan dirakit, urut sesuai urutan sambungan. Timeline merujuk klip ini lewat indeks (0 = klip pertama). | https://storage.getcore.id/outputs/task_a/0.mp |
seconds |
number | Yes | Total durasi hasil rakitan dalam detik — dasar perhitungan harga. Harus >= total durasi timeline. (min 1, max 180) | 3 |
timeline |
string | Yes | JSON: {"segments":[{"clip":0,"start":0,"end":2.5,"caption":"teks"}]}. `clip` = indeks pada clips, `start`/`end` = detik di dalam klip itu, `caption` opsional (dibakar di bawah-tengah). Segment dijalankan berurutan sesuai isi array. (max 20000 chars) | {"segments":[{"clip":0,&qu |
resolution |
string | No | Angka resolusi berlaku untuk sisi pendek. Opsi: 720p 1080p |
720p |
aspect_ratio |
string | No | Klip yang rasionya beda akan di-fit dan diberi bilah hitam, tidak dipotong. Opsi: 9:16 16:9 1:1 |
9:16 |
2 · Poll the result
Ambil status tugas hingga selesai — poll tiap 2–5 detik.
Respons saat sukses:
{
"id": "task_9f2c…",
"status": "succeeded",
"model": "getrun-edit/assemble",
"price": {
"currency": "IDR",
"estimated": 20,
"reserved": 20,
"final": 20
},
"output": {
"urls": [
"https://storage.getcore.id/outputs/task_9f2c…/0.mp4"
],
"expires_at": "(7 hari setelah selesai)"
}
}
Status values
| Status | Keterangan |
|---|---|
queued | Tugas sedang diantrikan. |
processing | Sedang diproses. |
succeeded | Berhasil. |
failed | Gagal — lihat error detail, tidak ditagih. |
video/mp4, dilayani dari CDN kami dan berlaku 7 hari — salin ke penyimpananmu sendiri untuk jangka panjang.Best practices
Bila generation gagal, task berstatus failed dengan error.code ternormalisasi (mis. moderation_blocked, upstream_error) dan price.final = 0 — saldo dikembalikan otomatis. Daftar lengkap kode error ada di Error handling. Selalu kirim Idempotency-Key unik per tugas agar retry aman.
Coba tanpa kode: jalankan model ini langsung dari Playground atau lihat di API Market.
