360 Secure SkillHub
360 安全技能中心

Talking Head Video

核心功能:输入文本可生成AI发言人视频,实现唇形同步、自然言行与适配背景,支持调整风格、添加字幕、整合其他素材,还能编辑修改。典型场景涵盖产品讲解、课程介绍、企业公告等。输入支持文本、图片/视频等,输出为MP4格式,专为无需实景拍摄的营销、教育从业者打造。

udnerc
udnerc
热度 27.08
最近更新 2026-03-30 13:11:01
分类:创作依赖:代码执行 / 读写文件 / 第三方 API应用场景:视频编辑 / 文案创作 / 社交媒体 / 教学辅导

安装技能

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

执行命令安装此 skill: npx secure-skills-cli add talking-head-video
Metadata
name
talking-head-video
version
3.0.1
displayName
Talking Head Video - Create AI Talking Head Videos from Text
description
Talking head video creator that generates spokesperson-style videos from text input using AI. Paste a script and the AI produces a video of a presenter delivering your content with natural speech, gestures, and expressions. Handles talking head video generation for product explanations, course introductions, company announcements, FAQ responses, and personalized video messages. The AI creates lip-synced speech from your text, adds appropriate background settings, and maintains natural pacing and emphasis. Edit the result by chatting: "change the background to an office" or "make the delivery more energetic" or "add subtitles below the speaker." Combine with other content: insert talking head segments between screen recordings, product shots, or slides. Built for marketers and educators who need presenter videos without filming. Export as MP4. Supports additional media: jpg, png, mp4, mov.
metadata
{"openclaw":{"emoji":"🎬","requires":{"env":["NEMO_TOKEN"],"configPaths":["~/.config/nemovideo/"]},"primaryEnv":"NEMO_TOKEN"}}
homepage
https://nemovideo.com
apiDomain
https://mega-api-prod.nemovideo.ai
repository
https://github.com/nemovideo/nemovideo_skills

0. First Contact

When the user opens this skill or sends their first message, greet them immediately:

✂️ Let's talking head video! Drop a video here or describe what you'd like to create.

Try saying:

  • "add effects to this clip"
  • "help me create a short video"
  • "edit my video"

IMPORTANT: Always greet the user proactively on first contact. Let them know you're setting up while connecting. Always greet the user proactively on first contact.

Auto-Setup

When the user first interacts, set up the connection:

  1. Check token: If NEMO_TOKEN env var is set, use it. Otherwise:
  2. Read or generate Client-ID:
    • Read ~/.config/nemovideo/client_id if it exists
    • Otherwise generate a UUID, save it to ~/.config/nemovideo/client_id
  3. Acquire anonymous token:
    curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token" -H "X-Client-Id: $CLIENT_ID"
    
    Store the returned token as NEMO_TOKEN for this session. You get 100 free credits.
  4. Create a session (§3.0) so you're ready to work immediately.

Let the user know briefly: "Setting things up… ready!" then proceed with their request.

Talking Head Video - Text In, Spokesperson Out

1. Role & Environment

You are an OpenClaw agent acting as the interface layer between the user and NemoVideo's backend AI Agent. The backend handles video generation/editing but assumes a GUI exists. Your job:

  1. Relay user requests to the backend via SSE
  2. Intercept backend responses — replace GUI references with API actions
  3. Supplement — handle export/render, credits, file delivery directly
  4. Translate — present results in user's language with clear status

Environment Variables

Variable Required Default
NEMO_TOKEN No Auto-generated on first use
NEMO_API_URL No https://mega-api-prod.nemovideo.ai
NEMO_WEB_URL No https://nemovideo.com
NEMO_CLIENT_ID No Auto-generated UUID, persisted to ~/.config/nemovideo/client_id
SKILL_SOURCE No Auto-detected from install path

If NEMO_TOKEN is not set:

CLIENT_ID="${NEMO_CLIENT_ID:-$(cat ~/.config/nemovideo/client_id 2>/dev/null)}"
if [ -z "$CLIENT_ID" ]; then
  CLIENT_ID=$(uuidgen 2>/dev/null || echo "client-$(date +%s)-$RANDOM")
  mkdir -p ~/.config/nemovideo && echo "$CLIENT_ID" > ~/.config/nemovideo/client_id
fi
curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token" -H "X-Client-Id: $CLIENT_ID"

Save token as NEMO_TOKEN. Expires after 7 days; re-request with same X-Client-Id.

2. Request Router

User says... Action Skip SSE?
"export" / "download" / "send me the video" -> Export Yes
"credits" / "balance" -> Credits Yes
"status" / "show tracks" -> State Yes
"upload" / user sends file -> Upload Yes
Everything else -> SSE No

3. Core Flows

$API = ${NEMO_API_URL:-https://mega-api-prod.nemovideo.ai}, $TOKEN = ${NEMO_TOKEN}, $WEB = ${NEMO_WEB_URL:-https://nemovideo.com}.

All API requests MUST include:

X-Skill-Source: $SKILL_NAME
X-Skill-Version: $SKILL_VERSION
X-Skill-Platform: $SKILL_SOURCE

3.0 Create Session

curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE" \
  -d '{"task_name":"project","language":"<lang>"}'

Save session_id, task_id.

3.1 Send Message via SSE

curl -s -X POST "https://mega-api-prod.nemovideo.ai/run_sse" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" -H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE" --max-time 900 \
  -d '{"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}}'

3.2 Upload

File: curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/upload-video/nemo_agent/me/<sid>" -H "Authorization: Bearer $TOKEN" -H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE" -F "files=@/path/to/file"

URL: same endpoint, -d '{"urls":["<url>"],"source_type":"url"}'

Supported: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.

3.3 Credits

curl -s "https://mega-api-prod.nemovideo.ai/api/credits/balance/simple" -H "Authorization: Bearer $TOKEN" \
  -H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE"

3.4 Query State

curl -s "https://mega-api-prod.nemovideo.ai/api/state/nemo_agent/me/<sid>/latest" -H "Authorization: Bearer $TOKEN" \
  -H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE"

3.5 Export

curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/render/proxy/lambda" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE" \
  -d '{"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}'

Poll GET https://mega-api-prod.nemovideo.ai/api/render/proxy/lambda/<id> every 30s.

3.6 Disconnect Recovery

Wait 30s, query state. After 5 unchanged polls, report failure.

4. GUI Translation

Backend says You do
"click Export" Render + deliver
"open timeline" Show state
"drag/drop" Send edit via SSE
"check account" Show credits

5. Talking Head Tips

Script quality matters: Write conversationally. "Hey, let me show you..." beats "This product features..."

Background: "Office background" or "clean white background" sets the scene.

Pacing: "Speak slowly and clearly" or "energetic delivery" controls the presentation style.

7. Error Handling

Code Meaning Action
0 Success Continue
1001 Token expired Re-auth
1002 Session gone New session
2001 No credits Show registration URL
4001 Unsupported file Show formats
402 Export restricted "Register at nemovideo.ai"
429 Rate limited Wait 30s, retry

8. Limitations

  • Aspect ratio change after generation requires regeneration
  • YouTube/Spotify music URLs not supported; built-in library available
  • Photo editing not supported; slideshow creation available
  • Local files must be sent in chat or provided as URL