function generateVideo<TAdapter, TStream>(options): TStream extends true ? AsyncIterable<AGUIEvent, any, any> : Promise<VideoJobResult>;function generateVideo<TAdapter, TStream>(options): TStream extends true ? AsyncIterable<AGUIEvent, any, any> : Promise<VideoJobResult>;Defined in: packages/typescript/ai/src/activities/generateVideo/index.ts:231
Experimental
Generate video - creates a video generation job from a text prompt.
Uses AI video generation models to create videos based on natural language descriptions. Unlike image generation, video generation is asynchronous and requires polling for completion.
When stream: true is passed, handles the full job lifecycle automatically: create job → poll for status → stream updates → yield final result.
Video generation is an experimental feature and may change.
TAdapter extends VideoAdapter<string, any, any, any>
TStream extends boolean = false
VideoCreateOptions<TAdapter, TStream>
TStream extends true ? AsyncIterable<AGUIEvent, any, any> : Promise<VideoJobResult>
import { generateVideo } from '@tanstack/ai'
import { openaiVideo } from '@tanstack/ai-openai'
// Start a video generation job
const { jobId } = await generateVideo({
adapter: openaiVideo('sora-2'),
prompt: 'A cat chasing a dog in a sunny park'
})
console.log('Job started:', jobId)import { generateVideo } from '@tanstack/ai'
import { openaiVideo } from '@tanstack/ai-openai'
// Start a video generation job
const { jobId } = await generateVideo({
adapter: openaiVideo('sora-2'),
prompt: 'A cat chasing a dog in a sunny park'
})
console.log('Job started:', jobId)import { generateVideo, toServerSentEventsResponse } from '@tanstack/ai'
import { openaiVideo } from '@tanstack/ai-openai'
const stream = generateVideo({
adapter: openaiVideo('sora-2'),
prompt: 'A cat chasing a dog in a sunny park',
stream: true,
pollingInterval: 3000,
})
return toServerSentEventsResponse(stream)import { generateVideo, toServerSentEventsResponse } from '@tanstack/ai'
import { openaiVideo } from '@tanstack/ai-openai'
const stream = generateVideo({
adapter: openaiVideo('sora-2'),
prompt: 'A cat chasing a dog in a sunny park',
stream: true,
pollingInterval: 3000,
})
return toServerSentEventsResponse(stream)