需通过HeyGen官方RESTful API批量生成数字人视频,支持四种技术路径:一、循环调用/v1/videos接口;二、配置Webhook异步接收完成通知;三、用curl+jq+shell构建CLI工具;四、Python多线程并发提交。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您希望使用HeyGen批量生成数字人视频,而非依赖其网页端逐个操作,则需通过HeyGen官方提供的RESTful API进行程序化调用。以下是实现该目标的多种技术路径:
一、调用HeyGen官方API创建批量任务
HeyGen提供/v1/videos接口用于提交视频生成请求,支持通过JSON载荷定义脚本、头像、语音、背景等参数。每次请求生成一个视频,批量处理需在客户端循环构造并发送多个独立请求。
1、在HeyGen开发者后台申请API Key,并启用对应账户的API访问权限。
2、构造包含scene_script、avatar_id、voice_id字段的POST请求体,确保script文本长度不超过5000字符且符合HeyGen内容策略。
3、设置HTTP Header中Authorization为Bearer your_api_key_here,Content-Type为application/json。
4、对每个待生成视频,使用唯一client_video_id字段标识,便于后续轮询状态或归档结果。
5、使用for循环或队列机制依次发送请求,相邻请求间隔不低于1.5秒,避免触发速率限制(默认10次/分钟)。
二、基于Webhook实现异步结果接收与聚合
HeyGen支持在视频生成完成时向指定URL推送通知,可替代频繁轮询GET /v1/videos/{video_id},降低请求开销并提升系统响应实时性。
1、部署一个具备公网可访问地址的HTTP服务端点,如https://yourdomain.com/webhook/heygen。
2、在HeyGen开发者控制台配置Webhook URL,并勾选video.completed事件类型。
3、当HeyGen推送POST请求时,解析其payload中的video_id与status字段,确认status为completed后调用GET /v1/videos/{video_id}/download_url获取直链。
4、将下载链接与原始任务元数据(如输入文案、时间戳、批次ID)写入本地数据库或CSV文件,形成结构化批次记录。
5、对同一batch_id下的全部video.completed通知完成收集后,触发归档压缩或FTP上传动作。
三、使用HeyGen CLI工具配合Shell脚本编排
HeyGen未发布官方CLI,但可通过curl + jq + bash组合构建轻量级命令行批量工具,适用于Linux/macOS环境下的定时批量任务。
1、编写shell脚本,读取CSV文件中每行的script_text、avatar_name、voice_name字段。
2、调用jq动态生成JSON请求体,其中avatar_id通过GET /v1/avatars?name=${avatar_name}预查并缓存映射关系。
3、执行curl -X POST "https://api.heygen.com/v1/videos" -H "Authorization: Bearer ${KEY}" -d "@request.json" > response.json。
4、从response.json提取id字段,写入task_queue.txt,格式为id,timestamp,script_hash。
5、另起守护进程,每30秒扫描task_queue.txt,对未完成的id调用GET /v1/videos/${id},当status返回processing或completed时记录日志并移出队列。
四、集成Python脚本实现多线程并发提交
利用requests.Session和concurrent.futures.ThreadPoolExecutor,可在单机上安全提升API吞吐量,同时规避全局速率限制带来的排队延迟。
1、初始化Session对象并复用连接,设置default headers包含Authorization和Content-Type。
2、准备视频参数列表videos_config,每个元素为dict,含script、avatar_id、voice_id、background等键。
3、定义submit_single_video函数,内部捕获requests.exceptions.RequestException,失败时记录error_code与retry_count。
4、使用ThreadPoolExecutor(max_workers=3)提交全部任务,max_workers值严格≤3以满足HeyGen当前并发限制要求。
5、将成功返回的video_id与对应config索引号存入results列表,最终统一导出为JSONL格式文件,每行一个{video_id, config_index, submitted_at}。










