İçeriğe geç
API Referansı
API Referansı

HeyGen Video Metinden Videoya

Metinden sesli 5-15 saniyelik video oluşturun; isteğe bağlı olarak referans görüntü, video veya seslerle yönlendirin.

01

Genel Bakış

Metinden videoya uç noktasını desteklenen bir modelle kullanın. Durumunu almak için döndürülen Görev Kimliğini kullanın veya aşağıda belgelenen teslimler için callback_url sağlayın.

Hızlı başlangıç

  1. Bir API anahtarı oluşturun ve RUNAPI_API_KEY olarak ayarlayın.
  2. Desteklenen bir model seçin ve gövdesi o modelin şemasıyla eşleşen bir POST isteği gönderin.
  3. Döndürülen görev kimliğini saklayın, ardından bir terminal durumuna ulaşana kadar yoklama yapın ya da aşağıda belgelenen geri çağırmaları işleyin.

Uç Nokta

POST /api/v1/heygen_video/text_to_video
Temel URL
https://runapi.ai
API sürümü
v1
Kimlik doğrulama
Authorization: Bearer YOUR_API_TOKEN
02

Desteklenen modeller

Güncel fiyatlandırma, hız sınırları ve ticari kullanım ayrıntıları için bir model sayfası açın.

03

İstek şeması

JSON gövdesi

Alanlar ve izin verilen değerler seçili modele göre değişir. Sağlandığında, callback_url aşağıda belgelenen Görev teslimatlarını alır.

heygen-video-110 alan
aspect_ratiostring
İsteğe bağlı

Üretilen videonun en boy oranı; adaptive ilk referans görseli veya videoyu izler ve yalnızca 480p veya 768p referans medyayla kullanılabilir.

İzin verilen değerler: adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
callback_urlstring
İsteğe bağlı

Asenkron bildirimler için webhook URL'si.

duration_secondsinteger
İsteğe bağlı

Oluşturulan video süresi (saniye cinsinden).

İzin verilen değerler: 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Varsayılan: 5
modelstring
Zorunlu

Model tanımlayıcısı.

output_resolutionstring
İsteğe bağlı

Üretilen videonun çözünürlüğü; 1080p ve 2k yalnızca 16:9 ve 9:16 destekler.

İzin verilen değerler: 480p, 768p, 1080p, 2k Varsayılan: 768p
promptstring
Zorunlu

Sahneyi, diyaloğu ve sesi anlatan video üretim istemi.

Aralık: 1 - 16000
reference_audio_urlsarray
İsteğe bağlı

Herkese açık HTTPS referans ses URL'leri, her biri en fazla 32 MB; referans görsel veya video gerektirir.

Öğe sınırı: 3
reference_image_urlsarray
İsteğe bağlı

Herkese açık HTTPS referans görsel URL'leri, her biri en fazla 16 MB; görsel, video ve ses dahil toplam en fazla 12 referans dosyası.

Öğe sınırı: 9
reference_video_urlsarray
İsteğe bağlı

En boy oranı 1:4 ile 4:1 arasında olan herkese açık HTTPS referans video URL'leri, her biri en fazla 32 MB; her videonun yalnızca ilk 5 saniyesi kullanılır.

Öğe sınırı: 3
seedinteger
İsteğe bağlı

Tekrarlanabilir üretim için rastgele tohum değeri.

Aralık: 0 - 4294967295

Koşullu kurallar

Bu gereksinimler, listelenen tüm koşulların eşleştiği durumlarda uygulanır.

  1. Şu durumlarda reference_audio_urls present
    Gerekli
    Kabul edilmez
  2. Şu durumlarda reference_image_urls absent, reference_video_urls absent
    Gerekli
    Kabul edilmez
  3. Şu durumlarda output_resolution = 1080p
    Gerekli
    Kabul edilmez
  4. Şu durumlarda output_resolution = 2k
    Gerekli
    Kabul edilmez
04

Kabul oluştur

HTTP 202

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    },
    "task_replayed": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "id": "tsk_reference_demo",
  "status": "processing"
}
05

Yoklama işleniyor

HTTP 200

GET /api/v1/heygen_video/text_to_video/:id

Yanıt şeması
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "id": "tsk_reference_demo",
  "status": "processing"
}
06

Yoklama tamamlandı

HTTP 200

GET /api/v1/heygen_video/text_to_video/:id

Yanıt şeması
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    },
    "usage": {
      "properties": {
        "cost": {
          "type": "number"
        }
      },
      "required": [
        "cost"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "videos": {
      "items": {
        "properties": {
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "status",
    "videos",
    "usage"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "id": "tsk_reference_demo",
  "status": "completed",
  "usage": {
    "cost": 0.05
  },
  "videos": [
    {
      "url": "https://file.runapi.ai/reference-video.mp4"
    }
  ]
}
07

Yoklama başarısız oldu

HTTP 200

GET /api/v1/heygen_video/text_to_video/:id

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Task processing failed.",
  "id": "tsk_reference_demo",
  "status": "failed"
}
08

Müşteri geri çağırması: tamamlandı

HTTP 200

POST callback_url

Yanıt şeması
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    },
    "usage": {
      "properties": {
        "cost": {
          "type": "number"
        }
      },
      "required": [
        "cost"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "videos": {
      "items": {
        "properties": {
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "status",
    "videos",
    "usage"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "id": "tsk_reference_demo",
  "status": "completed",
  "usage": {
    "cost": 0.05
  },
  "videos": [
    {
      "url": "https://file.runapi.ai/reference-video.mp4"
    }
  ]
}
09

Müşteri geri çağırması: başarısız oldu

HTTP 200

POST callback_url

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "properties": {
            "code": {
              "type": "string"
            },
            "limit_cents": {
              "type": "integer"
            },
            "message": {
              "type": "string"
            },
            "reset_at": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "used_cents": {
              "type": "integer"
            },
            "window": {
              "enum": [
                "1h",
                "1d",
                "7d",
                "daily",
                "weekly",
                "monthly",
                "lifetime"
              ],
              "type": "string"
            }
          },
          "required": [
            "code",
            "message"
          ],
          "type": "object",
          "unevaluatedProperties": false
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": {
    "code": "generation_failed",
    "message": "Task processing failed."
  },
  "id": "tsk_reference_demo",
  "status": "failed"
}
10

Hatalar

HTTP 401

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Authentication required"
}
11

Hatalar

HTTP 401

GET /api/v1/heygen_video/text_to_video/:id

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Authentication required"
}
12

Hatalar

HTTP 400

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "İnsan tarafından okunabilir hata mesajı.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "İnsan tarafından okunabilir doğrulama özeti.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Herkese açık istek alanına göre anahtarlanan doğrulama mesajları; her alan için insan tarafından okunabilir dizelerden oluşan bir dizi içerir.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

Yanıt örneği

JSON
{
  "error": "model must be one of: heygen-video-1"
}
13

Hatalar

HTTP 402

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Insufficient balance"
}
14

Hatalar

HTTP 429

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "API key credit limit exceeded"
}
15

Hatalar

HTTP 409

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "The request uses features that are not supported for the selected model"
}
16

Hatalar

HTTP 429

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Rate limit reached. Please retry later."
}
17

Hatalar

HTTP 503

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Service under maintenance, please try again later"
}
18

Hatalar

HTTP 504

POST /api/v1/heygen_video/text_to_video

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "The request timed out"
}
19

Hatalar

HTTP 404

GET /api/v1/heygen_video/text_to_video/:id

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Task with id 'tsk_reference_demo' not found"
}
20

Oluşturulan Kod Örnekleri

Doğrudan cURL kullanın veya diliniz için bir SDK yükleyin. Her örnek, bu başvuruda gösterilen doğrulanmış isteği gönderir.

Yükle

Shell
pip install runapi-heygen-video
PYTHON
import os
from runapi.heygen_video import HeyGenVideoClient

client = HeyGenVideoClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
  model="heygen-video-1",
  prompt="A plant supervisor in a plain grey coat stands beside a conveyor line and speaks to camera.",
  aspect_ratio="16:9",
  output_resolution="768p"
)