Skip to main content
AI tutorials

Generate Videos from Multiple AI Providers with the Async Video Gen Client

Learn how to install and use Video Gen Client, an async Python toolkit with a unified CLI and bundled FastAPI web interface for generating videos through Seedance, Kling, MiniMax/Hailuo, and Wan providers.

Generate Videos from Multiple AI Providers with the Async Video Gen Client

What Video Gen Client Does

Video Gen Client provides one async Python client for several video-generation providers: Seedance from ByteDance, Kling from Kuaishou, MiniMax/Hailuo, and Wan from Alibaba. Instead of working with separate provider integrations, you can discover available models, submit generation tasks, check their status, and download results through a unified command-line interface or web application.

The project is designed as integration code around provider APIs. Because those APIs and their model IDs can change independently, provider adapters may require updates over time.

Supported Providers and Models

The client currently lists the following provider families and API model IDs:

  • Seedance: version 2.5 uses doubao-seedance-2.5; version 2.0 uses doubao-seedance-2-0-260128; the 2.0 Mini and 2.0 Fast tiers use doubao-seedance-2-0-mini-260615 and doubao-seedance-2-0-fast-260128.
  • Kling: Kling 3.0 and 3.0 Omni use kling-v3 and kling-v3-omni. Other listed models include kling-v2-6, kling-v2-5-turbo, and kling-v2-1-master.
  • MiniMax/Hailuo: H3 uses MiniMax-H3, while version 2.3 uses MiniMax-Hailuo-2.3 and MiniMax-Hailuo-2.3-Fast.
  • Wan: Wan 3.0 uses wan3.0. Wan 2.7, 2.6, and 2.5 provide specialized text-to-video, image-to-video, reference-to-video, or preview model IDs.

Install and Configure the Client

  1. Clone the repository:
    git clone https://github.com/letorig/video-generator-client
    cd video-generator-client
  2. Create a virtual environment:
    python -m venv .venv
  3. Activate the environment. On Windows, run:
    .venv\Scripts\activate
    On macOS or Linux, run:
    source .venv/bin/activate
  4. Install the package with web support:
    pip install -e ".[web]"
  5. Add provider credentials: Copy .env.example to .env, then add credentials for the providers you plan to use. The README does not prescribe a single credential set, so configure only the services required by your workflows.

Generated output is saved to the output folder when using the CLI.

Use the Command-Line Interface

After installation, the video-gen command provides the main workflow for discovering providers, selecting models, starting generation tasks, and checking results.

Discover Providers and Models

Start by viewing available commands and providers:

video-gen --help
video-gen providers

To inspect models for a provider, pass its provider name to the models command:

video-gen models wan

Generate a Video

Submit a text-to-video request with a prompt, provider, model, and duration:

video-gen generate wan --prompt "A snowy forest at dawn" --model 2.1 --duration 5

The command submits the task through the selected provider and saves the resulting output in the output folder. Use the provider and model values exposed by the project when building your own commands, since provider model availability can change.

Check Task Status

For asynchronous generation workflows, query a task with its provider and task ID:

video-gen status wan TASK_ID

Replace TASK_ID with the identifier returned by the generation workflow.

Run the Web Interface

The project includes a web interface directly in the Python package. There is no npm, Node.js, or separate frontend build step. FastAPI serves the HTML interface and exposes JSON endpoints for provider discovery, video generation, task polling, and MP4 downloads.

Start the server with the default host and port:

video-gen serve

You can specify a host and port explicitly:

video-gen serve --host 127.0.0.1 --port 8000

For a server with reload enabled, use:

video-gen serve --host 0.0.0.0 --port 9000 --reload

Web UI Capabilities

The interface supports provider and model selection, text-to-video and image-to-video inputs, negative prompts, duration, aspect ratio, and resolution controls. It also provides live task-status polling, video preview, MP4 download, and in-memory task history for the current server session.

Practical Workflow Tips

  • Inspect before generating: Run video-gen providers and video-gen models PROVIDER before choosing a provider or model.
  • Keep credentials scoped: Add only the provider credentials needed for your current workflow to the .env file.
  • Use asynchronous task tracking: Generation can be monitored with the status command and the web interface's live polling.
  • Choose the interface that fits your workflow: The CLI is convenient for scripts and terminal-based jobs, while the web UI provides interactive controls and previews.
  • Expect integration maintenance: Provider APIs and model IDs are independent of this SDK and may change, so verify adapters and model catalogs when a provider updates its service.

Project Structure

The repository separates the client, command-line interface, web server, model catalog, provider adapters, static web assets, examples, tests, and utility code:

src/video_gen/
├── client.py
├── cli.py
├── web.py
├── catalog.py
├── static/index.html
├── providers/
└── utils/

Configuration is represented by .env.example, while packaging and installation settings are defined in pyproject.toml. The repository also contains examples/, tests/, and an optional mcp_server/ directory.

Conclusion

Video Gen Client gives Python developers a unified way to work with multiple video-generation providers. Install it in a virtual environment, configure the required credentials, discover supported models, and submit tasks through the CLI or bundled FastAPI web UI. For production use, monitor provider changes because model IDs and API behavior may evolve independently of the client.