CrewAI

VideoGen tools for CrewAI agents and crews.

crewai-videogen is the official CrewAI tool package for VideoGen. One call returns the full set of VideoGen tools in CrewAI format, ready to pass to an Agent or Crew. Your agents 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 crewai-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 crewai import Agent, Crew, Task
2from crewai_videogen import create_videogen_tools
3
4tools = create_videogen_tools()
5
6producer = Agent(
7 role="Video Producer",
8 goal="Produce short narrated videos on request",
9 backstory="An expert at turning briefs into finished videos with VideoGen.",
10 tools=tools,
11)
12
13task = Task(
14 description="Make a short narrated video about why hydration matters.",
15 expected_output="A link to the finished video.",
16 agent=producer,
17)
18
19crew = Crew(agents=[producer], tasks=[task])
20print(crew.kickoff())

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 crewai_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)
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.