# Gemini Omni 1.2 Flash API: Generate and Edit Video

> Use Google’s Interactions API for Gemini Omni 1.2 Flash: 15-second clips, video editing, duration limits, and official token-based pricing.

- Canonical HTML: https://omniakey.com/blog/gemini-omni-1-2-flash-api
- Markdown: https://omniakey.com/blog/gemini-omni-1-2-flash-api.md
- Published: 2026-11-07 (updated 2026-11-07)
- Author: Kiki, COO at OmniaKey
- Language: en
- Category: API setup
- Reading time: 9 min
- All posts: https://omniakey.com/blog/llms.txt

---

The Gemini Omni 1.2 Flash API became generally available on November 5, 2026, on the paid tier of the Gemini API. One request returns a 3–15 second video with audio, and a follow-up request edits that same clip without a re-upload ([Google's release notes](https://ai.google.dev/gemini-api/docs/changelog) and [Omni guide](https://ai.google.dev/gemini-api/docs/omni), checked November 6, 2026).

- **Model:** `gemini-omni-1.2-flash`, called through `client.interactions.create` or `POST /v1beta/interactions`.
- **Clip:** 3–15 seconds at 24 fps, 16:9 or 9:16, with a generated audio track.
- **Editing:** a second turn with `previous_interaction_id` rewrites a clip you generated, up to 15 seconds of input.
- **Price:** about $1.04 in video tokens for a 15-second 720p clip, plus input and text tokens.

## What the Gemini Omni 1.2 Flash API supports

Requests go to `POST https://generativelanguage.googleapis.com/v1beta/interactions` with `"model": "gemini-omni-1.2-flash"` in the body. This is the Interactions API, the interface Google recommends for new projects since it became generally available in June 2026 ([Interactions API overview](https://ai.google.dev/gemini-api/docs/interactions-overview), checked November 6, 2026); the older generateContent interface still serves other Gemini models.

The model returns video with native audio, plus text ([model card](https://ai.google.dev/gemini-api/docs/models/gemini-omni-flash)). Output runs at 24 fps, 360p, 720p by default, 1080p with upscaling, or 4k with upscaling, and every clip carries an invisible SynthID watermark. Landscape 16:9 is the default and portrait gives 9:16.

Access is paid only. Google's pricing table shows `Not available` under Free Tier for both input and output, and the rate-limit page starts Omni Flash at 8 requests per minute and 40 per day on Tier 1 ([pricing](https://ai.google.dev/gemini-api/docs/pricing), [rate limits](https://ai.google.dev/gemini-api/docs/rate-limits), checked November 6, 2026).

The previous model, `gemini-omni-1.1-flash`, stays usable during a four-week transition. On December 3, 2026, requests sent to it are handled by 1.2 at 1.2 prices, with no code change.

## Generate a video through the Interactions API

The Python SDK is three moves: create a client, create the interaction, write the base64 video to a file. The example sets an explicit duration and keeps the interaction stored so the clip can be edited later. It needs the `google-genai` package (`pip install -U google-genai`) and a Gemini API key in `GEMINI_API_KEY`; both turns go to Google's endpoint, so an OmniaKey key will not work here.

```python
# Setup: install google-genai and set GEMINI_API_KEY to your Google API key.
import base64
import os

from google import genai

client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])

# Turn 1: generate a 15-second landscape clip and keep it editable.
first = client.interactions.create(
    model="gemini-omni-1.2-flash",
    input=(
        "One continuous tracking shot follows a paper airplane gliding "
        "through a busy library, dust in the sunlight."
    ),
    response_format={
        "type": "video",
        "duration": "15s",       # whole seconds from "3s" to "15s"; default "10s"
        "aspect_ratio": "16:9",  # or "9:16"
        "resolution": "720p",    # 720p is the default; 1080p and 4k are upscaled
    },
    store=True,
)

# Turn 2: edit that clip with a follow-up prompt, no re-upload.
edit = client.interactions.create(
    model="gemini-omni-1.2-flash",
    previous_interaction_id=first.id,
    input="Make the paper airplane bright red. Keep the camera move unchanged.",
)

with open("library_flight.mp4", "wb") as f:
    f.write(base64.b64decode(edit.output_video.data))
```

Duration takes whole seconds as a string, from 3 to 15, and the model generates 10 seconds when the field is left out. Resolution is a sibling key in the same `response_format` object, next to the type setting.

The SDK reads the finished file from `output_video.data` as base64. A raw REST call hands you the same bytes inside `steps[]`, in a content entry of type video, because that field exists only in the SDKs. For clips above 4 MB, add `"delivery": "uri"` to `response_format` ([Omni guide](https://ai.google.dev/gemini-api/docs/omni), checked November 6, 2026); you then poll `client.files.get` until the file state is ACTIVE and pull it with `client.files.download`.

The snippet is adapted from Google's Python example and passed a syntax check; we have not run it against the API.

## Edit a generated clip without starting over

Pass the first interaction's id as `previous_interaction_id` and describe the change. The model keeps the clip's context, applies the edit and returns a new video; Google's edit example sends only the model, that id and the prompt, the same three fields turn 2 uses ([Omni guide](https://ai.google.dev/gemini-api/docs/omni), checked November 6, 2026).

> Keep&#x20;
>
> `store=True`
>
> &#x20;(the default) on any turn you plan to edit. With&#x20;
>
> `store=false`
>
> , later turns cannot use&#x20;
>
> `previous_interaction_id`
>
> &#x20;to continue the clip.

Extension uses the same loop. Ask for a continuation in plain language and the model appends 3–10 seconds, 10 by default, using the final 10 seconds of the input video as context, up to 30 seconds in total. It appends at the end only, so you cannot add a scene before the opening frame or in the middle.

For footage you shot yourself, upload a clip of 15 seconds or less through the Files API and prompt against it. Editing and extending uploaded videos is unavailable in the EEA, Switzerland and the United Kingdom, while editing clips the model generated works in those regions. Voice editing is unsupported in the current version, as are audio inputs and audio references, and audio inside a reference video is ignored.

## Duration, resolution and reference limits

The ranges differ by operation; the table follows Google's guide ([Omni guide](https://ai.google.dev/gemini-api/docs/omni), checked November 6, 2026).

|Operation|Duration|Detail|
|-|-|-|
|Text or image to video|3–15 s|10 s default|
|First and last frame|3–10 s|Two frames|
|Edit a clip|≤15 s input|Uploaded or generated|
|Extend, per turn|+3–10 s|10 s default|
|Extended total|30 s|Final 10 s as context|

References have their own caps:

- Up to 6 reference images per request, with up to 3 images per character for up to 2 characters.
- 11–15 second outputs accept 1 reference video of up to 3 seconds; 3–10 second outputs accept up to 3 reference videos of up to 3 seconds each.
- Reference videos work when you generate a new clip. Editing and extension take reference images instead.
- YouTube links cannot be used as media input; upload the file first.

## What Google's official samples show

Google published nine demo clips with the [November 5, 2026 launch post](https://blog.google/innovation-and-ai/technology/developers-tools/introducing-gemini-omni-1-2-flash/) (checked November 6, 2026). We downloaded two and checked them with ffprobe: both are 1920×1080 at 24 fps with an AAC stereo track, and both files open with a title slate, so the file length is longer than the scene inside it.

![Two frames from Google's castaway demo: a man kneeling in shallow water at 6 seconds, then a wide elevated view of the coastline at 12 seconds](https://omniakey.com/_img/blog/gemini-omni-1-2-flash-api/official-castaway-sequence.dbe2c3e5.2400.webp)

_Frames at 6 and 12 seconds from Google's official Castaway crash-zoom demo._

The pair shows how far a single clip can travel in framing. At 6 seconds a man kneels in shallow water with one hand on driftwood; at 12 seconds the camera sits high above the coast, the person small near the waterline, palm-covered hills on the left and open ocean on the right.

![Frame from Google's Pantheon demo at 12 seconds: a circular oculus, concentric square coffers and a patch of sunlight inside the dome](https://omniakey.com/_img/blog/gemini-omni-1-2-flash-api/official-pantheon.1d1094e7.1600.webp)

_Frame at 12 seconds from Google's official Pantheon tour demo._

The Pantheon frame at 12 seconds lands inside the building: the circular oculus, the concentric square coffers around it and a patch of sunlight on the interior. Google's caption describes a continuous drone flight guided by two architectural photos; at 6 seconds the same sample is still outside among the columns.

## Official pricing: estimate a clip correctly

Google charges $1.50 per million input tokens for text, images and video, $9.00 per million text output tokens and $12.00 per million video output tokens, on the paid tier only ([pricing page](https://ai.google.dev/gemini-api/docs/pricing), checked November 6, 2026). Video is billed by output tokens, and 720p output uses 5,792 tokens per second.

|Output|Tokens/s|Approx. USD/s|
|-|-|-|
|360p|1,931|$0.023|
|720p|5,792|$0.07|
|1080p upscaled|8,688|$0.104|
|4k upscaled|17,376|$0.209|

One 15-second 720p clip bills 15 × 5,792 × $12.00 / 1,000,000 = $1.04256 in video tokens, about $1.04, before the input and text tokens. Round only after calculating the total.

## Choosing a video workflow

Generate with Omni when one 15-second shot with sound covers the scene, or when the clip will go through several rounds of small changes. The edit loop is the reason to pick it: each turn keeps the previous clip's context, so you can change one prop, one background or one camera note per message instead of re-describing the whole scene.

Choose a different model when the shot has to run longer in one pass, or when the work is built around reference video. ByteDance's [Seedance 2.5](https://omniakey.com/dreamina-seedance-2-5-260628) generates up to 30 seconds in a single request, as [the Seedance 2.5 review](https://omniakey.com/blog/seedance-2-5-review) reports, and the [Kling 4.0 vs Seedance 2.5 comparison](https://omniakey.com/blog/kling-4-0-vs-seedance-2-5) covers the motion and reference-first workflows.

Omni is Google's own paid release and sits outside OmniaKey's video catalog. Seedance 2.5 is available there for long single shots, and [the AI Video Generator](https://omniakey.com/ai-video-generator) runs prompts in the browser without code.

## Frequently asked questions

### Is the Gemini Omni 1.2 Flash API free?

No. The model is on the paid Gemini API tier, and Google's pricing table shows Not available for it under Free Tier.

### Which endpoint does the Gemini Omni 1.2 Flash API use?

It uses the Interactions API. Send `POST https://generativelanguage.googleapis.com/v1beta/interactions` with `"model": "gemini-omni-1.2-flash"`, or call `client.interactions.create` in the Python, JavaScript, Go or Java SDK. generateContent is the older interface used by other Gemini models.

### How long can one Gemini Omni 1.2 Flash clip be?

A generation request runs 3–15 seconds and defaults to 10. Extension adds 3–10 seconds per turn up to 30 seconds total, first-and-last-frame interpolation stays within 3–10 seconds, and input video for editing must be 15 seconds or less.

### Can I edit a video I uploaded, or only generated clips?

Both, with limits. Uploaded clips must be 15 seconds or less, and editing or extending them is unavailable in the EEA, Switzerland and the United Kingdom; clips the model generated can be edited and extended in those regions.

### What happens to gemini-omni-1.1-flash?

It keeps working during a four-week transition window. From December 3, 2026, requests to it are handled by `gemini-omni-1.2-flash` and billed at 1.2 prices, with no code change.

## Sources checked

- [Google: Gemini Omni 1.2 Flash launch post](https://blog.google/innovation-and-ai/technology/developers-tools/introducing-gemini-omni-1-2-flash/)
- [Google: Gemini Omni Flash model card](https://ai.google.dev/gemini-api/docs/models/gemini-omni-flash)
- [Google: generate and edit videos with Gemini Omni Flash](https://ai.google.dev/gemini-api/docs/omni)
- [Google: Interactions API overview](https://ai.google.dev/gemini-api/docs/interactions-overview)
- [Google: Gemini API release notes](https://ai.google.dev/gemini-api/docs/changelog)
- [Google: Gemini API pricing](https://ai.google.dev/gemini-api/docs/pricing)
- [Google: Gemini API rate limits](https://ai.google.dev/gemini-api/docs/rate-limits)
