爆款素材剪辑算子能够基于多集短剧视频,自动完成分镜检测、语义分析、剪辑决策与视频合成,批量生成多个适合在短视频平台投放的引流素材视频。
算子 ID:las_viral_clip_gen
说明
当前更适用于“竖屏”短剧视频的爆款素材剪辑场景,“横屏”短剧视频的剪辑效果不及“竖屏”的效果。
关键参数:精彩前置、顺剪
{ "preset_intro": true, "mode": "sequential" }
输出视频结果:
关键参数:精彩前置、跳剪
{ "preset_intro": true, "mode": "jump_cut" }
输出视频结果:
关键参数:不精彩前置、顺剪
{ "preset_intro": false, "mode": "sequential" }
输出视频结果:
细分项 | 性能影响说明 |
|---|---|
最大 RPM | 600 |
最大并发数 | 10 |
耗时 | 总耗时与输入单个素材的时长、素材的数量有关。输入越多、时长越长,总耗时越长。 |
细分 | 详细要求 |
|---|---|
支持的输入数据模态 |
|
输入视频:原始待剪辑视频 |
|
输入视频:后贴视频 |
|
输入路径要求 | 通过请求参数
|
细分 | 详细要求 |
|---|---|
输出数据模态 |
|
输出路径:TOS | 通过请求参数
|
计费标准
细分项 | 计费标准说明 |
|---|---|
计费项 | 基于视频时长进行统计用来计费,计费项包含两部分:输入视频的AI分析费用 、素材剪辑合成费用。支付总费用为所有计费项费用之和。 |
计费类型 | 按量计费,单位: |
单价 | 与选择智能剪辑的模式有关,不同剪辑模式的单价不同。 |
计费详情
计费公式:总费用 = 所有输入视频的AI分析费用 + 素材剪辑合成费用 = ∑(输入视频分析单价 * 输入视频时长) + 剪辑合成单价 * 输出视频时长
计费项 | 单价 |
|---|---|
输入视频分析 |
|
剪辑合成输出视频 | 0.06 元/分钟 |
计费示例
总费用 = 10 * 3 分钟 * 1.5 元/分钟 + 1 分钟 * 0.06 元/分钟 = 45.06 元出账计费单元
当前调用本算子产生的费用账单,在账单明细中展示的计费单元为“视频智能剪辑”,您在查看账单时可关注下此差异。
细分项 | 注意与前提 |
|---|---|
开通 LAS |
|
费用 | 调用算子前,您需先了解使用算子时的模型调用费用,详情请参见大模型调用计费。 |
鉴权(API Key) | 调用算子前,您需要先生成算子调用的API Key,并建议将API Key配置为环境变量,便于更安全地调用算子,详情请参见获取 API Key 并配置。 |
BaseURL | 调用算子前,您需要先根据您当前使用的LAS服务所在地域,了解算子调用的BaseURL,用于配置算子调用路径参数取值。 |
您可使用下文的示例代码,替换其中的 LAS_API_KEY、output_tos_path、待处理视频URL,即可快速提交一个爆款素材剪辑任务;轮询任务状态,处理完成后快速获取剪辑后的结果。
为了帮助您高效生成用于广告投放的高转化率素材,我们根据短剧行业的投放经验,提供以下参数配置最佳实践:
Submit 接口提交任务获得任务的 task_id,再通过 Poll 接口获取对应任务(task_id)运行状态,并获取算子处理结果。task_id 有效期为 3 天,超过 3 天后即无法通过此 task_id 来获取算子处理结果。提交爆款素材剪辑任务,提交成功后返回任务 ID,可通过查询接口获取处理结果。
参数 | 类型 | 是否必填 | 示例值 | 描述 |
|---|---|---|---|---|
operator_id | string | 是 | las_viral_clip_gen | 算子 ID |
operator_version | string | 是 | v1 | 算子版本 |
data | ViralClipGenReqParams | 是 | 视频剪辑请求参数 | |
callback | Callback | 否 | 任务状态回调配置。配置 callback.url 后,任务状态变化时会向该地址发送 POST 请求;不配置时可通过 Poll 查询任务状态和结果。 |
参数 | 类型 | 示例值 | 描述 |
|---|---|---|---|
metadata | metadata | 请求元信息 |
curl --location "${LAS_ENDPOINT}/api/v1/submit" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $LAS_API_KEY" \ --data '{ "operator_id": "las_viral_clip_gen", "operator_version": "v1", "callback": { "url": "https://example.com/callback" }, "data": { "video_urls": ["tos://xxx/episode1.mp4", "tos://xxx/episode2.mp4"], "output_tos_path": "tos://bucket/output/", "mode": "sequential", "min_clip_duration": 120, "max_clip_duration": 240, "max_clip_count": 2, "playback_speed": 1.0, "video_bitrate_kbps": 5000, "drama_elements": { "title": "《进击的 LAS 算子》", "hint": "影视效果 请勿模仿 无不良价值观引导", "hint_position": "left", "include_badge": true, "badge_position": "top_right", "badge_size_ratio": 0.16, "template_name": "模板1", "title_font_size": 50, "title_opacity": 1.0, "title_position": "top_center" }, "preset_intro_ratio": 0.5 } }'
{ "metadata": { "task_id": "20250108_150000_abc123", "task_status": "PENDING", "business_code": "0", "error_msg": "" } }
HttpStatusCode | 错误码 | 错误信息 | 描述 |
|---|---|---|---|
400 | Parameter.Invalid | invalid parameter | 参数不合法(如视频数量超过 100、分辨率不一致、清晰度低于 640x360、drama_elements.template_name 无效、drama_elements.badge_url 图片无效或不含透明像素等) |
400 | Parameter.Missing | Missing required parameter | 缺少必需参数 |
400 | Url.Invalid | invalid url | 视频 URL 无法访问或不存在 |
400 | Video.Invalid | invalid video file | 视频文件无效(无视频流、分辨率过低等) |
400 | Video.DownloadFailed | Video download failed | 视频下载异常或访问失败 |
400 | Video.FormatUnsupported | Video format not supported | 视频格式不支持(仅支持 mp4、mov、avi、mkv) |
400 | Video.DurationTooShort | Video duration is too short | 视频时长过短(单集 < 1s) |
400 | Video.DurationExceeded | Video duration exceeds maximum limit | 视频时长超限(单集 > 600s 或总时长 > 7200s) |
400 | Video.FileTooLarge | Video file is too large | 视频文件过大(总大小 > 10GB) |
400 | Video.Timeout | Video processing timeout | 视频处理超时 |
400 | Video.UploadFailed | Video upload failed | 视频上传失败 |
400 | Video.ClipFailed | Video clip extraction failed | 视频剪辑提取失败 |
400 | Video.VLMFailed | VLM call failed | VLM 模型调用失败 |
400 | Video.ModelFailed | VLM call failed | VLM 模型调用失败 |
400 | Video.FrameExtractionFailed | Video frame extraction failed | 视频帧提取失败 |
400 | Tos.AccessFailed | Failed to access TOS path with provided credentials | TOS 路径访问失败 |
400 | Connection.TooMany | Too many connections | 并发过高触发了限流 |
400 | ViralClipGen.AsrFailed | ASR generation failed | 语音识别失败 |
400 | ViralClipGen.SceneFailed | scene detection failed | 场景检测失败 |
400 | ViralClipGen.ScriptFailed | script generation failed | 剧本生成失败 |
400 | ViralClipGen.BoundaryFailed | boundary detection failed | 剧集边界检测失败(定格画面、下集预告、前情提要、跨集重复等) |
400 | ViralClipGen.SubtitleFailed | embedded subtitle OCR failed | 内嵌字幕 OCR 失败 |
400 | ViralClipGen.ReviewFailed | review generation failed | 片段审核/评分失败 |
400 | ViralClipGen.JumpcutFailed | jumpcut generation failed | 跳剪方案生成失败 |
400 | ViralClipGen.RenderFailed | clip rendering failed | 片段渲染/上传失败 |
401 | Authorization.Missing | Missing Authorization. | 缺少鉴权 |
401 | ApiKey.InValid | The api key is invalid. | API 不合法 |
500 | InternalError | Internal error | 服务内部错误 |
查询爆款素材剪辑任务的执行状态和结果。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
operator_id | string | 是 | las_viral_clip_gen | 算子 ID |
operator_version | string | 是 | v1 | 算子版本 |
task_id | string | 是 | task-xxx | 任务 ID |
参数 | 类型 | 示例值 | 描述 |
|---|---|---|---|
metadata | metadata | 请求的元信息 | |
data | ViralClipGenResponse | 返回的数据 |
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_viral_clip_gen", "operator_version": "v1", "task_id": "20250108_150000_abc123" }'
{ "metadata": { "task_id": "20250108_150000_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_clips": 10, "storyboard_json_path": "tos://bucket/output/storyboard.json", "videos": [ { "episode": 8, "video_url": "https://path/to/8.mp4", "file_size": 132415150, "duration": 65.0 }, { "episode": 9, "video_url": "https://path/to/9.mp4", "file_size": 123416235, "duration": 76.3 } ], "storyboard": [ { "id": "ep8_seg24", "episode": 8, "start_sec": 86.72, "end_sec": 103.04, "rating": "S", "highlight_score": 95, "function_tags": [ "钩子-情绪共鸣", "冲突-原生家庭矛盾" ], "content_desc": "许知意流着泪独白,意识到家人把侄子的东西搬进自己房间……" }, { "id": "ep9_seg3", "episode": 9, "start_sec": 10.76, "end_sec": 21.08, "rating": "S", "highlight_score": 95, "function_tags": [ "钩子-强冲突", "爽点-直球出击" ], "content_desc": "穿米白毛衣的许知意正在写字,听到手机响后接听……" } ], "clips": [ { "id": "clip_001", "url": "tos://path/to/dir/clip_001.mp4", "preview_url": "https://xxx/clip_001.mp4", "duration": 160.04, "segment_count": 31, "timeline": [ { "ref": "ep8_seg24", "clip_start_sec": 0.0, "clip_end_sec": 16.32 }, { "ref": "ep8_seg19", "clip_start_sec": 16.32, "clip_end_sec": 26.36 }, { "ref": "ep9_seg3", "clip_start_sec": 26.36, "clip_end_sec": 36.68, "is_intro_dup": true } ] } ] } }
HttpStatusCode | 错误码 | 错误信息 | 描述 |
|---|---|---|---|
400 | Parameter.Invalid | invalid parameter | 参数不合法 |
400 | Parameter.Missing | Missing required parameter | 缺少必需参数 |
400 | Url.Invalid | invalid url | 视频 URL 无法访问或不存在 |
400 | Video.Invalid | invalid video file | 视频文件无效(无视频流、分辨率过低等) |
400 | Video.DownloadFailed | Video download failed | 视频下载异常或访问失败 |
400 | Video.FormatUnsupported | Video format not supported | 视频格式不支持 |
400 | Video.DurationTooShort | Video duration is too short | 视频时长过短 |
400 | Video.DurationExceeded | Video duration exceeds maximum limit | 视频时长超限 |
400 | Video.FileTooLarge | Video file is too large | 视频文件过大 |
400 | Video.Timeout | Video processing timeout | 视频处理超时 |
400 | Video.UploadFailed | Video upload failed | 视频上传失败 |
400 | Video.ClipFailed | Video clip extraction failed | 视频剪辑提取失败 |
400 | Video.ModelFailed | VLM call failed | VLM 模型调用失败 |
400 | Video.FrameExtractionFailed | Video frame extraction failed | 视频帧提取失败 |
400 | Tos.AccessFailed | Failed to access TOS path with provided credentials | TOS 路径访问失败 |
400 | Connection.TooMany | Too many connections | 并发过高触发了限流 |
400 | ViralClipGen.AsrFailed | ASR generation failed | 语音识别失败 |
400 | ViralClipGen.SceneFailed | scene detection failed | 场景检测失败 |
400 | ViralClipGen.ScriptFailed | script generation failed | 剧本生成失败 |
400 | ViralClipGen.BoundaryFailed | boundary detection failed | 剧集边界检测失败 |
400 | ViralClipGen.SubtitleFailed | embedded subtitle OCR failed | 内嵌字幕 OCR 失败 |
400 | ViralClipGen.ReviewFailed | review generation failed | 片段审核失败 |
400 | ViralClipGen.JumpcutFailed | jumpcut generation failed | 剪辑方案生成失败 |
400 | ViralClipGen.RenderFailed | clip rendering failed | 片段渲染/上传失败 |
401 | Authorization.Missing | Missing Authorization. | 缺少鉴权 |
401 | ApiKey.InValid | The api key is invalid. | API 不合法 |
500 | InternalError | Internal error | 服务内部错误 |