Skip to content
Graph visualization
扫码添加客服

视频延长

更新时间
6 天前

TIP

由于任务是异步提交的,请在提交任务后,通过 查询任务状态 接口查询任务状态及结果。

对于视频延长场景,生成时间可能较长,根据选择的参数而异,预计在 4 分钟内,请耐心等待。

接口描述

WARNING

暂不支持对V1.5模型生成的视频进行延长。

基于目前的清理策略、视频生成30天之后会被清理,则无法进行延长

视频延长是指对文生/图生视频结果进行时间上的延长,单次可延长4~5s,使用的模型和模式不可选择、与源视频相同。被延长后的视频可以再次延长,但总视频时长不能超过3min

请求

WARNING

为了让 DMXAPI 区分模型厂商,请在原 kling API 的 endpoint 基础上添加 /kling 路径,组合后的请求地址如下所示。

  • 请求方式: POST

  • 请求地址: https://{api_url}/kling/v1/videos/video-extend

请求参数

参数名类型必填默认值描述
task_idstring必须任务ID
video_idstring必须视频ID,支持通过文本、图片和视频延长生成的视频的ID(原视频不能超过3分钟)
promptstring可选正向文本提示词,不能超过2500个字符词
negative_promptstring可选负向文本提示词,不能超过2500个字符词
cfg_scalefloat可选0.5提示词参考强度,取值范围:[0,1],数值越大参考强度越大
callback_urlstring可选本次任务结果回调通知地址

代码示例

深色背景为可以修改的参数,非必选参数已经注释,可以按照自己的需求启用。

py
import http.client
import json

# 配置全局变量
API_URL = "www.dmxapi.cn"  # API 节点
DMX_API_TOKEN = "sk-XXXXXXXXXXX"  # API 密钥

# 创建HTTP连接对象,用于后续所有API请求
conn = http.client.HTTPSConnection(API_URL)

def kling_video_extend():
    """调用 Kling AI 的视频延长API,提交一个视频延长任务
    
    返回值:
        task_id: 生成任务的唯一标识符,用于后续查询任务结果
    """
    # 构建API请求体,包含所有视频生成参数
    payload = json.dumps({
        "task_id": "CjhDaWgU7GAAAAAAAb1QfA",  # [必选]任务ID
        "video_id": "bc17f1e8-6c7b-440c-bd30-e47fb1c82932",  # [必选]要延长的视频ID
        "prompt": "继续展示动物的走动,保持相同的风格和氛围",  # 正向提示词
        # "negative_prompt": "突然的场景转换, 光线变化, 画面抖动",  # 负向提示词
        # "cfg_scale": 0.5,  # 提示词参考强度,设置较高以保持连贯性
        # "callback_url": "https://your-server.com/webhook/video-extend"  # 回调通知地址
    })
    
    # 构建请求头,包含认证信息和内容类型
    headers = {
        'Authorization': f'Bearer {DMX_API_TOKEN}',  # 使用Bearer令牌认证方式
        'Content-Type': 'application/json'  # 指定请求体格式为JSON
    }
    
    # 发送POST请求,路径为视频生成API端点
    conn.request("POST", "/kling/v1/videos/video-extend", payload, headers)
    
    # 获取API响应并解析JSON数据
    res = conn.getresponse()
    json_data = json.loads(res.read().decode("utf-8"))
    # print(json_data)
    
    if json_data['code'] == 0:
        # 成功则返回提交的任务 id
        return json_data['data']['task_id']
    else:
        # 失败则返回错误信息
        return json_data['message']

if __name__ == "__main__":
    # 提交视频延长任务
    print(kling_video_extend())

生成响应参数

业务码的含义请参考 业务码

{
	'code': 0, // 业务码 0 表示成功
	'message': 'SUCCEED', // 消息
	'request_id': 'CjikY2gHPbcAAAAABI5n9g', // 请求ID
	'data': {
		'task_id': 'CjikY2gHPbcAAAAABI5n9g', // 任务ID
		'task_status': 'submitted', // 任务状态
		'created_at': 1746773850590, // 创建时间
		'updated_at': 1746773850590 // 更新时间
	}
}

查询响应参数

{
  "code": 0, //错误码;具体定义见1.1错误码
  "message": "string", //错误信息;具体定义见1.1错误码
  "request_id": "string", //请求ID,系统生成,用于跟踪请求、排查问题;全局唯一
  "data":{
  	"task_id": "string", //任务ID,系统生成;全局唯一
    "task_status": "string", //任务状态,枚举值:submitted(已提交)、processing(处理中)、succeed(成功)、failed(失败)
    "task_status_msg": "string", //任务状态信息,当任务失败时展示失败原因(如触发平台的内容风控等)
    "task_info":{ //任务创建时的参数信息
       "parent_video": {
         	"id": "string", //续写前的视频ID;全局唯一
      		"url": "string", //续写前视频的URL(请注意,为保障信息安全,生成的图片/视频会在30天后被清理,请及时转存)
      		"duration": "string" //续写前的视频总时长,单位s
       }
    }, //任务创建时用户填写的详细信息
    "task_result":{
      "videos":[  //数组是为了保留扩展性,以防未来要支持n
        {
          "id": "string", //续写后的完整视频ID;全局唯一
          "url": "string", //续写后视频的URL
          "duration": "string" //视频总时长,单位s
        }
      ]
    }
    "created_at": 1722769557708, //任务创建时间,Unix时间戳、单位ms
    "updated_at": 1722769557708, //任务更新时间,Unix时间戳、单位ms
  }
}