Montage to Video
Montage Video API
Description
The Montage Video API generates a more complete video segment from a story description, with support for reference images as asset cues. Use prompt to describe the narrative structure, scene changes, camera pacing, and brand expression, and use the background music, sound effect, and narration parameters to control the audio layers. This endpoint is designed for producing short films with a beginning, development, and ending — rather than a single-action shot.
Use Cases
- Generate brand films, product stories, event teasers, and social media ads.
- Organize multi-shot video content based on a copy script.
- Use reference images to keep the video aligned with the visual direction of products, characters, or scenes.
Endpoint Information
| Item | Description |
|---|---|
| Create task | POST /videos/montage |
| Query task | GET /videos/montage/{task_id} |
| Authentication | Bearer Token |
The full request URL consists of the base URL and the endpoint path; see API Basics.
Create Task
Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Yes | - | Video story description, length 1-5000 characters |
image_urls | string[] | No | - | List of reference image URLs, up to 20 images |
duration | integer | No | 15 | Video duration, range 10-45 seconds |
aspect_ratio | string | No | 16:9 | Aspect ratio. Allowed values: 16:9, 9:16, 1:1 |
resolution | string | No | 720p | Output resolution. Allowed values: 720p, 1080p |
enable_bgm | boolean | No | true | Whether to generate background music |
enable_sfx | boolean | No | true | Whether to generate sound effects |
enable_narration | boolean | No | true | Whether to generate narration |
narration_language | string | No | en | Narration language, only effective when enable_narration=true; allowed values: en, zh |
narrator_preset | string | No | auto | Narration style, only effective when enable_narration=true; allowed values: auto, warm_story, clean_brand, calm_documentary |
callback_url | string | No | - | Callback URL invoked when the task completes; must be an HTTP/HTTPS URL, up to 500 characters |
Constraints:
promptis required;durationsupports10-45seconds;image_urlssupports up to 20 images.
Request Example
bash
Copycurl -X POST '<BASE_URL>/videos/montage' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <API_TOKEN>' \
-d '{
"prompt": "A brand film about a spring product launch. Cherry blossoms in full bloom; the camera slowly pushes in from a park path to the product display stand. Overall bright and warm tone.",
"image_urls": [
"https://example.com/assets/product-front.jpg",
"https://example.com/assets/product-scene.jpg"
],
"duration": 15,
"aspect_ratio": "16:9",
"resolution": "1080p",
"enable_bgm": true,
"enable_sfx": true,
"enable_narration": true,
"narration_language": "en",
"narrator_preset": "warm_story"
}'
Success Response
json
Copy{
"code": 200,
"data": {
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": 1778313600,
"status": "TASK_PENDING"
},
"timestamp": 1778313600
}
| Field | Type | Description |
|---|---|---|
task_id | string | Task ID, used to query the result |
created_at | number | Task creation time, Unix timestamp in seconds |
status | string | Task status; see Task Status |
Query Task
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | Task ID returned by the create-task endpoint |
Request Example
bash
Copycurl -X GET '<BASE_URL>/videos/montage/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer <API_TOKEN>'
Success Response
json
Copy{
"code": 200,
"data": {
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "TASK_SUCCEEDED",
"created_at": 1778313600,
"started_at": 1778313620,
"completed_at": 1778313800,
"video_url": "https://example.com/result.mp4"
},
"timestamp": 1778313800
}
| Field | Type | Description |
|---|---|---|
task_id | string | Task ID |
status | string | Task status; see Task Status |
created_at | number | Task creation time, Unix timestamp in seconds |
started_at | number | Time the task started processing, Unix timestamp in seconds |
completed_at | number | Task completion time, Unix timestamp in seconds |
video_url | string | Generated video URL |
Notes
promptshould describe the complete video, not just a single frame. We recommend including the story theme, main scenes, camera pacing, audio style, and the intended ending.image_urlsare reference assets; when omitted, the system generates purely fromprompt. We recommend using Batch Upload first to obtain stable, accessible image URLs.- When
enable_narration=false,narration_languageandnarrator_presethave no effect. - If you need a task completion notification, pass a
callback_url— see Using Callbacks for the callback protocol; otherwise, retrieve the task status via the query endpoint.
Related Documents
On this page