360 Secure SkillHub
360 安全技能中心

Huo15 HeyGen Digital Avatar

核心功能:通过文本脚本生成数字人视频,支持批量制作、个性化问候视频,可查询生成状态并获取下载链接。典型场景包括营销短视频、个性化问候、产品介绍等。输入为脚本文本,输出视频ID或下载链接;API凭证仅本地存储,保障安全,需注意API调用限制与计费规则。

jobzhao15
jobzhao15
热度 25.94
最近更新 2026-05-20 03:34:48
分类:开发依赖:代码执行 / 第三方 API / 读写文件应用场景:API 集成 / 视频编辑 / 营销 / 自动化脚本 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add huo15-heygen
Metadata
name
heygen / 数字人视频生成
description
使用 HeyGen 生成数字人视频。触发词:数字人、HeyGen、生成视频、avatar视频、数字人制作。

HeyGen 数字人视频生成技能

⚠️ 凭证安全说明

HeyGen API 凭证存储在 ~/.openclaw/agents/main/heygen_creds.json,仅本地可访问,不会同步到云端。


🚀 快速开始

# 读取凭证(自动从本地配置读取)
import json
import os

creds_file = os.path.expanduser('~/.openclaw/agents/main/heygen_creds.json')
with open(creds_file, 'r') as f:
    creds = json.load(f)

avatar_id = creds['avatar_id']
api_key = creds['api_key']

📡 HeyGen API 调用模板

基础设置

import requests
import json
import os

# 读取凭证
creds_file = os.path.expanduser('~/.openclaw/agents/main/heygen_creds.json')
with open(creds_file, 'r') as f:
    creds = json.load(f)

AVATAR_ID = creds['avatar_id']
API_KEY = creds['api_key']
BASE_URL = 'https://api.heygen.com/v1'

HEADERS = {
    'Authorization': f'Bearer {API_KEY}',
    'Content-Type': 'application/json'
}

创建视频(Text to Video)

def create_avatar_video(script, avatar_id=AVATAR_ID, voice_id=None):
    """
    创建数字人视频
    
    参数:
        script: str - 视频脚本内容
        avatar_id: str - Avatar ID(可选,默认使用配置的avatar)
        voice_id: str - 声音ID(可选)
    
    返回:
        dict - 包含 video_id 用于查询进度
    """
    url = f'{BASE_URL}/video/generate'
    
    payload = {
        'video': {
            'character': {
                'type': 'avatar',
                'avatar_id': avatar_id,
                'avatar_style': 'normal'
            },
            'script': {
                'type': 'text',
                'input': script
            }
        }
    }
    
    if voice_id:
        payload['video']['script']['voice_id'] = voice_id
    
    response = requests.post(url, headers=HEADERS, json=payload)
    return response.json()

# 使用示例
result = create_avatar_video('你好,这是数字人测试视频')
video_id = result['data']['video_id']
print(f'视频生成中,ID: {video_id}')

查询视频状态

def get_video_status(video_id):
    """查询视频生成状态"""
    url = f'{BASE_URL}/video/status.get'
    params = {'video_id': video_id}
    response = requests.get(url, headers=HEADERS, params=params)
    return response.json()

# 使用示例
status = get_video_status(video_id)
print(f"状态: {status['data']['status']}")  # pending, processing, completed, failed

下载视频

def get_video_url(video_id):
    """获取视频下载链接"""
    status = get_video_status(video_id)
    if status['data']['status'] == 'completed':
        return status['data']['video_url']
    return None

# 使用示例
video_url = get_video_url(video_id)
if video_url:
    print(f'下载链接: {video_url}')

📋 常用功能

1. 生成短问候视频

def generate_greeting(name, message):
    """生成个性化问候视频"""
    script = f'你好{name},{message}'
    result = create_avatar_video(script)
    return result['data']['video_id']

2. 批量生成视频(需要先生成再轮询)

def batch_generate(video_list):
    """批量生成视频,返回video_id列表"""
    video_ids = []
    for script in video_list:
        result = create_avatar_video(script)
        video_ids.append(result['data']['video_id'])
    return video_ids

3. 等待视频完成(轮询)

import time

def wait_for_video(video_id, timeout=300, interval=5):
    """等待视频生成完成"""
    start = time.time()
    while time.time() - start < timeout:
        status = get_video_status(video_id)
        state = status['data']['status']
        if state == 'completed':
            return status['data']['video_url']
        elif state == 'failed':
            return None
        time.sleep(interval)
    return None

🎯 使用场景

场景 方法
生成营销短视频 create_avatar_video() + wait_for_video()
个性化问候 generate_greeting(name, message)
产品介绍视频 传入产品描述脚本
批量生成 先生成所有视频,再统一轮询状态

🔧 凭证配置

凭证文件位置:~/.openclaw/agents/main/heygen_creds.json

如需更新凭证,直接编辑该文件:

{
  "avatar_id": "你的avatar_id",
  "api_key": "你的api_key"
}

⚠️ 注意事项

  1. 凭证安全:API Key 仅存储在本地,不会上传到云端
  2. 视频生成时间:通常需要30秒到几分钟
  3. API限制:注意 HeyGen API 的调用频率限制
  4. 费用:HeyGen API 调用按量计费