Jawaban singkat: Untuk memperpanjang video dengan Gemini Omni 1.2 Flash, kirim klip Anda beserta prompt kelanjutan singkat ke Interactions API. Setiap giliran menambahkan 3 hingga 10 detik dan mengembalikan klip yang lebih panjang. Gemini API berhenti di total 30 detik. Agent Platform milik Google Cloud bisa mencapai 40 detik, tetapi hanya jika Anda merencanakan setiap langkah agar bagian awal video tidak terpotong.
Untuk saran cara menulis prompt, lihat panduan perpanjangan adegan Omni 1.1 kami. Panduan ini membahas hal-hal yang baru: bentuk request-nya, perhitungan chaining, serta biaya klip 40 detik.
Cara kerja perpanjangan video di Gemini Omni 1.2 Flash
Perpanjangan video menghasilkan kelanjutan di bagian akhir sebuah klip. Model membaca hingga 10 detik terakhir dari input Anda sebagai konteks, menulis 3 hingga 10 detik baru, lalu menyambungkannya ke klip. Model hanya bisa menambah di akhir: Anda tidak bisa menyisipkan rekaman di awal atau memperpanjang bagian tengah.
Google mendokumentasikan batas yang berbeda, tergantung di mana Anda memanggil modelnya:
| Gemini API | Agent Platform (Google Cloud) | |
|---|---|---|
| Autentikasi | Kunci API | Project dan access token |
| Panjang total | 30 detik | 40 detik |
| Panjang input | Tidak ada batas terpisah yang disebutkan | Durasi berapa pun |
| Gambar referensi | Hingga 6 di Omni | Hingga 2 per perpanjangan |
| Mode perpanjangan | Prompt dulu, task sebagai fallback |
task: "extend" di semua contoh |
| Seed dan label | Tidak ada di dokumentasi Omni | generation_config.seed, labels |
| Hasil tersimpan | 55 hari pada paket berbayar | Hingga 7 hari |
Sumber: dokumentasi Omni Gemini API dan dokumentasi perpanjangan Agent Platform.
Di Agent Platform, model membaca hingga 10 detik terakhir, lalu menggabungkan segmen baru ke 30 detik terakhir dari input. Contoh Google memperpanjang input 60 detik dengan 10 detik dan mengembalikan 40 detik, artinya 30 detik pertama hilang.

Anda tidak perlu menyambung rekaman sendiri, karena output sudah memuat rekaman sebelumnya. Namun Google tetap menyunting beberapa frame terakhir dari input Anda agar transisinya mulus.
Apa saja yang berubah untuk perpanjangan di 1.2
- Klip awal 15 detik. Di 1.1 maksimalnya 10 detik. Setiap giliran perpanjangan tetap dibatasi 10 detik.
- Gambar referensi, seed, dan label pada request perpanjangan di Agent Platform.
- Sintaks prompt baru. Google menghentikan tag seperti
<IMAGE_REF_0>yang masih dipakai panduan lama. Deskripsikan setiap gambar dengan bahasa biasa. - Tipe input baru. Contoh terkini mengirim
"type": "video", bukan tipedocumentseperti pada contoh 1.1.
Memperpanjang video langkah demi langkah di Gemini API
- Hasilkan klip, atau unggah klip melalui Files API. File yang diunggah akan dihapus setelah 48 jam.
- Deskripsikan hanya apa yang terjadi selanjutnya.
- Atur
durationdari"3s"hingga"10s"(bawaan 10). - Simpan ID interaksi untuk giliran berikutnya.
from google import genai
client = genai.Client()
first = client.interactions.create(
model="gemini-omni-1.2-flash",
input="A courier in a yellow jacket cycles through a rainy night market.",
response_format={"type": "video", "duration": "15s"},
)
second = client.interactions.create(
model="gemini-omni-1.2-flash",
previous_interaction_id=first.id,
input="The courier brakes at a red door. Keep the same yellow jacket.",
response_format={"type": "video", "duration": "10s", "delivery": "uri"},
)
Untuk memperpanjang rekaman Anda sendiri, ganti previous_interaction_id dengan array input berisi {"type": "video", "uri": video_file.uri} dan satu item teks.
- Jangan pakai
taskdi awal. Google menyatakan parameter ini menambahkan kendala yang ketat, jadi atur"task": "extend"divideo_confighanya sebagai fallback. - Gunakan
delivery: "uri"untuk file di atas 4MB. Simpan URI dari respons pembuatan.GETselanjutnya tetap mengembalikan base64 inline meskipun request memakai URI. - Biarkan
storetetap aktif. Denganstore: false, Anda tidak bisa melanjutkan dari ID interaksi tersebut.
Untuk unggahan ada dua batasan lagi: tidak bisa menambahkan dialog pada bagian di mana seseorang sedang berbicara, dan tidak bisa dipakai dari Wilayah Ekonomi Eropa (EEA), Swiss, atau Inggris Raya. Perpanjangan multi-giliran pada video hasil generasi terbebas dari keduanya.
Panduan request di Agent Platform
Gunakan jalur ini untuk mencapai 40 detik atau untuk antrean pekerjaan. Proses generasi bisa memakan waktu lebih dari satu menit, jadi kirim POST dengan body berikut ke https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions dengan background diaktifkan:
{
"model": "gemini-omni-1.2-flash",
"background": true,
"input": [
{ "type": "text", "text": "The courier opens the red door and steps inside." },
{ "type": "video", "uri": "gs://my-bucket/hop-1.mp4", "mime_type": "video/mp4" }
],
"response_format": [
{
"type": "video",
"delivery": "uri",
"gcs_uri": "gs://my-bucket/out/",
"aspect_ratio": "16:9",
"duration": "5s"
}
],
"generation_config": {
"seed": 4242,
"video_config": { "task": "extend" }
},
"labels": { "campaign": "courier", "hop": "2" }
}
Panggilan ini mengembalikan ID interaksi dengan status in_progress. Pantau statusnya dengan GET .../locations/global/interactions/INTERACTION_ID. Setelah selesai, ambil URI gs:// dari langkah model_output di steps. URI tersebut menjadi input untuk hop berikutnya.
Ada juga mode stateless (store: false), stateful (store: true), dan streaming. Hasil yang tersimpan maupun async hanya bertahan hingga 7 hari, jadi salin semua yang Anda butuhkan.
[VERIFY] Belum dijalankan: tidak ada project Google Cloud yang tersedia. Contoh body dari Google tidak menampilkanseedmaupunlabels, jadi pastikan penempatannya.
Membangun chain hingga batas 40 detik
Sebuah hop hanya menyimpan seluruh rekaman Anda jika inputnya 30 detik atau kurang. Untuk berakhir tepat di 40 detik tanpa kehilangan apa pun, capai angka 30 detik lebih dulu.
| Hop | duration yang direncanakan |
Output yang direncanakan | duration naif |
Output naif |
|---|---|---|---|---|
| Awal | 15 detik | 15 detik | 15 detik | 15 detik |
| 1 | 10 detik | 25 detik | 10 detik | 25 detik |
| 2 | 5 detik | 30 detik | 10 detik | 35 detik |
| 3 | 10 detik | 40 detik | 10 detik | 40 detik, 5 detik pertama terbuang |

Chain naif mendapat 5 detik tambahan, lalu membuang bagian awal video Anda. Panjang klip tidak akan memberi peringatan, karena kedua chain mengembalikan 40 detik.
Awal 15 detik tidak menghemat jumlah panggilan untuk hasil 40 detik: memulai dari 10 detik juga membutuhkan tiga kali perpanjangan. Manfaatnya ada di target lain, karena 25 detik cukup satu perpanjangan alih-alih dua, dan 35 detik cukup dua alih-alih tiga.
Di Gemini API, berhenti setelah hop 2. Google tidak menjelaskan apa yang terjadi pada request yang melebihi 30 detik.
Menjaga konsistensi karakter dengan gambar referensi dan seed
Karakter yang keluar dari frame sebelum 10 detik terakhir tidak terlihat oleh model, bahkan jika frame itu tetap ada di klip. Solusi dari Google: sebutkan karakternya lagi atau sertakan gambar referensi dalam array input yang sama:
{ "type": "image", "uri": "gs://my-bucket/courier.png", "mime_type": "image/png" },
{ "type": "text", "text": "The courier from the reference image walks back into frame." }
- Gunakan gambar yang sama di setiap hop yang membutuhkan karakter tersebut.
- Pilih dengan cermat di Agent Platform. Dua gambar per perpanjangan hanya cukup untuk karakter yang paling mungkin bergeser.
- Jangan kirim video referensi. Google hanya mendukungnya untuk generasi baru, bukan untuk perpanjangan.
- Berikan waktu berdasarkan segmen baru. 0 detik dalam prompt Anda berarti awal bagian yang diperpanjang, bukan awal klip.
Atur generation_config.seed agar hasilnya dapat direproduksi. Ini paling berguna saat debugging: jalankan ulang sebuah hop dengan seed yang sama untuk melihat apakah perubahan berasal dari prompt Anda. Google tidak menjamin seed menjaga karakter tetap konsisten di berbagai prompt, jadi untuk itu andalkan referensi. Gunakan labels untuk melacak penagihan per hop.
Berapa biaya klip 40 detik
Halaman harga Google menagih output video Omni 1.2 sebesar $12,00 per juta token. Tidak dijelaskan apakah perpanjangan ditagih hanya untuk detik baru atau untuk setiap detik yang dikembalikan. Chain terencana menghasilkan 40 detik tetapi mengembalikan 15, 25, 30, dan 40 detik, totalnya 110.
| Resolusi | Per detik | Jika hanya detik baru yang ditagih | Jika setiap detik yang dikembalikan ditagih |
|---|---|---|---|
| 360p | $0,023 | $0,93 | $2,55 |
| 720p | Sekitar $0,07 | $2,78 | $7,65 |
| 1080p (di-upsample) | $0,104 | $4,17 | $11,47 |
| 4K (di-upsample) | $0,209 | $8,34 | $22,94 |
Ini adalah tarif Gemini API, dihitung dari jumlah token per detik versi Google. Token input ($1,50 per juta) dan token thinking ($9,00 per juta) ditagih terpisah di atasnya.
Sampai Anda memverifikasinya sendiri, patok anggaran Anda pada kolom sebelah kanan. Untuk menekan tagihan:
- Buat draf di 360p dan validasi seluruh chain sebelum membayar 720p.
- Tentukan resolusi sebelum chaining. Halaman model di Agent Platform membatasi input untuk upscaling hingga 15 detik, jadi klip 40 detik yang sudah jadi tidak bisa diproses dalam satu langkah.
- Siapkan anggaran untuk regenerate pada shot yang sulit. Pengumuman Google menyebut aksi olahraga berkecepatan tinggi, perubahan skrip yang cepat, dan fisika yang rumit sebagai area yang masih terus diperbaiki.
Request ke gemini-omni-1.1-flash akan diarahkan ke 1.2 mulai 3 Desember 2026 dan ditagih sesuai tarif 1.2.
Minta coding agent Anda menguji alur async dengan Apidog CLI
Chain async gagal secara diam-diam: polling yang tidak pernah berakhir, run yang berakhir dengan status failed, atau bentuk respons yang berubah. Minta coding agent Anda menyusun pengujian itu dengan Apidog CLI dan menjalankannya untuk Anda.
npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install
Lalu berikan satu prompt ke Claude Code, Codex, atau Cursor:
In Apidog project <id>, create endpoints for POST and GET on the Omni
interactions URL. Build a test scenario named omni-extend-async: start a
3-second 360p extension with background set to true, save the interaction
ID, then loop with a 10-second delay on GET until status leaves in_progress.
Assert status is completed and a model_output step holds a video/mp4 item
with a uri or data. Run it and summarize any failures.
Agent akan memvalidasi payload-nya, lalu menyusun dan menjalankan skenarionya:
apidog cli-schema get test-scenario-update
apidog test-scenario create --project <id> --name "omni-extend-async" --folder-id <folderId> --priority 1
apidog test-scenario import-steps <scenarioId> --project <id> --source endpoint --ids <postId>,<getId>
apidog cli-schema validate test-scenario-update --file scenario.json
apidog test-scenario update <scenarioId> --project <id> --file scenario.json
apidog run -t <scenarioId> --project <id> -e <envId> --timeout-request 300000 -r cli,junit --out-dir ./reports
Setiap run menagih satu klip sungguhan, jadi jalankan setiap malam, bukan pada setiap commit. Hop 360p selama 3 detik berbiaya sekitar $0,07 jika hanya detik baru yang ditagih. Baris perintah yang sama bisa langsung dimasukkan ke pipeline, seperti ditunjukkan dalam panduan CI/CD Apidog CLI kami, dan sisi agent dijelaskan dalam panduan setup Claude Code. Apidog Free mencakup hingga 4 pengguna.
FAQ
Berapa panjang maksimal video Gemini Omni 1.2 Flash? Satu generasi berdurasi 3 hingga 15 detik. Dengan perpanjangan, dokumentasi Gemini API menyebut total 30 detik dan dokumentasi Agent Platform menyebut 40 detik.
Mengapa bagian awal video hasil perpanjangan saya hilang? Di Agent Platform, hanya 30 detik terakhir dari input yang disimpan. Input apa pun yang lebih dari 30 detik akan kehilangan bagian awalnya. Rencanakan hop Anda agar hop terakhir dimulai tepat dari 30 detik.
Bisakah saya memperpanjang video yang saya rekam sendiri? Bisa, asalkan di luar EEA, Swiss, dan Inggris Raya. Unggah melalui Files API, atau tunjuk ke Cloud Storage di Agent Platform. Anda tidak bisa menambahkan dialog ke klip unggahan pada bagian di mana seseorang sedang berbicara.
Bisakah saya memperpanjang klip secara gratis? Tidak melalui API. Google mencantumkan paket gratis sebagai "Tidak tersedia" untuk Omni 1.2 dan 1.1, jadi bahkan percobaan pun ditagih. Perpanjangan 360p selama 3 detik adalah yang termurah yang bisa Anda jalankan.
