MOJO GOGO
User GuideAPI ReferenceHelp & SupportBusiness Cooperation

SeeDance Video API Documentation

SeeDance Video API Documentation

ByteDance Doubao SeeDance provides high-quality video generation models. This document describes the complete API interface specification for using SeeDance 2.0 and SeeDance 2.5 models for video generation. All video generation calls use the same /v1/video/generations endpoint, with different parameters depending on the use case.


Supported Models

Currently supported models include:

ModelDescription
doubao-seedance-2-0-fast-260128SeeDance 2.0 fast video generation model
doubao-seedance-2-0-260128SeeDance 2.0 video generation model
doubao-seedance-2-5-260628SeeDance 2.5 video generation model
dreamina-seedance-2-0-fast-260128SeeDance 2.0 fast video generation model (overseas version)
dreamina-seedance-2-0-260128SeeDance 2.0 video generation model (overseas version)
dreamina-seedance-2-5-260628SeeDance 2.5 video generation model (overseas version)

The request format is identical for every model above. The allowed values for some parameters differ between the 2.0 and 2.5 families — see Model Differences.


Overview

The SeeDance video generation feature provides an asynchronous task processing mechanism:

  1. Submit Task: Send an image and text prompt to create a video generation task
  2. Query Status: Query generation progress and status through task ID
  3. Get Results: Retrieve the generated video file after task completion

Task Status Flow

queued → in_progress → completed

            failed
  • queued: Task has been submitted and is waiting to be processed
  • in_progress: Task is being processed
  • completed: Task completed successfully, video has been generated
  • failed: Task failed

API List

MethodPathDescription
POST/v1/video/generationsSubmit video generation task
GET/v1/video/generations/{task_id}Query task status

Model Differences

SeeDance 2.5 accepts the same request shape as 2.0, but raises every reference-input ceiling, adds audio-only input and mov output, and constrains the aspect ratio in some modes. Requests that exceed the limits of the selected model are rejected with a 400 invalid_request error before they reach the upstream provider.

Parameter / capabilitySeeDance 2.0 seriesSeeDance 2.5
durationDefault 5. Integers 415, or -1 for automatic durationDefault -1. Integers 430, or -1 for automatic duration. Video editing tasks accept -1 only
size (resolution)Default 720p. 480p, 720p; doubao-seedance-2-0-260128 and dreamina-seedance-2-0-260128 also accept 1080p and 4kDefault 720p. 480p, 720p
metadata.ratioDefault adaptive. 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptiveSame values for text-to-video and reference-to-video. First/last-frame, video editing and video extension accept adaptive only
Reference imagesUp to 9Up to 30
Reference videosUp to 3; see constraintsUp to 10; see constraints
Reference audioUp to 3; requires at least one reference image or videoUp to 10; may be used on its own (see Audio-Only Reference)
Image input formatsjpeg, png, webp, bmp, tiff, gifAlso heic and heif
metadata.output_formatNot supported (always mp4)mp4 (default) or mov
Video editing / extensionNot supportedSupported (see Video Editing and Extension)

Additional metadata fields

These optional fields are forwarded to the model as-is and apply to all SeeDance models unless noted otherwise.

FieldTypeDescription
metadata.resolutionstringAlternative to the top-level size field; overrides it when both are present
metadata.durationintegerAlternative to the top-level duration field; overrides it when both are present
metadata.generate_audiobooleanDefault true. When true the model generates voice, sound effects and background music matching the footage; false produces a silent video
metadata.return_last_framebooleanDefault false. When true the last frame of the generated video is also returned, as a PNG with the same pixel dimensions and no watermark
metadata.watermarkbooleanDefault false. When true an AI Generated watermark is shown in the lower-right corner
metadata.output_formatstringSeeDance 2.5 only. mp4 (default) or mov. mov uses high-colour-precision professional encoding (H.264 / YUV 4:4:4 / PCM audio) that some players cannot open; it is recommended for video editing and extension workflows
metadata.priorityintegerDefault 0. Range 09; a higher value moves the task ahead of lower-priority queued tasks
metadata.execution_expires_afterintegerDefault 172800 (48 hours). Range 3600259200 seconds. A task still queued or running after this time is terminated
metadata.safety_identifierstringStable, opaque per-end-user identifier, at most 64 characters. Use a hash of the user ID rather than personal data
metadata.toolsarray of objectOpts into upstream tooling, e.g. [{"type": "web_search"}]. SeeDance 2.0 and 2.5 only
metadata.callback_urlstringIf set, attempts to send callbacks to the specified URL. See Callback documentation for more details

Metadata keys other than the ones documented here (and imageMode, referenceVideos, referenceAudio, which are consumed while building the request) are ignored.

Usage Examples

Examples 1–5 apply to both the 2.0 and 2.5 families; substitute any supported model name and observe the limits in Model Differences. Examples 6–7 cover capabilities that only exist on SeeDance 2.5.

1. Basic Text Prompt

Text-to-video uses prompt and model. Optional top-level fields include duration and size. Other options can go in metadata as needed.

Request body:

{
    "prompt": "A large hand-shaped marble statue with vines growing on it, on a platform in the middle of a shallow pool of water.",
    "model": "doubao-seedance-2-0-fast-260128",
    "duration": 8,
    "size": "720p",
    "metadata": {
        "ratio": "16:9",
        "callback_url": ""
    }
}
FieldTypeRequiredDescription
promptstringYesText prompt for the video
modelstringYesModel name (e.g. doubao-seedance-2-0-fast-260128)
durationintegerNoDefault 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection
sizestringNoDefault 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k
metadataobjectNoExtra metadata
metadata.ratiostringNoDefault adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
metadata.callback_urlstringNoIf set, attempts to send callbacks to the specified URL. See Callback documentation for more details

2. First/Last Frame Images

Provide one or two image URLs in images: the first entry is the first frame; when two URLs are given, the second is the last frame. Optional top-level duration and size match Basic Text Prompt.

Request body:

{
    "prompt": "The girl in the frame says cheese to the camera; 360-degree orbit camera move.",
    "model": "doubao-seedance-2-0-fast-260128",
    "images": [
        "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_first_frame.jpeg",
        "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_last_frame.jpeg"
    ],
    "duration": 8,
    "size": "720p",
    "metadata": {
        "ratio": "16:9",
        "callback_url": ""        
    }
}
FieldTypeRequiredDescription
promptstringYesText prompt for the video
modelstringYesModel name (e.g. doubao-seedance-2-0-fast-260128)
imagesarray of stringYesOne or two image URLs: first frame, and optionally last frame
durationintegerNoDefault 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection
sizestringNoDefault 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k
metadataobjectNoExtra metadata
metadata.ratiostringNoDefault adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive. SeeDance 2.5 accepts adaptive only in this mode — the output always keeps the aspect ratio of the first frame
metadata.callback_urlstringNoIf set, attempts to send callbacks to the specified URL. See Callback documentation for more details

3. Reference Images

This flow also uses the top-level images array. Set metadata.imageMode to reference so each URL is treated as a reference image (not first/last frame). In this mode you can pass up to nine images on 2.0 models and up to thirty on 2.5 models. Optional top-level duration and size work the same as in Basic Text Prompt. In the prompt, reference images with tags such as [image 1], [image 2], … in the same order as images.

Request body:

{
    "prompt": "[image 1] A boy wearing glasses and a blue T-shirt and [image 2] a corgi puppy, sitting on the lawn in [image 3], 3D cartoon style.",
    "model": "doubao-seedance-2-0-fast-260128",
    "images": [
        "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_1.png",
        "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_2.png",
        "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_3.png"
    ],
    "duration": 8,
    "size": "720p",
    "metadata": {
        "imageMode": "reference",
        "ratio": "16:9",
        "callback_url": ""
    }
}
FieldTypeRequiredDescription
promptstringYesText prompt; use [image 1][image N] to refer to images in order
modelstringYesModel name (e.g. doubao-seedance-2-0-fast-260128)
imagesarray of stringYesReference image URLs (up to 9 on 2.0, 30 on 2.5)
durationintegerNoDefault 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection
sizestringNoDefault 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k
metadataobjectNoMust include imageMode: reference for reference-image mode
metadata.imageModestringYes (this mode)Set to reference
metadata.ratiostringNoDefault adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
metadata.callback_urlstringNoIf set, attempts to send callbacks to the specified URL. See Callback documentation for more details

Constraints on each reference image:

  • Count: up to 9 images on 2.0 models, up to 30 on 2.5 models.
  • Format: jpeg, png, webp, bmp, tiff, gif; 2.5 models also accept heic and heif.
  • Aspect ratio (width ÷ height): between 0.4 and 2.5 (inclusive).
  • Width and height (pixels): each between 300 and 6000 (inclusive).
  • File size: each image must not exceed 30 MB, and the whole request body must not exceed 64 MB. Prefer URLs over base64 for large files.

4. Reference Videos

Pass reference clip URLs in metadata.referenceVideos (up to three on 2.0 models, up to ten on 2.5 models). The prompt can refer to them in order (e.g. [video 1], [video 2], [video 3]).

Request body:

{
    "prompt": "In [video 1], the arched window opens and we enter the gallery interior; cut to [video 2], then the camera moves into the painting; cut to [video 3].",
    "model": "doubao-seedance-2-0-fast-260128",
    "size": "720p",
    "duration": 8,
    "metadata": {
        "ratio": "16:9",
        "referenceVideos": [
            "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video1.mp4",
            "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4",
            "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"
        ],
        "callback_url": ""
    }
}
FieldTypeRequiredDescription
promptstringYesText prompt describing how to use the reference videos (e.g. [video 1], [video 2], [video 3] in order)
modelstringYesModel name (e.g. doubao-seedance-2-0-fast-260128)
durationintegerNoDefault 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection
sizestringNoDefault 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k
metadataobjectNoMust include referenceVideos for this mode
metadata.ratiostringNoDefault adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive. SeeDance 2.5 accepts adaptive only when the reference videos are edited or extended rather than used as style/content references
metadata.referenceVideosarray of stringYes (this mode)Up to 3 video URLs on 2.0, up to 10 on 2.5
metadata.callback_urlstringNoIf set, attempts to send callbacks to the specified URL. See Callback documentation for more details

Constraints on each reference video (and inputs overall):

  • Count: at most 3 URLs in referenceVideos on 2.0 models, at most 10 on 2.5 models.
  • Container format: mp4 or mov.
  • Resolution: 480p or 720p on 2.0 models; 480p, 720p, 1080p or 4k on 2.5 models.
  • Duration per clip: on 2.0 models each video must be between 2 and 15 seconds (inclusive) and the combined duration of all input videos must not exceed 15 seconds; on 2.5 models each video must be between 2 and 30 seconds and the combined duration must not exceed 30 seconds.
  • Aspect ratio (width ÷ height): between 0.4 and 2.5 (inclusive).
  • Width and height (pixels): each between 300 and 6000 (inclusive).
  • Total pixels (width × height): between 409600 and 927408 (inclusive) on 2.0 models; between 409600 and 8295044 (inclusive) on 2.5 models.
  • File size: each file must not exceed 50 MB on 2.0 models, or 200 MB on 2.5 models.
  • Frame rate: between 24 and 60 fps (inclusive).

5. Multimodal References

Combine reference images (images + metadata.imageMode: reference), reference videos (metadata.referenceVideos), and reference audio (metadata.referenceAudio) in one request. Prompts can reference assets by role (e.g. [video 1], [audio 1], [image 1], [image 2]) as in the single-mode sections. Reference videos must still meet the constraints in Reference Videos.

Request body:

{
    "prompt": "First-person framing from [video 1] throughout; use [audio 1] as background music throughout. First-person fruit tea ad for Seedance Ping Ping An An limited-edition apple fruit tea. First frame is [image 1]: your hand picks a dewy Aksu red apple, crisp apple impact sounds. 2-4s: quick cuts — your hands drop apple pieces into a shaker with ice and tea base, shake hard; ice and shaker sounds sync to light drum hits; voiceover: Fresh-cut, shaken fresh. 4-6s: first-person product close-up — layered fruit tea poured into a clear cup, you pipe cream on top and apply a pink label wrap; camera pushes in on cream and tea layers. 6-8s: first-person — you raise the drink from [image 2] toward the camera (as if offering it to the viewer); label clearly visible; voiceover: Take a fresh sip; end frame freezes on [image 2]. Female voice throughout.",
    "model": "doubao-seedance-2-0-fast-260128",
    "images": [
        "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg",
        "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg"
    ],
    "size": "720p",
    "duration": 11,
    "metadata": {
        "imageMode": "reference",
        "referenceVideos": [
            "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4"
        ],
        "referenceAudio": [
            "https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3"
        ],
        "ratio": "16:9",
        "callback_url": ""
    }
}
FieldTypeRequiredDescription
promptstringYesLong-form prompt referencing [video N], [audio N], [image N] as needed
modelstringYesModel name (e.g. doubao-seedance-2-0-fast-260128)
imagesarray of stringNoReference image URLs when metadata.imageMode is reference (up to 9 on 2.0, 30 on 2.5; see Reference Images)
durationintegerNoDefault 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection
sizestringNoDefault 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k
metadataobjectNoCombines modes below
metadata.imageModestringWhen using images as referencesSet to reference
metadata.referenceVideosarray of stringNoReference video URLs (up to 3 on 2.0, 10 on 2.5; constraints in Reference Videos)
metadata.referenceAudioarray of stringNoReference audio URLs (up to 3 on 2.0, 10 on 2.5). On 2.0 models audio cannot be used alone — at least one reference image or video is required
metadata.ratiostringNoDefault adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
metadata.callback_urlstringNoIf set, attempts to send callbacks to the specified URL. See Callback documentation for more details

Constraints on each reference audio clip:

  • Count: at most 3 URLs in referenceAudio on 2.0 models, at most 10 on 2.5 models.
  • Format: wav or mp3.
  • Duration per clip: on 2.0 models each clip must be between 2 and 15 seconds (inclusive) with a combined duration of at most 15 seconds; on 2.5 models each clip must be between 2 and 30 seconds with a combined duration of at most 30 seconds.
  • File size: each file must not exceed 15 MB, and the whole request body must not exceed 64 MB. Prefer URLs over base64 for large files.
  • Companion input: on 2.0 models referenceAudio requires at least one reference image or reference video; requests without one are rejected with 400 invalid_request. 2.5 models accept audio on its own.

Generated audio is always mono, regardless of how many channels the input audio has.

6. Audio-Only Reference (SeeDance 2.5)

SeeDance 2.5 is the first family that accepts reference audio with no accompanying image or video. Pass the clip(s) in metadata.referenceAudio and describe the footage that should be generated around them; the model synchronises the visuals to the supplied audio. The same audio constraints as in Multimodal References apply.

Sending this request to a 2.0 model returns 400 invalid_request.

Request body:

{
    "prompt": "A lone busker plays on a rain-slick city street at night, neon signs reflected in the puddles. Use [audio 1] as the performance audio and cut the camera moves to its rhythm; slow push-in on the guitar, then a wide shot as passers-by stop to listen.",
    "model": "doubao-seedance-2-5-260628",
    "duration": 12,
    "size": "720p",
    "metadata": {
        "referenceAudio": [
            "https://example.com/audio/street-guitar.mp3"
        ],
        "ratio": "16:9",
        "callback_url": ""
    }
}
FieldTypeRequiredDescription
promptstringNoText prompt describing the visuals; refer to the clips as [audio 1], [audio 2], … in order
modelstringYesA SeeDance 2.5 model name (e.g. doubao-seedance-2-5-260628)
durationintegerNoDefault -1. Allowed: integers from 4 to 30, inclusive, or -1 for automatic duration selection
sizestringNoDefault 720p. Allowed: 480p, 720p
metadataobjectYesMust include referenceAudio for this mode
metadata.referenceAudioarray of stringYes (this mode)Up to 10 audio URLs, each wav or mp3, 2–30 seconds, 30 seconds combined
metadata.ratiostringNoDefault adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
metadata.callback_urlstringNoIf set, attempts to send callbacks to the specified URL. See Callback documentation for more details

7. Video Editing and Extension (SeeDance 2.5)

SeeDance 2.5 can also edit a source clip (restyle it, change its setting, replace its audio while keeping the original motion) or extend it forwards or backwards. Both flows pass the source clip in metadata.referenceVideos and describe the intended change in the prompt.

The task type is inferred from the input assets and the prompt, so write the prompt explicitly — say "keep the original footage and only change …" for an edit, or "continue from the final frame …" for an extension. Both flows have stricter parameter constraints than plain reference-to-video:

  • metadata.ratio must be adaptive: the output always keeps the aspect ratio of the input video.
  • For editing, duration must be -1; the output length follows the input (and may be about 0.4 seconds shorter). The input clip must be 4–30 seconds long.
  • For extending, duration may be set to any value from 4 to 30, or -1.
  • metadata.output_format: mov is recommended for both the input and the output when the result feeds a professional post-production workflow.

Request body (editing):

{
    "prompt": "Keep the original footage, framing and camera movement exactly as they are; restyle the whole shot as a hand-painted watercolour animation and change the overcast daytime sky to a violet sunset.",
    "model": "doubao-seedance-2-5-260628",
    "duration": -1,
    "metadata": {
        "referenceVideos": [
            "https://example.com/video/street_walk.mov"
        ],
        "ratio": "adaptive",
        "output_format": "mov",
        "callback_url": ""
    }
}

Request body (extending):

{
    "prompt": "Continue [video 1] from its final frame without any cut: the camera keeps pushing down the corridor, the door at the far end swings open and reveals a sunlit courtyard.",
    "model": "doubao-seedance-2-5-260628",
    "duration": 10,
    "metadata": {
        "referenceVideos": [
            "https://example.com/video/corridor.mp4"
        ],
        "ratio": "adaptive",
        "callback_url": ""
    }
}
FieldTypeRequiredDescription
promptstringYesText prompt describing the edit or the continuation
modelstringYesA SeeDance 2.5 model name (e.g. doubao-seedance-2-5-260628)
durationintegerNoEditing: must be -1. Extension: integers from 4 to 30, inclusive, or -1
sizestringNoDefault 720p. Allowed: 480p, 720p
metadataobjectYesMust include referenceVideos for this mode
metadata.referenceVideosarray of stringYes (this mode)Source video URLs; constraints in Reference Videos. Editing requires a clip of 4–30 seconds
metadata.ratiostringNoMust be adaptive (the default) in these modes
metadata.output_formatstringNomp4 (default) or mov. mov is recommended for editing and extension
metadata.callback_urlstringNoIf set, attempts to send callbacks to the specified URL. See Callback documentation for more details

1. Submit Video Generation Task

Use the JSON bodies in Usage Examples above; adjust fields for your scenario.

Complete Request:

curl -X POST "https://pay.hkit.ai/v1/video/generations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer API_KEY" \
  -d @request-body.json

Endpoint:

POST /v1/video/generations

Request Headers:

ParameterTypeRequiredDescription
Content-TypestringYesapplication/json
AuthorizationstringYesBearer API_KEY

Response Example:

{
  "task_id": "TASK_ID"
}

Response Field Descriptions:

FieldTypeDescription
task_idstringTask ID for subsequent task status queries

2. Query Task Status

Complete Request:

curl -X GET "https://pay.hkit.ai/v1/video/generations/TASK_ID" \
  -H "Authorization: Bearer API_KEY"

Endpoint:

GET /v1/video/generations/{task_id}

Request Headers:

ParameterTypeRequiredDescription
AuthorizationstringYesBearer API_KEY

Path Parameters:

ParameterTypeRequiredDescription
task_idstringYesTask ID

Response Example (Processing):

{
    "code": "success",
    "message": "",
    "data": {
        "task_id": "<TASK_ID>",
        "action": "generate",
        "status": "IN_PROGRESS",
        "fail_reason": "",
        "submit_time": 1776717808,
        "start_time": 1776717809,
        "finish_time": 0,
        "progress": "30%",
        "data": {
            "created_at": 1776717808,
            "draft": false,
            "execution_expires_after": 172800,
            "generate_audio": true,
            "id": "<TASK_ID>",
            "model": "doubao-seedance-2-0-fast-260128",
            "service_tier": "default",
            "status": "running",
            "updated_at": 1776717808
        }
    }
}

Response Example (Success):

Note: When the task succeeds, the data.fail_reason field will contain the video download URL instead of an error message — this is a known behavior of the upstream SeeDance API. The recommended way to retrieve the video URL is via data.data.content.video_url.

{
    "code": "success",
    "message": "",
    "data": {
        "task_id": "<TASK_ID>",
        "action": "generate",
        "status": "SUCCESS",
        "fail_reason": "<VIDEO_URL>",
        "submit_time": 1776717808,
        "start_time": 1776717818,
        "finish_time": 1776717962,
        "progress": "100%",
        "data": {
            "content": {
                "video_url": "<VIDEO_URL>"
            },
            "created_at": 1776717808,
            "draft": false,
            "duration": 4,
            "execution_expires_after": 172800,
            "framespersecond": 24,
            "generate_audio": true,
            "id": "<TASK_ID>",
            "model": "doubao-seedance-2-0-fast-260128",
            "ratio": "16:9",
            "resolution": "480p",
            "seed": 93719,
            "service_tier": "default",
            "status": "succeeded",
            "updated_at": 1776717961,
            "usage": {
                "completion_tokens": 40594,
                "total_tokens": 40594
            }
        }
    }
}

Note: The returned duration is an integer approximation, calculated as the total frame count divided by 24 and rounded down. A 133-frame video lasts 5.54 seconds but reports a duration of 5.

3. Callback

POST <YOUR_CALLBACK_URL>

The webhook requests consist of "wrapper" data, taking the following format:

{
  "webhook_type": "VIDEO_TASK",
  "payload": {
    "channel_type": "DoubaoVideo",
    "data": {}
  }
}

The payload.data field contains the data in the same format that the 2. Query Task Status endpoint's response.data would provide.

Request Example (Task Running)

{
  "webhook_type": "VIDEO_TASK",
  "payload": {
    "channel_type": "DoubaoVideo",
    "data": {
      "task_id": "<TASK_ID>",
      "action": "generate",
      "status": "IN_PROGRESS",
      "fail_reason": "",
      "submit_time": 1776717808,
      "start_time": 1776717809,
      "finish_time": 0,
      "progress": "30%",
      "data": {
        "created_at": 1776717808,
        "draft": false,
        "execution_expires_after": 172800,
        "generate_audio": true,
        "id": "<TASK_ID>",
        "model": "doubao-seedance-2-0-fast-260128",
        "service_tier": "default",
        "status": "running",
        "updated_at": 1776717808
      }
    }
  }
}

Request Example (Task Completed Successfully)

{
  "webhook_type": "VIDEO_TASK",
  "payload": {
    "channel_type": "DoubaoVideo",
    "data": {
      "task_id": "<TASK_ID>",
      "action": "generate",
      "status": "SUCCESS",
      "fail_reason": "<VIDEO_URL>",
      "submit_time": 1776717808,
      "start_time": 1776717818,
      "finish_time": 1776717962,
      "progress": "100%",
      "data": {
        "content": {
          "video_url": "<VIDEO_URL>"
        },
        "created_at": 1776717808,
        "draft": false,
        "duration": 4,
        "execution_expires_after": 172800,
        "framespersecond": 24,
        "generate_audio": true,
        "id": "<TASK_ID>",
        "model": "doubao-seedance-2-0-fast-260128",
        "ratio": "16:9",
        "resolution": "480p",
        "seed": 93719,
        "service_tier": "default",
        "status": "succeeded",
        "updated_at": 1776717961,
        "usage": {
          "completion_tokens": 40594,
          "total_tokens": 40594
        }
      }
    }
  }
}