ModelSell 文档
视频系列通用视频

创建视频生成任务

POST
/v1/video/generations

创建视频生成任务。该通用接口覆盖 HappyHorse、Seedance、Veo、万相等 /v1/video/generations 提供商。

使用 Seedance 2.0 / 2.5 时,通用字段会转换为官方 content[] 格式:prompt 转为文本内容,imageimages 转为参考图片,metadata.video_url 转为参考视频,metadata.audio_url 转为参考音频,size 转为 resolutionmetadata.ratio 转为 ratio。创建成功后保存返回的任务 ID,并通过 GET /v1/video/generations/{task_id} 轮询结果。

Seedance 2.0 / 2.5 素材支持自动上传:在图片、视频或音频素材字段中直接传入公网可访问的 https:// 链接,系统会自动识别并上传素材,无需提前调用 /api/assets/upload

使用 Wan 3.0 时,imageimages[] 的前两张图片会转换为 first_framelast_framereference_images[].url 转换为 reference_imagevideo.url 转换为 reference_video。需要参考音频、文件、网页或完整控制原生字段时,通过 metadata.input.mediametadata.parameters 传入;非空的 metadata.input.media 会替换所有快捷媒体字段。 Seedance 2.5 任务类型放在顶层 omni_reference_task_type,兼容 metadata.omni_reference_task_type(顶层优先);metadata.content 非空时完整替换快捷媒体映射。编辑使用 duration: -1metadata.ratio: adaptive;延长也要求 metadata.ratio: adaptivesecondsduration 不要传冲突值。Seedance 的 watermarkreturn_last_frameseedcamera_fixeddraftservice_tierexecution_expires_afterprioritysafety_identifiercallback_urloutput_formattoolsframes 放在 metadata 下;所有内置 Seedance 路径保留显式 false/0,多视频和多音频数组不会截为第一项。

Authorization

bearerAuth
AuthorizationBearer <token>

使用 Authorization Bearer API Key 进行鉴权。

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/video/generations" \  -H "Content-Type: application/json" \  -d '{    "model": "doubao-seedance-2-0-260128",    "prompt": "生成一段苹果果茶广告。",    "duration": 15,    "size": "720p",    "metadata": {      "ratio": "16:9",      "watermark": true,      "return_last_frame": true,      "generate_audio": false,      "priority": 0    }  }'
{
  "id": "task_123456",
  "task_id": "task_123456",
  "object": "video",
  "status": "completed",
  "model": "string",
  "created_at": 0,
  "updated_at": 0,
  "completed_at": 0,
  "expires_at": 0,
  "seconds": "string",
  "size": "string",
  "progress": 0,
  "url": "http://example.com",
  "video_url": "http://example.com",
  "content_url": "http://example.com",
  "remixed_from_video_id": "string",
  "output": [
    {}
  ],
  "metadata": {
    "url": "string",
    "usage": {
      "completion_tokens": 0,
      "total_tokens": 0,
      "tool_usage": {
        "web_search": 0
      }
    },
    "last_frame_url": "http://example.com",
    "output_format": "string",
    "duration": 0,
    "duration_seconds": 0,
    "resolution": "string",
    "ratio": "string",
    "seed": 0,
    "generate_audio": true
  },
  "error": {}
}
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}