tavus-engineering/tavus-skills

tavus-video-gen

Generate AI videos with Tavus replicas.

Voir la source
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

Tavus Video Generation Skill

Generate personalized AI videos with replicas speaking your script.

Quick Start

bash
curl -X POST https://tavusapi.com/v2/videos \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "replica_id": "rfe12d8b9597",
    "script": "Hey there! Welcome to our product demo."
  }'

Response:

json
{
  "video_id": "1e30440cf9",
  "status": "queued"
}

Full API Options

bash
curl -X POST https://tavusapi.com/v2/videos \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "replica_id": "rfe12d8b9597",
    "script": "Your script text here",
    "video_name": "Product Demo v1",
    "callback_url": "https://your-webhook.com/video-ready",
    "background_url": "https://example.com/landing-page",
    "background_source_url": "https://s3.../background.mp4",
    "watermark_url": "https://s3.../logo.png",
    "fast": false,
    "transparent_background": false
  }'

Parameters

ParamDescription
replica_idRequired. Stock or custom replica ID
scriptText for replica to speak (use this OR audio_url)
audio_urlPre-recorded audio (.wav/.mp3) for replica to lip-sync
video_nameDisplay name
callback_urlWebhook for completion/error
background_urlWebsite URL to record as background
background_source_urlVideo file URL for background
watermark_urlPNG/JPEG logo overlay
fastQuick render (disables some features)
transparent_backgroundWebM with alpha (requires fast: true)

Using Audio Instead of Script

json
{
  "replica_id": "rfe12d8b9597",
  "audio_url": "https://s3.../narration.mp3"
}

Supported formats: .wav, .mp3

Background Options

Website Background

Records a scrolling website as the background:

json
{
  "background_url": "https://example.com/landing-page"
}

Video Background

Uses a video file:

json
{
  "background_source_url": "https://s3.../promo-bg.mp4"
}

Transparent Background

For compositing in video editors:

json
{
  "fast": true,
  "transparent_background": true
}

Outputs .webm with alpha channel.

Check Video Status

bash
curl https://tavusapi.com/v2/videos/{video_id} \
  -H "x-api-key: YOUR_API_KEY"

Status values: queued, generating, ready, error, deleted

When ready:

json
{
  "status": "ready",
  "hosted_url": "https://videos.tavus.io/video/xxx",
  "download_url": "https://stream.mux.com/.../high.mp4",
  "stream_url": "https://stream.mux.com/xxx.m3u8"
}

Webhook Callback

On completion:

json
{
  "video_id": "1e30440cf9",
  "status": "ready",
  "hosted_url": "https://videos.tavus.io/video/1e30440cf9",
  "download_url": "...",
  "stream_url": "..."
}

On error:

json
{
  "video_id": "xxx",
  "status": "error",
  "status_details": "Error message here"
}

Scripting Best Practices

  • Keep under 5 minutes for quality/engagement
  • Write conversationally (speak out loud to test)
  • Use punctuation to indicate pauses
  • Clear structure: intro → body → CTA
  • Break long content into multiple videos

List & Delete Videos

bash
# List all videos
curl https://tavusapi.com/v2/videos -H "x-api-key: YOUR_API_KEY"

# Delete video
curl -X DELETE https://tavusapi.com/v2/videos/{video_id} \
  -H "x-api-key: YOUR_API_KEY"