{
  "schemaVersion": "1.0",
  "item": {
    "slug": "avatar-video-messages",
    "name": "Video Messages from your openclaw",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/thewulf7/avatar-video-messages",
    "canonicalUrl": "https://clawhub.ai/thewulf7/avatar-video-messages",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/avatar-video-messages",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=avatar-video-messages",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/avatar-video-messages"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/avatar-video-messages",
    "agentPageUrl": "https://openagent3.xyz/skills/avatar-video-messages/agent",
    "manifestUrl": "https://openagent3.xyz/skills/avatar-video-messages/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/avatar-video-messages/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Video Message",
        "body": "Generate avatar video messages from text or audio. Outputs as Telegram video notes (circular format)."
      },
      {
        "title": "Installation",
        "body": "npm install -g openclaw-avatarcam"
      },
      {
        "title": "Configuration",
        "body": "Configure in TOOLS.md:\n\n### Video Message (avatarcam)\n- avatar: default.vrm\n- background: #00FF00"
      },
      {
        "title": "Settings Reference",
        "body": "SettingDefaultDescriptionavatardefault.vrmVRM avatar file pathbackground#00FF00Color (hex) or image path"
      },
      {
        "title": "System Dependencies",
        "body": "PlatformCommandmacOSbrew install ffmpegLinuxsudo apt-get install -y xvfb xauth ffmpegWindowsInstall ffmpeg and add to PATHDockerSee Docker section below\n\nNote: macOS and Windows don't need xvfb — they have native display support."
      },
      {
        "title": "Docker Users",
        "body": "Add to OPENCLAW_DOCKER_APT_PACKAGES:\n\nbuild-essential procps curl file git ca-certificates xvfb xauth libgbm1 libxss1 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libasound2 libnss3 ffmpeg"
      },
      {
        "title": "Usage",
        "body": "# With color background\navatarcam --audio voice.mp3 --output video.mp4 --background \"#00FF00\"\n\n# With image background\navatarcam --audio voice.mp3 --output video.mp4 --background \"./bg.png\"\n\n# With custom avatar\navatarcam --audio voice.mp3 --output video.mp4 --avatar \"./custom.vrm\""
      },
      {
        "title": "Sending as Video Note",
        "body": "Use OpenClaw's message tool with asVideoNote:\n\nmessage action=send filePath=/tmp/video.mp4 asVideoNote=true"
      },
      {
        "title": "Workflow",
        "body": "Read config from TOOLS.md (avatar, background)\nGenerate TTS if given text: tts text=\"...\" → audio path\nRun avatarcam with audio + settings → MP4 output\nSend as video note via message action=send filePath=... asVideoNote=true\nReturn NO_REPLY after sending"
      },
      {
        "title": "Example Flow",
        "body": "User: \"Send me a video message saying hello\"\n\n# 1. TTS\ntts text=\"Hello! How are you today?\" → /tmp/voice.mp3\n\n# 2. Generate video\navatarcam --audio /tmp/voice.mp3 --output /tmp/video.mp4 --background \"#00FF00\"\n\n# 3. Send as video note\nmessage action=send filePath=/tmp/video.mp4 asVideoNote=true\n\n# 4. Reply\nNO_REPLY"
      },
      {
        "title": "Technical Details",
        "body": "SettingValueResolution384x384 (square)Frame rate30fps constantMax duration60 secondsVideo codecH.264 (libx264)Audio codecAACQualityCRF 18 (high quality)ContainerMP4"
      },
      {
        "title": "Processing Pipeline",
        "body": "Electron renders VRM avatar with lip sync at 1280x720\nWebM captured via canvas.captureStream(30)\nFFmpeg processes: crop → fps normalize → scale → encode\nMessage tool sends via Telegram sendVideoNote API"
      },
      {
        "title": "Platform Support",
        "body": "PlatformDisplayNotesmacOSNative QuartzNo extra depsLinuxxvfb (headless)apt install xvfbWindowsNativeNo extra deps"
      },
      {
        "title": "Headless Rendering",
        "body": "Avatarcam auto-detects headless environments:\n\nUses xvfb-run when $DISPLAY is not set (Linux only)\nmacOS/Windows use native display\nGPU stall warnings are safe to ignore\nGeneration time: ~1.5x realtime (20s audio ≈ 30s processing)"
      },
      {
        "title": "Notes",
        "body": "Config is read from TOOLS.md\nClean up temp files after sending: rm /tmp/video*.mp4\nFor regular video (not circular), omit asVideoNote=true"
      }
    ],
    "body": "Video Message\n\nGenerate avatar video messages from text or audio. Outputs as Telegram video notes (circular format).\n\nInstallation\nnpm install -g openclaw-avatarcam\n\nConfiguration\n\nConfigure in TOOLS.md:\n\n### Video Message (avatarcam)\n- avatar: default.vrm\n- background: #00FF00\n\nSettings Reference\nSetting\tDefault\tDescription\navatar\tdefault.vrm\tVRM avatar file path\nbackground\t#00FF00\tColor (hex) or image path\nPrerequisites\nSystem Dependencies\nPlatform\tCommand\nmacOS\tbrew install ffmpeg\nLinux\tsudo apt-get install -y xvfb xauth ffmpeg\nWindows\tInstall ffmpeg and add to PATH\nDocker\tSee Docker section below\n\nNote: macOS and Windows don't need xvfb — they have native display support.\n\nDocker Users\n\nAdd to OPENCLAW_DOCKER_APT_PACKAGES:\n\nbuild-essential procps curl file git ca-certificates xvfb xauth libgbm1 libxss1 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libasound2 libnss3 ffmpeg\n\nUsage\n# With color background\navatarcam --audio voice.mp3 --output video.mp4 --background \"#00FF00\"\n\n# With image background\navatarcam --audio voice.mp3 --output video.mp4 --background \"./bg.png\"\n\n# With custom avatar\navatarcam --audio voice.mp3 --output video.mp4 --avatar \"./custom.vrm\"\n\nSending as Video Note\n\nUse OpenClaw's message tool with asVideoNote:\n\nmessage action=send filePath=/tmp/video.mp4 asVideoNote=true\n\nWorkflow\nRead config from TOOLS.md (avatar, background)\nGenerate TTS if given text: tts text=\"...\" → audio path\nRun avatarcam with audio + settings → MP4 output\nSend as video note via message action=send filePath=... asVideoNote=true\nReturn NO_REPLY after sending\nExample Flow\n\nUser: \"Send me a video message saying hello\"\n\n# 1. TTS\ntts text=\"Hello! How are you today?\" → /tmp/voice.mp3\n\n# 2. Generate video\navatarcam --audio /tmp/voice.mp3 --output /tmp/video.mp4 --background \"#00FF00\"\n\n# 3. Send as video note\nmessage action=send filePath=/tmp/video.mp4 asVideoNote=true\n\n# 4. Reply\nNO_REPLY\n\nTechnical Details\nSetting\tValue\nResolution\t384x384 (square)\nFrame rate\t30fps constant\nMax duration\t60 seconds\nVideo codec\tH.264 (libx264)\nAudio codec\tAAC\nQuality\tCRF 18 (high quality)\nContainer\tMP4\nProcessing Pipeline\nElectron renders VRM avatar with lip sync at 1280x720\nWebM captured via canvas.captureStream(30)\nFFmpeg processes: crop → fps normalize → scale → encode\nMessage tool sends via Telegram sendVideoNote API\nPlatform Support\nPlatform\tDisplay\tNotes\nmacOS\tNative Quartz\tNo extra deps\nLinux\txvfb (headless)\tapt install xvfb\nWindows\tNative\tNo extra deps\nHeadless Rendering\n\nAvatarcam auto-detects headless environments:\n\nUses xvfb-run when $DISPLAY is not set (Linux only)\nmacOS/Windows use native display\nGPU stall warnings are safe to ignore\nGeneration time: ~1.5x realtime (20s audio ≈ 30s processing)\nNotes\nConfig is read from TOOLS.md\nClean up temp files after sending: rm /tmp/video*.mp4\nFor regular video (not circular), omit asVideoNote=true"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/thewulf7/avatar-video-messages",
    "publisherUrl": "https://clawhub.ai/thewulf7/avatar-video-messages",
    "owner": "thewulf7",
    "version": "0.1.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/avatar-video-messages",
    "downloadUrl": "https://openagent3.xyz/downloads/avatar-video-messages",
    "agentUrl": "https://openagent3.xyz/skills/avatar-video-messages/agent",
    "manifestUrl": "https://openagent3.xyz/skills/avatar-video-messages/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/avatar-video-messages/agent.md"
  }
}