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

ItemDescription
Create taskPOST /videos/montage
Query taskGET /videos/montage/{task_id}
AuthenticationBearer Token

The full request URL consists of the base URL and the endpoint path; see API Basics.

Create Task

Request Parameters

ParameterTypeRequiredDefaultDescription
promptstringYes-Video story description, length 1-5000 characters
image_urlsstring[]No-List of reference image URLs, up to 20 images
durationintegerNo15Video duration, range 10-45 seconds
aspect_ratiostringNo16:9Aspect ratio. Allowed values: 16:9, 9:16, 1:1
resolutionstringNo720pOutput resolution. Allowed values: 720p, 1080p
enable_bgmbooleanNotrueWhether to generate background music
enable_sfxbooleanNotrueWhether to generate sound effects
enable_narrationbooleanNotrueWhether to generate narration
narration_languagestringNoenNarration language, only effective when enable_narration=true; allowed values: en, zh
narrator_presetstringNoautoNarration style, only effective when enable_narration=true; allowed values: auto, warm_story, clean_brand, calm_documentary
callback_urlstringNo-Callback URL invoked when the task completes; must be an HTTP/HTTPS URL, up to 500 characters

Constraints: prompt is required; duration supports 10-45 seconds; image_urls supports up to 20 images.

Request Example

bash
Copy
curl -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
}
FieldTypeDescription
task_idstringTask ID, used to query the result
created_atnumberTask creation time, Unix timestamp in seconds
statusstringTask status; see Task Status

Query Task

Path Parameters

ParameterTypeRequiredDescription
task_idstringYesTask ID returned by the create-task endpoint

Request Example

bash
Copy
curl -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
}
FieldTypeDescription
task_idstringTask ID
statusstringTask status; see Task Status
created_atnumberTask creation time, Unix timestamp in seconds
started_atnumberTime the task started processing, Unix timestamp in seconds
completed_atnumberTask completion time, Unix timestamp in seconds
video_urlstringGenerated video URL

Notes

  • prompt should 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_urls are reference assets; when omitted, the system generates purely from prompt. We recommend using Batch Upload first to obtain stable, accessible image URLs.
  • When enable_narration=false, narration_language and narrator_preset have 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.
Previous
Elements to Video
Next
Text to Image
On this page
Montage to Video | bach.art | bach.art