You need to enable JavaScript to run this app.
Lake AI Service

Lake AI Service

Copy page
Download PDF
Video Editing
Intelligent Video Editing
Copy page
Download PDF
Intelligent Video Editing

The video intelligent editing operator leverages multimodal large models to provide intelligent video editing capabilities, enabling users to quickly extract valuable content segments from long videos. Supports understanding editing requirements described in natural language, reference image-assisted recognition (such as characters, objects, scenes, and dialogues), multidimensional video content analysis (visuals, subtitles, storyline), and outputs standardized editing decision information (timestamps, descriptions, and more).

Operator introduction

Operator ID: las_video_edit

Applicable scenarios

  • Video editing
    • Batch production of short drama delivery materials: For live-action short dramas and AI comic drama delivery scenarios, after inputting the original episode, the operator can intelligently identify storyline highlights with high conversion potential, combine storyline understanding to generate high-impact mixed editing materials in batches that are ready for delivery, significantly improving the efficiency of material production and reducing the production cost per material.
    • Assist manual editing to improve ROI: Simultaneously outputs precise timestamps, storyline shot lists, and highlight segment information, helping editors quickly locate key conflicts, plot twists, and emotional highlights, reducing the cost of frame-by-frame searching and rough editing. Meanwhile, use AI-generated materials for online trial delivery to quickly validate user interest points, then have manual editors perform in-depth secondary editing based on validated highlight storylines, enhancing material production efficiency and delivery ROI.
  • Audio editing
    • Intelligent cleaning of voice-over materials: Identifies valid content, stutters, repetitions, speech errors, noise, and more, for downstream processing according to tags.

Core capabilities

  • A variety of common editing task scenarios for video and audio editing are preset for you. You can quickly invoke the operator for editing by using the preset editing tasks (task_name).
    • Video editing:
      • Common scenarios covered include: character segment extraction, highlight segment detection, product segment detection, custom editing, and more.
      • Supports reference image-assisted recognition (such as characters, objects, scenes), and multidimensional video content analysis (visuals, subtitles, storyline).
      • Short drama scenario: Supports rendering of the three key elements for short dramas (title, prompt, and corner mark), suitable for vertical screen short drama scenarios; supports highlight pre-roll functionality, automatically extracting a 10–15 second attractive segment as the opening.
    • Audio editing:
      • Covers single-person and two-person voice-over scenarios.
      • Supports returning semantic tags such as spear, label, and label_reason, facilitating in-depth voice-over video editing based on processing results.
  • In addition to preset editing tasks, user-defined editing requirements are also supported. By configuring custom editing requirements (task_description), enabling flexible interpretation of editing requirements described in natural language.
  • Supports enabling ASR-enhanced semantic understanding (enable_asr=true), suitable for editing scenarios with rich dialogue content and no subtitles, improving the smoothness of segment boundaries.
  • Standardized editing decision output, including: timestamps, descriptions of editing results, and many other items, facilitating further downstream editing.

Effect showcase


[Video editing example: Highlight sequential editing for short dramas]
  • Input video
  • Key parameters: Three key elements for short dramas
    {
    "mode": "detail",
    "enable_asr":true,
    "task_name":"SHORT_DRAMA_HIGHLIGHT_EXTRACTION",
    "extra_config":{
        "miniseries_elements":{
        "title":"《错换千金:冰山机长将我宠上天》",
        "hint":"影视效果 请勿模仿 无不良价值观引导",
        "template_name":"模板1"}
                },
    "preset_intro":{
         "transition":"fade",
         "transition_duration":0.5
                }
        }
    
  • Output result 1:
    {
    "clip_id":"clip_001",
    "start_time":"00:00:43.000",
    "end_time":"00:02:12.240",
    "duration":89.24000000000001,
    "confidence":0.75
    }
    
  • Output result 2
    {
    "clip_id":"clip_002",
    "start_time":"00:01:38.640",
    "end_time":"00:02:18.000",
    "duration":39.36,
    "confidence":0.95
    }
    

[Video editing example: Key character segment extraction]
  • Input video
  • Reference image
  • Key parameters
    {
    "mode": "detail",
    "task_description":"提取莲影角色的所有片段,包含台词",
    "reference_images": {
       "target":"莲影",
       "images":[
        "tos://las-doctest/las-ai/input/video/short_drama/中文剧集/reference-images/lianying-child-front-v1.png"]        },
    "output_tos_path": "tos://las-doctest/las-ai/output/las_video_edit/movie/lianying-cut/",
    "min_clip_duration": 30,
    "max_clip_count": 3
        }
    
  • Output result 1
  • Output result 2
  • Output result 3

[Audio editing example: Voice-over audio editing]
  • Input video
  • Key parameters
    {
    "video_url": "tos://las-doctest/las-ai/input/video/marketing_video/割草机口播-含画外音.mp4",
    "task_description": "这是一段割草机口播的录制素材。请保留自然割草机的产品介绍关系,删除拍摄调度、让对方重说、跳过、直接开始、设备沟通、画外提示、重复表达和无效口癖。label 使用 KEEP、REPEAT、CORRECTION、FILLER、NOISE;不要因为 speaker 不同就删除有效对话。",
    "enable_asr": true
        }
    
  • Audio editing result example
    Image
    • The returned results include the tags (label) for each segment after audio editing and the reasons for tagging (label_reason).
  • Example after further editing processing:
  • You can filter segments based on the results of audio editing, such as by tags, to further refine and process the video.
  • For example, filter segments with "label": "NOISE" and use editing tools to remove these parts from the video.

Supported regions

  • Beijing: cn-beijing
  • Shanghai: cn-shanghai
  • Guangzhou: cn-guangzhou

Operator performance

Sub-item
Performance impact description

Maximum RPM

600

Maximum concurrency

10

Processing time

  • Total processing time depends on the source file duration, processing method, and network environment.
  • Performance and cost balance for different processing methods:
    • Simple mode: fast speed, low cost
    • Detailed mode: high quality, higher cost

Network performance

  • It is recommended to access TOS sources and write TOS results within the Volcano Engine intranet environment for more stable network performance.

Input and output requirements

Input requirements

Subcategories

Detailed requirements

Supported input data modalities

  • Video
  • Audio
  • Image (reference image)
  • Text (Prompt)

Input format: video/audio

  • Formats: mp4, mp3, wav, ogg, raw
  • Size: The total duration of the video input must be between 1 second and 5 hours. Inputs shorter than 1 second will not be processed and will return an error message directly; the overall file size must not exceed 5GB.

Input format: image

  • Other: Effective only when ASR enhancement is not enabled (enable_asr = false).

Input path requirements

Provide operator input data via request parameters video_url and reference_images. Currently, two methods are supported: public URL and TOS path.

  • Public URL: A URL accessible from the public network, format http/https.
    • Public URLs do not support addresses requiring login status or additional header authentication; temporary URLs must remain valid during task execution.
  • TOS path: After uploading the data to be processed to a TOS Bucket under the same primary account and region as the current LAS service, you can provide the TOS path in the format tos://bucket_name/demo.
    • The TOS object must exist and have read permissions.

Output requirements

Subcategories

Detailed requirements

Output data modalities

  • Video
  • Text (Poll interface direct return)

Output path: TOS
(Video editing scenario)

In the video editing scenario, specify the storage path for the operator output result using the request parameter output_tos_path. Currently, TOS paths are supported.

  • TOS path: A TOS Bucket directory under the same primary account and region as the LAS service, with write permissions, format: tos://bucket/output/.

Output path: API
(Audio editing scenario)

In the audio editing scenario, after the operator completes processing, the edited result will be returned directly via the Poll interface's return parameter.

Billing description
  • Billing standards

    Breakdown item
    Billing standards description

    Billing item

    Enter the duration of the source file.

    Billing type

    Usage-based billing, unit: CNY/minute, billed every hour based on actual usage. Billing precision: truncated to the second

    Unit price

    The pricing depends on the selected intelligent editing scenario. Different editing scenarios and editing modes have different unit prices.

  • Billing details
    Billing formula: Total cost = unit price * usage

    Sub-scenarios
    Unit price

    Video editing with the simple mode

    • That is, the request parameter mode = simple

    1.5 CNY/minute

    Video editing with the detail mode

    • That is, the request parameter mode = detail

    2 CNY/minute

    Audio-only editing

    • That is, the mode parameter is not configured in the request parameters, and enable_asr = true

    0.3 CNY/minute

    tip

    In the audio-only editing scenario, after calling the operator, the billing details display the charge as the "video editing - simple mode" billing item. The difference in the billing item display does not affect the actual cost calculation and settlement.

Caution and prerequisites

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.
For details, see Obtain the Base URL. The Examples below are for reference only; when making actual calls, replace the path values with those corresponding to your region.

REST API call

API instructions

  • The API for this operator is an asynchronous task interface. You need to submit a task via the 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 results.
  • Caution: After submitting a task, the task_id is valid for 3 days. After 3 days, you will not be able to retrieve the operator's processing results using this task_id.

submit

Interface description

Submit processing tasks by invoking the intelligent video editing operator, supporting intelligent analysis of public network, Volcano Engine intranet, or TOS source files, and returning edited video segments or segment analysis results based on audio semantics.

Request parameters

const properties = ("columns": [
{ "title": "Parameter", "dataIndex": "column_0", "key": "column_0", "width": 300 },
{ "title": "Type", "dataIndex": "column_1", "key": "column_1", "width": 150 },
{ "title": "Required", "dataIndex": "column_2", "key": "column_2", "width": 80 },
{ "title": "Example value", "dataIndex": "column_3", "key": "column_3", "width": 150 },
{ "title": "Description", "dataIndex": "column_4", "key": "column_4" }
  ],
  "data": [
    {
      "key": "1",
      "column_0": "operator_id",
      "column_1": "string",
"column_2": "Yes",
      "column_3": "las_video_edit",
"column_4": "Operator ID"
    },
    {
      "key": "2",
      "column_0": "operator_version",
      "column_1": "string",
"column_2": "Yes",
      "column_3": "v1",
"column_4": "Operator version"
    },
    {
      "key": "3",
      "column_0": "data",
      "column_1": "VideoEditUserReqParams",
"column_2": "Yes",
      "column_3": "",
"column_4": "Video editing request parameters",
      "children": [
        {
          "key": "3-1",
          "column_0": "video_url",
          "column_1": "list of string",
"column_2": "Yes",
          "column_3": "https://example.com/video.mp4",
"column_4": "Downloadable address of the source file. Supports http/https and Volcano TOS (tos://bucket/key). The source file must be accessible; the total duration of the video must be between 1 second and 5 hours, and the file size must not exceed 5GB. When only returning timeline annotations based on audio semantics, mp3, wav, ogg, and raw audio files are supported."
        },
        {
          "key": "3-2",
          "column_0": "task_name",
          "column_1": "string",
"column_2": "Optional",
          "column_3": "MOVIE_HIGHLIGHT_EXTRACTION",
"column_4": < div> Built-in common scenario names; at least one of task_description or this must be provided. When both are provided, task_description takes precedence and task_name is ignored. Optional values for task_name include:< ul>< li> MOVIE_HIGHLIGHT_EXTRACTION: Extract highlights from movies and TV shows. </ li>< li> HIGHLIGHT_CLIP_EXTRACTION: Extract general highlight clips. </ li>< li> PRODUCT_HIGHLIGHT_DETECTION: Extract product highlight clips from promotional videos. </ li>< li> SHORT_DRAMA_HIGHLIGHT_EXTRACTION: Sequential highlight extraction for short dramas, suitable for vertical short drama scenarios. It is recommended to use with < code> enable_asr=true</ code>. </ li>< li> SINGLE_SPEAKER_ORAL: Single-speaker oral content, suitable for monologues, single-person explanations to camera, single-person product introductions, and similar oral materials. Must be used with < code> enable_asr=true</ code> and without < code> mode</ code>. </ li>< li> DUAL_SPEAKER_ORAL: Dual-speaker oral/interview, suitable for two-person interviews, conversations, Q&A interactions, and similar oral materials. Must be used with < code> enable_asr=true</ code> and without < code> mode</ code>. </li></ul></div>
        },
        {
          "key": "3-3",
          "column_0": "task_description",
          "column_1": "string",
"column_2": "No",
"column_3": "Extract all segments of the Nick character, including lines.",
"column_4": < div> A clear natural language description of the editing requirements; at least one of task_name or this must be provided. < br/> In audio editing scenarios, you can specify your own audio annotation label system in task_description. Example script:< br/> This is a two-person talk show. Please use the following labels: < ul>< li> INSIGHT: Expression of unique insights;</ li>< li> QUESTION: Asking good questions;</ li>< li> STORY: Telling a story or case;</ li>< li> FILLER: Transitional or filler speech with no information;</ li>< li> REPEAT: Repeated expressions;</ li></ ul> Label each segment with the most appropriate tag. </div>
        },
        {
          "key": "3-4",
          "column_0": "reference_images",
          "column_1": "list of ReferenceImage",
"column_2": "No",
          "column_3": "",
"column_4": < div> Reference image list (supports URL or TOS address), used to assist in identifying specified characters, objects, and so on. The structure is < code>&#91;&#123;"target":"Reference object name","images":&#91;"image address"&#93;&#125;&#93;</ code>; Only effective when ASR enhancement is not enabled; if reference image download fails, returns < code> ReferenceImage.DownloadFailed</ code>. </div>,
          "children": [
            {
              "key": "3-4-1",
              "column_0": "target",
              "column_1": "string",
"column_2": "Yes",
              "column_3": "nick",
"column_4": "Reference object name"
            },
            {
              "key": "3-4-2",
              "column_0": "images",
              "column_1": "list of string",
"column_2": "Yes",
              "column_3": "[\"tos://path/to/image.jpg\"]",
"column_4": "Reference object image address; supports http/https/tos:// protocol"
            }
          ]
        },
        {
          "key": "3-5",
          "column_0": "output_tos_path",
          "column_1": "string",
"column_2": "No",
          "column_3": "",
"column_4": < div> Directory in TOS for saving video clips, format: tos://bucket/path. The TOS credentials used for the request must have write permissions for this directory; if the bucket does not exist, the path is inaccessible, region configuration is inconsistent, or permissions are insufficient, Tos.AccessFailed will be returned. < br/> The scenario for video editing must be specified; for audio editing scenarios (when < code> mode</ code> is not provided and < code> enable_asr=true</ code>), configuration is not required. </div>
        },
        {
          "key": "3-6",
          "column_0": "mode",
          "column_1": "string",
"column_2": "No",
          "column_3": "simple",
"column_4": < div> Configuration is required for video editing scenarios to explicitly specify the video editing processing mode. Optional values include:< ul>< li>< b> simple</ b>: High speed, low cost</ li>< li>< b> detail</ b>: High quality, higher cost, suitable for extracting segments from sports scenarios. </ li> ul>< br/>< code> mode</ code> and < code> enable_asr</ code> parameter configurations determine whether the current editing task is video editing or audio editing. < ul>< li> When the < code> mode</ code> parameter is provided: indicates a video editing task, and the input source file will be processed for video editing output. Only the detail mode supports enabling ASR enhancement. If < code> mode=simple</ code> and < code> enable_asr=true</ code>, < code> Parameter.Invalid</ code> is returned. </ li> li> If < code> mode</ code> is not provided and ASR enhancement is not enabled (< code> enable_asr=false</ code>): indicates it is still a video editing task, and video editing will be processed in < code> simple</ code> mode;</ li>< li> If < code> mode</ code> is not provided and ASR enhancement is enabled (< code> enable_asr=true</ code>): indicates an audio editing task, returns segment analysis results based on audio semantics, does not use video frame information, and does not generate video segments. </li></ul></div>
        },
        {
          "key": "3-7",
          "column_0": "enable_asr",
          "column_1": "boolean",
"column_2": "No",
          "column_3": "true",
"column_4": < div> Whether to introduce ASR for semantic understanding enhancement. Applicable to videos with rich dialogue content and no subtitles, and scenarios requiring smooth boundaries for video segments. It is recommended that the video duration be within 1 hour. < ul>< li>< code> false</ code>: ASR is not enabled, the dialogue field is not returned</ li>< li>< code> true</ code>: ASR is enabled. </li></ul>
< br/>< code> enable_asr</ code> and < code> mode</ code> parameter configurations determine whether the current editing task is video editing or audio editing. For details, refer to the above < code> mode</ code> parameter description. </div>
        },
        {
          "key": "3-8",
          "column_0": "min_clip_duration",
          "column_1": "integer",
"column_2": "No",
          "column_3": "5",
"column_4": < div> Filtering rule for editing results in video editing scenarios: video segments shorter than this duration will be filtered out. < ul>< li> Unit: seconds. Valid range: 1–1800 seconds. Default is 1 second. </ li> li> Setting a value that is too large may result in empty results. If no segments meet the criteria after filtering, the task returns COMPLETED with clips=&#91;&#93;, total_segments=0. </ li> ul>< br/> For audio editing scenarios (when < code> mode</ code> is not provided and < code> enable_asr=true</ code>), configuration is not required. If configured, parameter validity will be checked, but it will not take effect in practice. </div>
        },
        {
          "key": "3-9",
          "column_0": "max_clip_duration",
          "column_1": "integer",
"column_2": "No",
          "column_3": "60",
"column_4": < div> Filtering rule for editing results in video editing scenarios: video segments longer than this duration will be filtered out. < ul>< li> Unit: seconds. Valid range: 1–1800 seconds. 0 means no limit. Default is 0. </ li> li> Setting a value that is too short may cause content fragmentation.  li>< li> When max_clip_duration &gt; 0, max_clip_duration &gt;= min_clip_duration must be satisfied; otherwise, the error code Parameter.Invalid is returned.  li>< li> max_clip_duration cannot exceed the duration of the input video.  li> ul>< br/> For audio clipping scenarios (when < code> mode code> is not specified and < code> enable_asr=true code>), configuration is not required. If configured, parameter validity will be checked, but the configuration will not take effect. </div>
        },
        {
          "key": "3-10",
          "column_0": "max_clip_count",
          "column_1": "integer",
"column_2": "No",
          "column_3": "10",
"column_4": < div> Filtering rules for clipping results in video clipping scenarios. This specifies the maximum number of highlight segments to return. The model will attempt to return the number of video segments according to this requirement. < ul>< li> Valid range: 1–50. 0 means no limit. The default is 0.  li>< li> Setting this value too high may result in a large number of low-quality segments being returned.  li> ul>< br/> For audio clipping scenarios (when < code> mode code> is not specified and < code> enable_asr=true code>), configuration is not required. If configured, parameter validity will be checked, but the configuration will not take effect. </div>
        },
        {
          "key": "3-11",
          "column_0": "extra_config",
          "column_1": "ExtraConfig",
"column_2": "No",
"column_3": "See example below",
"column_4": < div> Additional editing configuration. Currently, miniseries three-element rendering and highlight intro features are supported. Available only when < code> mode=detail code> and < code> enable_asr=true code>. If these conditions are not met, < code> Parameter.Invalid code> is returned. < code> miniseries_elements code> and < code> preset_intro code> can be provided at the same time. If both are provided and a highlight intro is generated, the intro segment will be concatenated before the main segment, and the miniseries three elements will be rendered. </div>,
          "children": [
            {
              "key": "3-11-1",
              "column_0": "miniseries_elements",
              "column_1": "MiniseriesElements",
"column_2": "No",
              "column_3": "",
"column_4": < div> Miniseries three-element configuration, suitable for vertical miniseries scenarios. The rendering effect includes the title, hint, and badge. Only < code> title code>, < code> hint code>, and < code> template_name code> fields are supported. </div>,
              "children": [
                {
                  "key": "3-11-1-1",
                  "column_0": "title",
                  "column_1": "string",
"column_2": "Yes",
"column_3": "《错换千金:冰山机长将我宠上天》",
"column_4": "Miniseries name, displayed centered at the top of the video"
                },
                {
                  "key": "3-11-1-2",
                  "column_0": "hint",
                  "column_1": "string",
"column_2": "Yes",
"column_3": "影视效果 请勿模仿",
"column_4": "Hint, displayed vertically on the left or right according to the template"
                },
                {
                  "key": "3-11-1-3",
                  "column_0": "template_name",
                  "column_1": "string",
"column_2": "Yes",
"column_3": "模板1",
"column_4": < div> Template name, optional values:< ul>< li>< b>模板1 b>: Title centered at the top + hint vertically on the left + badge "Popular Miniseries" at the top right li>< li>< b>模板2 b>: Title centered at the top + hint vertically on the right + badge "Now Airing" at the top right li>< li>< b>模板3 b>: Title centered at the top + hint vertically on the left + badge "Recommended Hit" at the top right li> ul> If another value is provided, < code> Parameter.Invalid code> is returned. </div>
                }
              ]
            },
            {
              "key": "3-11-2",
              "column_0": "preset_intro",
              "column_1": "PresetIntro",
"column_2": "No",
              "column_3": "",
"column_4": < div> Highlight intro configuration. Passing a < code> preset_intro code> object enables this feature. The system will select a 10–15 second attractive segment from those that meet the < code> task_description code> requirements and place it at the beginning to quickly engage users. Whether a highlight intro is actually generated is determined by the < code> preset_start_time code>, < code> preset_end_time code>, and < code> preset_duration code> fields in the returned result. </div>,
              "children": [
                {
                  "key": "3-11-2-1",
                  "column_0": "transition",
                  "column_1": "string",
"column_2": "No",
                  "column_3": "fade",
"column_4": < div> Transition type between the pre-roll and the main video. Optional values:< ul>< li>< code> none</ code>: No transition, direct concatenation. transition_duration is not effective.</ li>< li>< code> fade</ code>: Fade in and out, used together with transition_duration.</ li></ ul> div>
                },
                {
                  "key": "3-11-2-2",
                  "column_0": "transition_duration",
                  "column_1": "float",
"column_2": "No",
                  "column_3": "0.5",
"column_4": "Transition duration (seconds), recommended: 0.5"
                }
              ]
            }
          ]
        },
        {
          "key": "3-12",
          "column_0": "output_format",
          "column_1": "string",
"column_2": "No",
          "column_3": "mp4",
"column_4": < div> The output video format in the video editing scenario. Currently, only mp4 output is supported. If not specified, mp4 is used by default. < br/> In the audio editing scenario (when < code> mode</ code> is not specified and < code> enable_asr=true</ code>), video files are currently not generated, so this parameter can be ignored. </div>
        }
      ]
    }
  ]
}); 
return <Table border={{ cell: true, wrapper: true }} pagination={false} {...properties} />;

Response parameters

Parameter

Type

Example value

Description

metadata

metadata

Request metadata

task_id

string

task-xxx

Task ID in asynchronous mode, used for job status queries.

task_status

string

PENDING

Task status in asynchronous mode.

  • PENDING, request received
  • RUNNING, in progress
  • COMPLETED, completed
  • FAILED, failed
  • TIMEOUT, timed out

business_code

string

0

Business code.

error_msg

string

If an exception occurs, detailed exception information will be returned.

Request example

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_video_edit",
    "operator_version": "v1",
    "data": {
        "video_url": ["https://${LAS_TOS_BUCKET}.${TOS_ENDPOINT}/operator_cards_serving/public/${LAS_ENVIRONMENT}/shared_video_dataset/A_Quiet_Place_movie_clip.mp4"],
        "task_description": "提取戴帽子的小男孩的所有片段,包含台词",
        "output_tos_path": "$OUTPUT_TOS_PATH",
        "mode": "detail",
        "enable_asr": true
    }
}'

Response example

{
    "metadata": {
        "task_id": "task-20251125163544-abc123",
        "task_status": "PENDING",
        "business_code": "0",
        "error_msg": ""
    }
}

Error code

HttpStatusCode

Error code

Error message

Description

400

Url.Invalid

The url is invalid.

The video URL is invalid.

400

Video.Invalid

The video file is invalid.

The video file is invalid.

400

Video.DurationExceeded

Video duration exceeds maximum limit of 5 hours.

The duration of a single video or the total duration of multiple videos exceeds the maximum limit.

400

Video.FileTooLarge

Video file size exceeds maximum limit of 5GB.

The video file size exceeds the limit.

400

Parameter.Invalid

The parameter is invalid.

Parameter is invalid

401

Authorization.Missing

Missing Authorization.

Missing authorization

401

ApiKey.InValid

The api key is invalid.

API is invalid

400

Video.DurationTooShort

Video duration is too short, minimum 1 second required.

The video duration is too short.

400

Video.Timeout

Video processing timeout.

Video processing timeout

500

Internal.ServerError

Internal server error.

Internal server error

Poll

Interface description

Query the execution status and result of the video editing task.

Request parameters

Parameter

Type

Required

Example value

Description

operator_id

string

Required

las_video_edit

Operator ID

operator_version

string

Required

v1

Operator version

task_id

string

Required

task-xxx

Task ID

Response parameters

const properties = ("columns": [
{ "title": "Parameter", "dataIndex": "column_0", "key": "column_0", "width": 300 },
{ "title": "Type", "dataIndex": "column_1", "key": "column_1", "width": 150 },
{ "title": "Example value", "dataIndex": "column_2", "key": "column_2", "width": 150 },
{ "title": "Description", "dataIndex": "column_3", "key": "column_3" }
  ],
  "data": [
    {
      "key": "1",
      "column_0": "metadata",
      "column_1": "metadata",
      "column_2": "",
"column_3": "Request metadata",
      "children": [
        {
          "key": "1-1",
          "column_0": "task_id",
          "column_1": "string",
          "column_2": "task-xxx",
"column_3": "Task ID in asynchronous mode."
        },
        {
          "key": "1-2",
          "column_0": "task_status",
          "column_1": "string",
          "column_2": "COMPLETED",
"column_3": < div> Task status in asynchronous mode. < br/>< ul>< li> PENDING, task submitted and queued</ li>< li> RUNNING, running</ li>< li> COMPLETED, completed</ li>< li> FAILED, failed</ li>< li> TIMEOUT, timed out</ li></ ul> div>
        },
        {
          "key": "submit_time_1",
          "children": [],
          "column_0": "submit_time",
          "column_1": "string",
          "column_2": "2026-07-21T16:04:06+08:00",
"column_3": "Task submission time, formatted as an ISO 8601 timestamp."
        },
        {
          "key": "end_time_1",
          "children": [],
          "column_0": "end_time",
          "column_1": "string",
          "column_2": "2026-07-21T16:04:06+08:00",
"column_3": "Task end time, formatted as an ISO 8601 timestamp."
        },
        {
          "key": "1-3",
          "column_0": "business_code",
          "column_1": "string",
          "column_2": "0",
"column_3": "Business code."
        },
        {
          "key": "1-4",
          "column_0": "error_msg",
          "column_1": "string",
          "column_2": "",
"column_3": "If an exception occurs, detailed exception information will be returned."
        }
      ]
    },
    {
      "key": "2",
      "column_0": "data",
      "column_1": "VideoEditResponse",
      "column_2": "",
"column_3": < div> Task result data. When all source files are processed successfully,< code> task_status=COMPLETED</ code>,< code> business_code=0</ code>. When some source files fail to be processed,< code> task_status=FAILED</ code>,< code> business_code=Video.PartialFailure</ code>,< code> data</ code> will still be returned:< code> clips</ code> contains segments from successfully processed source files,< code> videos</ code> contains the processing status and failure reasons for each source file. When all source files fail to be processed,< code> business_code=Video.AllSourcesFailed</ code>, no valid processing result is returned. < code> PENDING</ code>,< code> RUNNING</ code> or < code> TIMEOUT</ code>, a placeholder empty structure may be returned, such as < code>&#123;"video_duration":0.0,"total_segments":0,"clips":&#91;&#93;,"resolution":""&#125;</ code>. This structure does not indicate that there are ultimately no matched segments. If the task fails or times out, please refer to < code> metadata.business_code</ code> and < code> metadata.error_msg</ code> to determine the overall cause; when some source files fail to be processed, please check < code> data.videos</ code> for the < code> business_code</ code> and < code> error_msg</ code> of the corresponding source file for specific reasons. </div>,
      "children": [
        {
          "key": "2-1",
          "column_0": "total_segments",
          "column_1": "integer",
          "column_2": "8",
"column_3": "The total number of segments that actually meet the requirements in this response."
        },
        {
          "key": "2-2",
          "column_0": "clips",
          "column_1": "list of VideoClipInfo",
          "column_2": "",
"column_3": "Segment list. In the video editing scenario, returns the edited video segments; when only timeline annotation based on audio semantics is performed, currently supports returning all voice timeline segments.",
          "children": [
            {
              "key": "2-2-1",
              "column_0": "clip_id",
              "column_1": "string",
              "column_2": "clip_001",
"column_3": "Unique identifier for the segment."
            },
            {
              "key": "2-2-2",
              "column_0": "source_id",
              "column_1": "string",
              "column_2": "source_001",
"column_3": "The unique identifier of the input video to which the current segment belongs."
            },
            {
              "key": "2-2-3",
              "column_0": "start_time",
              "column_1": "string",
              "column_2": "00:02:05.000",
"column_3": "Segment start time (HH:MM:SS.mmm format)."
            },
            {
              "key": "2-2-4",
              "column_0": "end_time",
              "column_1": "string",
              "column_2": "00:02:14.500",
"column_3": "Segment end time (HH:MM:SS.mmm format)."
            },
            {
              "key": "2-2-5",
              "column_0": "duration",
              "column_1": "float",
              "column_2": "9.5",
"column_3": "Segment duration (seconds)."
            },
            {
              "key": "2-2-6",
              "column_0": "description",
              "column_1": "string",
"column_2": "Dialogue between Nick and Judy at the police station",
"column_3": "Segment description information. May be empty when only timeline annotation based on audio semantics is performed."
            },
            {
              "key": "2-2-7",
              "column_0": "dialogue",
              "column_1": "string",
"column_2": "Do you need help?",
"column_3": "Segment dialogue content, from the ASR recognition result within the segment. Returned only when enable_asr is enabled and there is ASR content in the segment."
            },
            {
              "key": "2-2-8",
              "column_0": "clip_url",
              "column_1": "string",
              "column_2": "tos://bucket/path/clip_001.mp4",
"column_3": "TOS URI of the edited segment. When only timeline annotation based on audio semantics is performed, video segments are currently not generated and this field is not returned."
            },
            {
              "key": "2-2-9",
              "column_0": "file_size",
              "column_1": "integer",
              "column_2": "1993083",
"column_3": "Segment file size (bytes). When only timeline annotation based on audio semantics is performed, video segments are currently not generated and this field is not returned."
            },
            {
              "key": "2-2-10",
              "column_0": "confidence",
              "column_1": "float",
              "column_2": "1.0",
"column_3": "Confidence score (0.0-1.0), indicating the model's confidence that the segment meets the requirements."
            },
            {
              "key": "2-2-11",
              "column_0": "meta",
              "column_1": "object",
              "column_2": "{\"scene_type\": \"indoor\"}",
"column_3": < div> Custom metadata, used to store additional information requested by the user via task_description; when only timeline annotation based on audio semantics is performed, semantic tag information such as speaker, label, and label_reason can also be returned. < br/> The supported values for the label field returned in preset voice-over task scenarios include:< ul>< li> KEEP: Indicates that the current segment is a valid utterance. </ li>< li> REPEAT: The same sentence was repeated. </ li>< li> CORRECTION: Slip of the tongue or self-correction. </ li>< li> FILLER: Filler words (for example: um, uh, well, you know, and so on). </ li>< li> NOISE: Environmental noise or off-screen sound. </li></ul></div>
            },
            {
              "key": "2-2-12",
              "column_0": "preset_start_time",
              "column_1": "string",
              "column_2": "00:02:09.000",
"column_3": "Preset segment start time (HH:MM:SS.mmm format). Value is only present if there is an actual preset segment."
            },
            {
              "key": "2-2-13",
              "column_0": "preset_end_time",
              "column_1": "string",
              "column_2": "00:02:21.000",
"column_3": "Preset segment end time (HH:MM:SS.mmm format). Value is only present if there is an actual preset segment."
            },
            {
              "key": "2-2-14",
              "column_0": "preset_duration",
              "column_1": "float",
              "column_2": "12",
"column_3": "Preset segment duration (seconds). Value is only present if there is an actual preset segment."
            },
            {
              "key": "2-2-15",
              "column_0": "preset_description",
              "column_1": "string",
              "column_2": "-",
"column_3": "Preset segment content description. Value is only present if there is an actual preset segment."
            }
          ]
        },
        {
          "key": "2-3",
          "column_0": "videos",
          "column_1": "list of VideoSourceInfo",
          "column_2": "",
"column_3": "Input video list and processing result information. In multi-input scenarios, this can be used to view the processing status, basic properties, and statistics of identified segments for each source video.",
          "children": [
            {
              "key": "2-3-1",
              "column_0": "episode",
              "column_1": "integer",
              "column_2": "1",
"column_3": "Video sequence number."
            },
            {
              "key": "2-3-2",
              "column_0": "source_id",
              "column_1": "string",
              "column_2": "source_001",
"column_3": "Unique identifier for the input video."
            },
            {
              "key": "2-3-3",
              "column_0": "source_index",
              "column_1": "integer",
              "column_2": "0",
"column_3": "Index position of the input video in the request list, starting from 0."
            },
            {
              "key": "2-3-4",
              "column_0": "video_url",
              "column_1": "string",
              "column_2": "https://example.com/video.mp4",
"column_3": "Input video URL."
            },
            {
              "key": "2-3-5",
              "column_0": "media_type",
              "column_1": "string",
              "column_2": "video",
"column_3": < div> Media type, currently always < code> video</ code>. </div>
            },
            {
              "key": "2-3-6",
              "column_0": "status",
              "column_1": "string",
              "column_2": "SUCCEEDED",
"column_3": < div> Processing status of the current video. Enumeration values:< code> SUCCEEDED</ code> (processing succeeded), < code> FAILED</ code> (processing failed). </div>
            },
            {
              "key": "2-3-7",
              "column_0": "file_size",
              "column_1": "integer",
              "column_2": "58499535",
"column_3": "Input video file size (bytes)."
            },
            {
              "key": "2-3-8",
              "column_0": "duration",
              "column_1": "float",
              "column_2": "482.482",
"column_3": "Input video duration (seconds)."
            },
            {
              "key": "2-3-9",
              "column_0": "resolution",
              "column_1": "string",
              "column_2": "1280x720",
"column_3": "Input video resolution."
            },
            {
              "key": "2-3-10",
              "column_0": "candidate_clip_count",
              "column_1": "integer",
              "column_2": "2",
"column_3": "Number of candidate segments for the current video."
            },
            {
              "key": "2-3-11",
              "column_0": "selected_clip_count",
              "column_1": "integer",
              "column_2": "2",
"column_3": "Number of final selected segments for the current video."
            },
            {
              "key": "2-3-12",
              "column_0": "business_code",
              "column_1": "string",
              "column_2": "null",
"column_3": "Business code corresponding to the processing of the current video; may be empty if successful."
            },
            {
              "key": "2-3-13",
              "column_0": "error_msg",
              "column_1": "string",
              "column_2": "null",
"column_3": "Error message when processing the current video fails; empty if successful."
            }
          ]
        },
        {
          "key": "2-4",
          "column_0": "video_duration",
          "column_1": "float",
          "column_2": "300.09",
"column_3": "Original source file duration (seconds)."
        },
        {
          "key": "2-5",
          "column_0": "resolution",
          "column_1": "string",
          "column_2": "1920x800",
"column_3": "Original video resolution (such as \"1920x1080\"). This field is not returned when only audio semantics are used."
        }
      ]
    }
  ]
}); 
return <Table border={{ cell: true, wrapper: true }} pagination={false} {...properties} />;

Request example

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_video_edit",
    "operator_version": "v1",
    "task_id": "task-20251125163544-abc123"
}'

Response example

{
    "metadata": {
        "task_id": "task-20251125163544-abc123",
        "task_status": "COMPLETED",
        "submit_time": "2026-07-21T16:04:06+08:00",
        "end_time": "2026-07-21T16:04:06+08:00",
        "business_code": "0",
        "error_msg": ""
    },
    "data": {
        "total_segments": 8,
        "videos": [
            {
                "episode": 1,
                "source_id": "source_001",
                "source_index": 0,
                "video_url": "https://example.com/video.mp4",
                "media_type": "video",
                "status": "SUCCEEDED",
                "file_size": 58499535,
                "duration": 482.482,
                "resolution": "1280x720",
                "candidate_clip_count": 2,
                "selected_clip_count": 2,
                "business_code": null,
                "error_msg": null
            }
        ],
        "clips": [
            {
                "clip_id": "clip_001",
                "source_id": "source_001",
                "start_time": "00:02:05.000",
                "end_time": "00:02:14.500",
                "duration": 9.5,
"description": "A young boy wearing a hat appears behind the counter, with subtitles displayed at the bottom of the screen. The boy wearing a hat sits on the floor next to the shelf.",
                "dialogue": "Tak apa",
                "clip_url": "tos://${LAS_TOS_BUCKET}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_video_edit/v1/clip_001.mp4",
                "file_size": 1993083,
                "confidence": 1.0,
                "meta": null
            },
            {
                "clip_id": "clip_002",
                "source_id": "source_001",
                "start_time": "00:02:27.000",
                "end_time": "00:02:30.500",
                "duration": 3.5,
"description": "The boy wearing a hat sits on the floor next to the shelf, facing the left side of the screen.",
                "clip_url": "tos://${LAS_TOS_BUCKET}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_video_edit/v1/clip_002.mp4",
                "file_size": 419782,
                "confidence": 1.0,
                "meta": null
            },
            {
                "clip_id": "clip_003",
                "source_id": "source_001",
                "start_time": "00:02:52.000",
                "end_time": "00:03:17.500",
                "duration": 25.5,
"description": "A woman approaches the boy wearing a hat who is sitting on the floor, interacts with him, feeds him, and touches his hat. The boy wearing a patterned knit hat sits against the wall; a woman hands him a water bottle, he takes it and drinks, then begins to speak.",
                "clip_url": "tos://${LAS_TOS_BUCKET}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_video_edit/v1/clip_003.mp4",
                "file_size": 4616337,
                "confidence": 1.0,
                "meta": null
            },
            {
                "clip_id": "clip_004",
                "source_id": "source_001",
                "start_time": "00:03:26.000",
                "end_time": "00:03:51.500",
                "duration": 25.5,
"description": "The boy wearing a dark hat is on the supermarket floor, squatting and playing interactively with another girl, making gestures similar to launching a rocket.",
                "dialogue": "Roket",
                "clip_url": "tos://${LAS_TOS_BUCKET}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_video_edit/v1/clip_004.mp4",
                "file_size": 5612855,
                "confidence": 1.0,
                "meta": null
            },
            {
                "clip_id": "clip_005",
                "source_id": "source_001",
                "start_time": "00:03:56.000",
                "end_time": "00:04:02.500",
                "duration": 6.5,
"description": "The boy wearing a red-and-white striped knit hat speaks, expressing the idea of leaving this planet. The boy wearing a hat stands in front of the shelf, delivers a line, and raises one finger.",
                "dialogue": "Itulah caranya..... Kita pergi dari Planet ini",
                "clip_url": "tos://${LAS_TOS_BUCKET}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_video_edit/v1/clip_005.mp4",
                "file_size": 1037987,
                "confidence": 1.0,
                "meta": null
            },
            {
                "clip_id": "clip_006",
                "source_id": "source_001",
                "start_time": "00:04:09.000",
                "end_time": "00:04:11.500",
                "duration": 2.5,
"description": "The boy wearing a hat smiles, then runs out of the frame.",
                "clip_url": "tos://${LAS_TOS_BUCKET}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_video_edit/v1/clip_006.mp4",
                "file_size": 456489,
                "confidence": 1.0,
                "meta": null
            },
            {
                "clip_id": "clip_007",
                "source_id": "source_001",
                "start_time": "00:04:31.000",
                "end_time": "00:04:41.500",
                "duration": 10.5,
"description": "The boy wearing a hat climbs onto a box next to the shelf and reaches for items on the shelf.",
                "clip_url": "tos://${LAS_TOS_BUCKET}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_video_edit/v1/clip_007.mp4",
                "file_size": 2120459,
                "confidence": 1.0,
                "meta": null
            },
            {
                "clip_id": "clip_008",
                "source_id": "source_001",
                "start_time": "00:04:46.000",
                "end_time": "00:04:58.500",
                "duration": 12.5,
"description": "The boy wearing a hat stands next to a girl, the girl looks at him, then the boy reaches for items on the shelf.",
                "clip_url": "tos://${LAS_TOS_BUCKET}/operator_cards_serving/public/${LAS_ENVIRONMENT}/las_video_edit/v1/clip_008.mp4",
                "file_size": 2910307,
                "confidence": 0.95,
                "meta": null
            }
        ],
        "video_duration": 300.091458,
        "resolution": "1920x800"
    }
}

Error code

HttpStatusCode

Error code

Error message

Description

400

Parameter.Invalid

Invalid parameter.

Parameter is invalid

400

Parameter.Missing

Missing required parameter.

Missing required parameter

400

Url.Invalid

Invalid URL.

URL is invalid

400

Video.Invalid

Invalid video file.

Video file is invalid

400

Video.DownloadFailed

Video download failed.

Video download failed

400

Video.FormatUnsupported

Video format not supported.

Video format not supported

400

Video.Timeout

Video processing timeout.

Video processing timeout

400

Video.VLMFailed

VLM call failed.

VLM call failed

400

Video.UploadFailed

Video upload failed.

Video upload failed

400

Video.DurationTooShort

Video duration too short.

Video duration is too short

400

Video.FrameExtractionFailed

Frame extraction failed.

Frame extraction failed

400

Tos.AccessFailed

TOS access failed.

TOS access failed

400

ReferenceImage.DownloadFailed

Reference image download failed.

Reference image download failed

400

Video.PartialFailure

1 of 2 input videos failed; see data.videos for details.

Some input sources failed to be processed; data retains the processing results of successfully processed source files. For failure details, see data.videos.

400

Video.AllSourcesFailed

2 of 2 input videos failed; error summary: Video.DownloadFailed=2.

All input sources failed to be processed; no available processing result. See error_msg for error summary.

401

Authorization.Missing

Missing Authorization.

Missing authorization

401

ApiKey.InValid

The api key is invalid.

API is invalid

400

Task.NotFound

Task not found.

Task does not exist

500

Internal.ServerError

Internal server error.

Internal server error

Last updated: 2026.09.10 19:45:38