The "Short Drama · Film Narration Intelligence" operator can automatically build a plot event index based on multiple episodes of short dramas or a single movie, and plan jump-cut narration videos according to story clues within three approximate duration ranges: short, mid, and long. The operator automatically completes video editing, narration script generation, TTS voiceover, subtitle generation, audio mixing and rendering, and result uploading. It supports narration in both Chinese and English, optional reference audio voice cloning, as well as subtitle background and position control. Each task produces highlight narration material suitable for distribution on video platforms.
Operator ID: las_short_drama_highlight_narration
narration_language.tts_clone_prompt_audio_url; if not provided, the default voice of the execution service is used.subtitle_position.Sub-item | Performance impact description |
|---|---|
Maximum Submit RPM | 5 |
Maximum Poll RPM | 300 |
Sub-item | Detailed requirements |
|---|---|
Supported input data modalities |
|
Input format: video |
|
Input format: audio |
|
Input path requirements | Provide input data to the operator via request parameters
|
Sub-item | Detailed requirements |
|---|---|
Output data modality |
|
Output format: video |
|
Output path: TOS | Specify the storage path for the operator's output results via the request parameter
|
Billing standards
Sub-items | Billing standards description |
|---|---|
Billing items | There are two billing items: Input original video understanding fee and Output narration video fee. The actual task cost generated by the operator is the sum of the two billing items.
|
Billing type | Usage-based billing, unit: |
Unit price | The unit price varies for different sub-billing items. Details are as follows. |
Billing details
Billing formula: Total cost = Input original video understanding fee + Output narration video fee
Sub-billing items | Subdivision | Unit price |
|---|---|---|
Input original video understanding fee | Input original video [0min, 60min] segment | 0.2 CNY/minute |
Input original video segment exceeding 60min | 0.3 CNY/minute | |
Output narration video fee | Not applicable | 1.2 CNY/minute |
Billing example
Total cost = Input original video understanding fee + Output narration video fee(60 minutes * 0.2 CNY/minute + 30 minutes * 0.3 CNY/minute) + 20 minutes * 1.2 CNY/minute45 CNYBilling unit
The billing unit displayed in the billing details for charges incurred by invoking this operator is "Script Generation". Please pay attention to this difference when reviewing your bill.
Details | Caution and prerequisites |
|---|---|
Costs | Before calling an operator, you need to understand the model invocation costs associated with using the operator. For details, see Large model invocation billing. |
Authentication (API Key) | Before calling an operator, you need to generate an API Key for operator invocation. It is recommended to configure the API Key as an environment variable to ensure safer operator calls. For details, see Obtain and configure API Key. |
BaseURL | Before calling an operator, you need to determine the BaseURL for operator invocation based on the region where your current LAS service is deployed. This is used to configure the path parameter values for operator calls. |
Submit interface to obtain the task's task_id, then use the Poll interface to check the status of the corresponding task (task_id) and retrieve the operator's processing result.task_id is valid for 3 days. After 3 days, you will not be able to use this task_id to obtain the operator's processing result.Submit a "Short Drama · Film Commentary Intelligent Creation" task. After a successful submission, a task ID is returned. You can query the task status and retrieve the generated video via the Poll interface.
Parameter | Type | Required | Example value | Description |
|---|---|---|---|---|
operator_id | string | Yes | las_short_drama_highlight_narration | Operator ID |
operator_version | string | Yes | v1 | Operator version |
data | ShortDramaHighlightNarrationReq | Yes | 'Short Drama · Intelligent Video Narration' request parameters | |
pending_timeout_minutes | integer | No | 120 | Maximum waiting time for the task in PENDING status, in minutes; range: 30 to 4320. If not specified, PENDING timeout is not enabled. After timeout, the task status will be EXPIRED. |
Name | Type | Example value | Description |
|---|---|---|---|
metadata | metadata | Request metadata. |
# Optional: Set OUTPUT_TOS_PATH to a TOS directory writable by this account export OUTPUT_TOS_PATH="tos://bucket/output/highlight_narration/" # Optional: Set TTS voice cloning reference audio; if not set, please remove the corresponding field from the request export TTS_CLONE_PROMPT_AUDIO_URL="tos://bucket/audio/voice.wav" curl --location "https://operator.las.cn-beijing.volces.com/api/v1/submit" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $LAS_API_KEY" \ --data '{ "operator_id": "las_short_drama_highlight_narration", "operator_version": "v1", "pending_timeout_minutes": 120, "data": { "input_videos": [ "https://${LAS_TOS_BUCKET}.${TOS_ENDPOINT}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_short_drama_highlight_narration/v1/episode_01.mp4", "https://${LAS_TOS_BUCKET}.${TOS_ENDPOINT}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_short_drama_highlight_narration/v1/episode_02.mp4" ], "target_narration_duration": "short", "narration_language": "zh", "subtitle_blur_mode": "gaussian", "subtitle_position": "bottom", "tts_clone_prompt_audio_url": "$TTS_CLONE_PROMPT_AUDIO_URL", "output_tos_path": "$OUTPUT_TOS_PATH" } }'
{ "metadata": { "task_id": "task-20260715120000-abc123", "task_status": "PENDING", "business_code": "0", "error_msg": "", "request_id": "20260819120000ABCDEF" } }
HttpStatusCode | Error code | Error message | Description |
|---|---|---|---|
400 | Parameter.Invalid | The parameter is invalid. | The parameter is invalid. For example, missing |
400 | Body.Invalid | The body is invalid. | The request body format is invalid or cannot be deserialized. |
400 | Operator.InvalidId | The operator is invalid. | The operator ID does not exist or is unavailable. |
400 | Operator.InvalidVersion | The operator version is invalid. | The operator version does not exist or is unavailable. |
401 | Authorization.Missing | The authorization header is missing. | Authorization information is missing. |
401 | ApiKey.Invalid | The api key is invalid. | The API key is not valid. |
429 | OperatorConcurrencyExceeded | Concurrency limit of the operator is exceeded. | The operator concurrency limit for the current account has been reached. |
429 | OperatorPendingQueueLimitExceeded | Pending queue limit of the operator is exceeded. | The number of pending tasks for the current account has reached the limit. |
429 | APIAccountRpmRateLimitExceeded | The RPM limit for the API on your account has been exceeded. | The API request rate for the current account has exceeded the limit. |
500 | Server.InternalError | General Internal Error | Internal server error. |
Failures in media download, format/duration/size validation, model processing, voice reference audio, and TOS read/write are considered asynchronous task failures and will not be returned as synchronous HTTP 400 responses in the Submit response after successful acceptance. Please use Poll to obtain the business code and error information returned by the execution side.
Query the execution status and result of the "Short Drama · Film Commentary Intelligent Creation" task. Once the task is completed, you can obtain the generated video.
Name | Type | Required | Example value | Description |
|---|---|---|---|---|
operator_id | string | Yes | las_short_drama_highlight_narration | Operator ID |
operator_version | string | Yes | v1 | Operator version |
task_id | string | Yes | task-20260715120000-abc123 | The asynchronous task ID returned by the Submit API |
Name | Type | Example value | Description |
|---|---|---|---|
metadata | metadata | Request metadata. | |
data | ShortDramaHighlightNarrationResp | Task result data. For non-completed or failed states, it usually returns an empty object {}. Only when task_status=COMPLETED is true is videos considered a complete successful result. |
curl --location "https://operator.las.cn-beijing.volces.com/api/v1/poll" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $LAS_API_KEY" \ --data '{ "operator_id": "las_short_drama_highlight_narration", "operator_version": "v1", "task_id": "task-20260715120000-abc123" }'
{ "metadata": { "task_id": "task-20260715120000-abc123", "task_status": "COMPLETED", "business_code": "0", "error_msg": "", "request_id": "20260819120500ABCDEF", "submit_time": "2026-08-19T12:00:00+08:00", "end_time": "2026-08-19T12:05:00+08:00" }, "data": { "videos": [ { "video_id": "v_main_storyline_01", "duration_s": 95.1, "final_video_path": "tos://bucket/output/highlight_narration/main_storyline/v_main_storyline_01/final.mp4", "final_video_url": "https://example.com/final_01.mp4" } ] } }
HttpStatusCode | Error code | Error message | Description |
|---|---|---|---|
400 | Body.Invalid | The body is invalid. | The format of the Poll request body is invalid or cannot be deserialized. |
400 | TaskId.Missing | The task id is missing. |
|
400 | Operator.InvalidId | The operator is invalid. | The operator ID does not exist or is unavailable. |
400 | Operator.InvalidVersion | The operator version is invalid. | The operator version does not exist or is unavailable. |
401 | Authorization.Missing | The authorization header is missing. | Authorization information is missing. |
401 | ApiKey.Invalid | The api key is invalid. | The API key is not valid. |
429 | APIAccountRpmRateLimitExceeded | The RPM limit for the API on your account has been exceeded. | The Poll request frequency for the current account has exceeded the limit. |
200 | TaskId.Invalid | The task id is invalid. | If the non-empty task ID does not exist, or the result does not exist or is temporarily unavailable, the HTTP response is still 200, |
200 | Server.InternalError | General Internal Error | If query or task result parsing fails, the HTTP response is still 200, |
Asynchronous execution failures are also returned via HTTP 200 in the Poll response: metadata.task_status is FAILED, EXPIRED, CANCELLED, or TIMEOUT. The business code and error information provided by the execution side are retained in metadata.business_code and metadata.error_msg. Do not determine task success solely based on the HTTP status of Poll.