Gemini VideoGeneration

Gemini VideoGeneration

Certified

Generate video with Veo via Gemini

Creates a 1–60s video with Google's Veo 3 model through the Gemini API. Defaults: 10s duration, 5m timeout, audio off. Use Vertex AI with project/location and a GCS output URI; otherwise the file downloads locally. See Veo 3 documentation for more information.

yaml
type: io.kestra.plugin.gemini.VideoGeneration

Generate a video of a golden retriever playing in sunflowers.

yaml
id: gemini_video_generation
namespace: company.ai

tasks:
  - id: generate_video
    type: io.kestra.plugin.gemini.VideoGeneration
    apiKey: "{{ secret('GEMINI_API_KEY') }}"
    model: "veo-3.0-generate-preview"
    prompt: "a close-up shot of a golden retriever playing in a field of sunflowers"
    negativePrompt: "barking, woofing"
    duration: 5

Generate video using Vertex AI with audio enabled.

yaml
id: gemini_vertex_video_with_audio
namespace: company.ai

tasks:
  - id: generate_vertex_video
    type: io.kestra.plugin.gemini.VideoGeneration
    model: "veo-3.0-generate-preview"
    prompt: "a serene mountain landscape with flowing rivers and birds chirping"
    duration: 8
    includeAudio: true
    vertexAI: true
    project: "{{ secret('GCP_PROJECT_ID') }}"
    location: "us-central1"
    outputGcsUri: "gs://my-bucket/videos/"
Properties

Gemini API key

Secret used for direct Gemini API calls; render from a secure variable.

Generative model

Gemini model identifier to call (e.g., gemini-2.5-flash, gemini-1.5-pro). Must support the requested input type.

Video prompt

Text description of the video to generate.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

File download path

Local file name or path for the downloaded video when not using Vertex AI. Defaults to genai_video_{timestamp}.mp4 in the working directory.

Default10

Video duration in seconds

Duration of the generated video in seconds. Range 1–60; defaults to 10.

Defaultfalse

Include audio generation

Whether to generate synchronized audio for the video. Default is false; only supported by audio-capable models.

Location

Google Cloud region for Vertex AI, for example us-central1.

Negative prompt

Text describing what should not appear in the video.

Default1

Number of videos to generate

Number of videos to request. Defaults to 1.

GCS Output URI

Google Cloud Storage URI for the generated video (e.g., gs://bucket/path/). Required when vertexAI is true.

Project ID

Google Cloud project ID used when vertexAI is true.

Seed value

Optional seed to make video generation deterministic; random when absent.

DefaultPT5M

Request timeout

Timeout for the video generation request. Defaults to 5 minutes; polling occurs every second.

Defaultfalse

Use Vertex AI

Whether to route requests through Vertex AI. Requires project and location; output must use a GCS URI.

Metadata

Optional metadata related to the video generation process (e.g., model version, GCS path, etc.).

MIME type

MIME type of the generated video (e.g., video/mp4).

Video URI

URI of the generated video file.