Node reference

Google Veo for Joomla and WordPress

Creates a short video from a written description using Google Veo, then saves the MP4 on your Joomla site.

Overview

Creates a short video from a written description using Google Veo, then saves the MP4 on your Joomla site.

When the flow reaches this step, JOrchestrator calls the configured model using credentials from Node Configuration, then exposes the response fields listed below to downstream steps.

Why use this node

Google Veo is a AI step in the Generative Video group. AI steps call language or media models. Use them to generate text, classify content, or produce assets that later steps publish or send.

Typical reasons teams add Google Veo to a flow:

  • Generate or transform content with Google Veo before publishing or sending
  • Use upstream CMS or webhook fields as prompts or context
  • Keep AI calls inside audited, repeatable flows rather than one-off scripts

Example workflows

Common patterns on the canvas:

  1. Trigger or Webhook → upstream steps → Google VeoSend Email or CMS update
  2. Scheduled triggerGoogle VeoDebug (while testing) → production action

How to set it up

Write your prompt on the Design tab. Longer clips can be built by extending the first scene on supported models. You receive a web link to the saved video — not the raw video file itself unless you turn that option on.

Good to know

Add your Gemini API key under Joomla → Node Configuration → AI LLMs. Use an Upload Media step afterward if the video must sit in a specific /images folder.

Properties panel

The designer shows these tabs for this node:

TabPurpose
InfoPlain-language description and output payload fields for downstream steps
GeneralCanvas label and read-only node ID
AIOptional assistant to help draft settings from plain language
DesignNode-specific configuration fields

System (automatic — not edited by the user)

These fields are managed by the designer or runtime — you do not type into them directly:

Property keyLabelTypeRequiredVisible whenNotes
_nodeIdNode IDnode-idNo
_payloadFieldsAvailable Fieldspayload-panelNo

User-configured — General tab

Property keyLabelTypeRequiredVisible whenNotes
labelLabeltextNoNode label

User-configured — Design tab

Property keyLabelTypeRequiredVisible whenNotes
promptPrompttextareaYesDescribe the video to generate… Google Gemini API key is read from Joomla Node Configuration → AI LLM's → Google Gemini (same key as the Gemini LLM node).
modelIdVeo modelselect (veo-3.1-generate-preview | veo-3.1-fast-generate-preview | veo-3.1-lite-generate-preview | veo-3.0-generate-001 | veo-3.0-fast-generate-001 | veo-2.0-generate-001; default: veo-3.1-generate-preview)NoOnly models available on the Gemini API for video generation. Veo 3.1 variants use -preview ids (veo-3.1-generate-001 and veo-3.1-lite-generate-001 are not available on Gemini API).
targetDurationSecondsTarget duration (seconds)select (4 | 6 | 8 | 15 | 22 | 29 | 36 | 43 | 50 | 60 | 90 | 120 | 148; default: 8)NogoogleVeoSupportsExtensionTotal desired clip length. Values above the initial segment use Veo scene extension (Veo 3.1 or 3.1 Fast only; 720p; ~148s max). Not supported on Veo 3.1 Lite.
segmentDurationSecondsInitial segment (seconds)select (4 | 6 | 8; default: 8)NogoogleVeoSupportsExtensionLength of the first generated clip. Extension steps add ~7 seconds each until the target is reached.
extensionPromptExtension prompt (optional)payload-textNogoogleVeoSupportsExtensionOptional: prompt for each extension step Used for each extension call after the initial clip. Leave blank to reuse the main prompt.
savePathSave path (optional)payload-textNoimages/flow-inline/my-video.mp4 Local path under the Joomla site root. Leave blank to auto-save under images/flow-inline/. After download, use {{NodeLabel.url}} or {{NodeLabel.videoUrl}} in downstream nodes.
aspectRatioAspect ratioselect (` | 16:9 | 9:16; default: `)NoOptional. Preview models (Gemini API) ignore extra settings and use the prompt only.
sampleCountNumber of videosselect (1 | 2 | 3 | 4; default: 1)NoIgnored for preview models.
resolutionResolution (Veo 3+)select (` | 720p | 1080p | 4k; default: `)NoOptional. Ignored for preview models. Lite models do not support 4K.
negativePromptNegative promptpayload-textNoOptional: what to avoid in the video Ignored for preview models.
pollIntervalSecondsPoll interval (seconds)select (5 | 10 | 15 | 30; default: 10)No
maxPollMinutesMax wait (minutes)select (5 | 10 | 15 | 20 | 30; default: 15)No

CMS site configuration (not on this node's properties panel)

Credentials, API keys, mailers, SMTP, and integration defaults are configured in the CMS plugin under Node Configuration, not per step on this node. Link the flow to a domain before testing CMS-backed fields.

Output payload fields

After this step runs, later nodes can reference these fields using placeholders such as {{google_veo.success}}.

Field keyTypeDescription
successbooleanWhether the operation completed successfully.
modelIdstringAI or video model identifier used.
operationNamestringLong-running API operation identifier.
videoUristringGoogle Gemini API file URI before local download.
localPathstringSaved file path relative to the Joomla site root.
pathstringRelative path to the saved MP4 under the site root.
urlstringPublic URL to the downloaded MP4 on your Joomla site.
videoUrlstringPublic URL to the downloaded video file.
videostringPublic URL to a video file.
mediastringPublic URL to a media asset.
filenamestringFile name without directory path.
bytesWrittennumberSize of the downloaded MP4 in bytes (not the raw bytes themselves).
videoBase64stringBase64-encoded video bytes (when Include base64 is enabled on the node).
targetDurationSecondsnumberTarget total video duration in seconds.
segmentDurationSecondsnumberInitial clip duration in seconds.
extensionCountnumberNumber of scene extensions applied (Veo).
estimatedDurationSecondsnumberEstimated final video duration in seconds.
videosarrayArray of generated video metadata objects.
videoCountnumberNumber of generated video samples.
pollAttemptsnumberNumber of times the node polled for completion.
apiSourcestringAPI host that served the response.
messagestringHuman-readable status, error, or result summary.

Validation rules

  • Prompt (prompt) must be filled before the flow can be saved.