LlamaIndex

VideoGen tools for LlamaIndex agents.

llama-index-tools-videogen is the official LlamaIndex tool package for VideoGen. One call returns the full set of VideoGen tools in LlamaIndex format, ready to pass to an agent. Your agent can turn a script into a finished narrated video, plus generate standalone images, video clips, voiceovers, sound effects, music, and talking-head avatars.

Every tool wraps the official videogen SDK and runs as the team that owns your API key.

Install

$pip install llama-index-tools-videogen

Setup

Get an API key from app.videogen.io/developers and set it as VIDEOGEN_API_KEY:

$export VIDEOGEN_API_KEY="sk_videogen_live_..."

Usage

1from llama_index.core.agent.workflow import FunctionAgent
2from llama_index.llms.openai import OpenAI
3from llama_index.tools.videogen import create_videogen_tools
4
5agent = FunctionAgent(
6 tools=create_videogen_tools(),
7 llm=OpenAI(model="gpt-4o"),
8 system_prompt="You produce short narrated videos with VideoGen when asked.",
9)
10
11response = await agent.run(
12 "Make a short narrated video explaining why staying hydrated matters."
13)
14print(response)

By default each tool blocks until the workflow run or tool execution reaches a terminal state (succeeded, failed, or cancelled) and returns the finished result.

Options

create_videogen_tools reads VIDEOGEN_API_KEY from the environment by default. Pass options to override:

1from videogen import VideoGen
2from llama_index.tools.videogen import create_videogen_tools
3
4tools = create_videogen_tools(
5 client=VideoGen(api_key="sk_videogen_live_..."),
6 wait=False,
7 include=["script_to_video", "generate_image", "text_to_speech"],
8)

You can also use the VideoGenToolSpec class: VideoGenToolSpec().to_tool_list().

OptionDefaultDescription
clientA pre-configured VideoGen client.
api_keyVIDEOGEN_API_KEYAPI key used to build a client when client is omitted.
base_urlVIDEOGEN_BASE_URL or https://api.videogen.ioOverride the API base URL.
waitTrueBlock until the operation finishes and return the result. Set False to return immediately with the run/execution id.
poll_interval_msHow often to poll while waiting, in milliseconds.
timeout_msMaximum time to wait for a terminal state before giving up, in milliseconds.
includeall toolsRestrict the returned tool set to these tool names.

When wait is False, use the matching get_* tool (e.g. get_workflow_run, get_tool_execution) to poll the returned id yourself.

Tools

The package returns 34 tools. Tool names are snake_case (e.g. script_to_video, generate_image); parameters match the corresponding VideoGen SDK method.

  • Workflows (end-to-end video): script_to_video, voiceover_to_video, slideshow_to_video, storyboard_to_video, list_workflow_runs, get_workflow_run, cancel_workflow_run
  • Media generation: generate_image, generate_video_clip, text_to_speech, generate_sound_effect, generate_music, generate_avatar, vectorize_image, remove_image_background, remove_video_background, upscale_image, upscale_video, image_3d_effect, list_tool_executions, get_tool_execution, cancel_tool_execution
  • Projects: list_projects, get_project, export_project, remix_project, list_project_remix_actions
  • Files: upload_file, get_file, list_files
  • Resources & account: list_avatar_presenters, list_tts_voices, list_languages, get_me

For the full parameter list of each tool, see the MCP server reference — the same tools are exposed there — and the REST API reference.