本文将指导您通过调用视频点播 OpenAPI,实现短剧剧本还原功能,将视觉化的短剧视频转化为结构化的剧本文本。
AI 剧本还原是指基于大模型视频理解,将短剧视频转化为结构化剧本文本。本功能可以精准识别并提取视频中的场景、人物(角色)、对话、情节等核心元素,为内容创作者和数据分析师提供高价值的文本素材。通过本功能,您可以获得一份包含以下维度的结构化 JSON 数据:
AI 剧本还原按输入视频时长计费,价格为 3 元/分钟。
在开始前,请确保您的视频资源满足以下条件:
调用 CreateDramaScriptTask 接口来创建一个异步的剧本还原任务。请求时,请关注以下参数:
SpaceName:您的点播空间名称。Vids:包含一个或多个视频 Vid 的数组,系统将按数组顺序对这些视频进行拼接分析。接口调用成功后,会返回一个任务 ID,用于后续查询结果。
您可以通过直接调用 HTTP/HTTPS 接口来提交任务。API 请求示例:
POST https://vod.volcengineapi.com?Action=CreateDramaScriptTask&Version=2025-03-03 { "SpaceName": "your_space_name", "Vids": [ "vid_episode_01", "vid_episode_02", "vid_episode_03" ] }
剧本还原是一个异步过程,您可以通过以下方式获取任务结果:
在提交任务后,间隔一定时间调用 QueryDramaScriptTask 接口,并传入步骤 1 中获取的 TaskId。
直接调用 HTTP/HTTPS 接口提交任务。API 请求示例:
GET https://vod.volcengineapi.com?Action=QueryDramaScriptTask&Version=2025-03-03&SpaceName=your_space_name&TaskId=drama_task_d290f1ee-6c54-4b01-90e6-d701748f0851
配置事件通知:
EventType 为 DramaScriptComplete 的 HTTP POST 请求。当返回结果中的 Status 字段为 success 时,ResultUrl 字段会包含结果文件的下载地址。成功返回示例:
{ "ResponseMetadata": { "RequestId": "20230604110530****100232280033A42", "Action": "QueryDramaScriptTask", "Version": "2025-03-03", "Service": "vod", "Region": "cn-north-1" }, "Result": { "Status": "success", "ResultUrl": "https://example.volcvideo.com/video_analyze_results/20250926151119.v02cd3g10***3b341365iru9anoh6ug.json.gz" } }
当任务状态为 success 后,您可以通过返回的 ResultUrl 下载一个 Gzip 压缩的 JSON 文件。下载并解压后,您将得到一份结构化的剧本数据。以下是其核心数据结构说明:
{ "Plot": "对所提交视频的整体剧情总结。", "Scenes": [{ "Title": "场景标题", "Start": 0, //开始分片序号 "End": 10, //结束分片序号 "StartTime": "场景在全局时间线上的开始时间(毫秒)", "EndTime": "场景在全局时间线上的结束时间(毫秒)", "Plot": "该场景的剧情描述。", "Segments": [{ "Id": 1, //分片序号(按所有视频一起分配,从0开始) "Vid": "分片所属视频vid", "StartInVideo": "分片在视频中的开始时间", "EndInVideo": "分片在视频中的结束时间", "Start": "分片在所有视频中的开始时间", "End": "分片在所有视频中的结束时间", "Plot": "分片剧情" }] //构成该场景的更细粒度的分片信息 }], "People": [{ "Id": "出场人物ID", "Name": "出场人物姓名或称谓", "Desc": "出场人物描述,如性格、身份、人物关系等", "Gender": "出场人物性别:'男', '女', '未知'", "Age": "出场人物年龄段:'儿童', '少年', '青年', '中年', '老年', '未知'" }], "Dialogues": [{ "Content": "对话文本内容", "Start": "对话在全局时间线上的开始时间 (格式: HH:mm:ss.SSS)", "End": "对话在全局时间线上的结束时间 (格式: HH:mm:ss.SSS)", "People": "说话人姓名", "PeopleId": "说话人ID", "Emotion": "对话所带的情绪标签,如'平静'、'激动'等。", "EmotionId": "情绪ID,参考:https://www.volcengine.com/docs/6561/1257544" }], "Videos": [{ "Vid": "视频vid", "DurationInMillis": 1800, //视频总长度,毫秒 "Width": 1280, //视频宽 "Height": 720, //视频高 "StoreUri":"tos-vod-cn-v-f345***42fbf5462/系统001.mp4" //存储路径 }] //您提交的原始视频列表及其元数据 }