← Back to Skills Marketplace
api00

Blog to Avatar Video

by api00 · GitHub ↗ · v1.1.1 · MIT-0
cross-platform ✓ Security Clean
36
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install revid-blog-to-avatar-video
Description
Turn a blog post URL into a talking-head avatar video — the avatar reads a summarized script of the post against a clean background. Use when the user wants...
README (SKILL.md)

Blog post → talking-head avatar video

Take any blog/article URL and produce a vertical (or square) talking-head video with a chosen avatar reading a summarized version of the post.

When to use this skill

  • Source is a blog post / opinion piece / explainer with substantial body text.
  • Output should feel like a person delivering the take, not an edited promo with stock b-roll.
  • An avatar (image URL or characterId) is available, or the user accepts the default avatar.
  • For an edited short with stock visuals, use revid-article-to-short instead.

Inputs

Field Required Notes
url yes Blog post URL
avatar.url or characterIds[] yes The face. Either an image URL or a saved consistent character ID (see character mgmt).
aspectRatio no Default 9:16. Use 1:1 for LinkedIn.
voiceId no Match it to the avatar's tone if known.
targetDuration no Default 60 (s) — talking heads can run longer.

Step-by-step

  1. Validate the URL.
  2. If the user gave an avatar image URL, set avatar.url. If they gave a saved character ID, set characterIds: [id] (and leave avatar omitted).
  3. POST the payload below.
  4. Poll /status (canonical loop in the Polling section below).
  5. Return videoUrl.

API call template

POST /api/public/v3/render
Host: www.revid.ai
Content-Type: application/json
key: $REVID_API_KEY
{
  "workflow": "article-to-video",
  "source": {
    "url": "{BLOG_URL}",
    "scrapingPrompt": "Extract the article body. Skip header, navigation, related posts, and footer."
  },
  "aspectRatio": "9:16",
  "avatar": {
    "enabled": true,
    "url": "{AVATAR_IMAGE_URL}",
    "removeBackground": true,
    "imageModel": "good"
  },
  "voice": {
    "enabled": true,
    "voiceId": "aria-en-us",
    "stability": 0.65,
    "speed": 1.0,
    "language": "en-US",
    "enhanceAudio": true
  },
  "captions": { "enabled": true, "position": "bottom", "autoCrop": true },
  "music":    { "enabled": false },
  "media": {
    "type": "moving-image",
    "density": "low",
    "animation": "soft",
    "placeAvatarInContext": true
  },
  "options": {
    "targetDuration": 60,
    "summarizationPreference": "summarize",
    "hasToGenerateCover": true
  },
  "render": { "resolution": "1080p", "frameRate": 30 }
}

Notes:

  • placeAvatarInContext: true composites the avatar over a relevant background (vs a plain green-screen feel).
  • media.density: "low" keeps cuts minimal so the talking head can carry the video.
  • music.enabled: false is the default — voice-driven content reads better without competing audio.

Consistent characters

If the user wants the same face across many posts, create a character once and reuse the ID:

# 1. Create character
curl -s https://www.revid.ai/api/public/v3/consistent-characters \
  -H "Content-Type: application/json" \
  -H "key: $REVID_API_KEY" \
  -d '{ "name": "Maya", "imageUrl": "https://cdn.example.com/maya.jpg" }'
# → { "id": "ch_…" }

# 2. Use it in renders
{ "characterIds": ["ch_…"], "avatar": { "enabled": true } }

List existing characters with GET /api/public/v3/consistent-characters.

Examples

Polling

After POST /render, poll until status === "ready":

PID="\x3Cpid-from-render>"
while :; do
  R=$(curl -fsSL "https://www.revid.ai/api/public/v3/status?pid=$PID" \
        -H "key: $REVID_API_KEY")
  S=$(echo "$R" | jq -r .status)
  case "$S" in
    ready)  echo "$R" | jq .; break ;;
    failed) echo "FAILED: $R"; exit 1 ;;
    *)      sleep 5 ;;
  esac
done

In production prefer setting webhookUrl in the request body and skip polling.

Failure modes

Symptom Fix
Avatar lip-sync drifts on long copy Lower targetDuration to 45 s, or switch summarizationPreference: "summarize" (already on).
Avatar background bleeds into video Set avatar.removeBackground: true (default). For stubborn cases, pre-process the avatar image to a transparent PNG.
Background visuals distract from face media.density: "low" and media.animation: "soft" (already on). For pure plain background, set media.type: "custom" + media.useOnlyProvided: true with a single neutral asset.
Voice doesn't match the avatar Set voice.voiceId explicitly. The default voice is gendered female English — always override for other languages or personas.
scrape failed Same as in revid-article-to-short: pre-scrape the post and switch to script-to-video with the avatar block intact.

See also

Usage Guidance
This skill appears to do what it says: it sends the blog URL (and the scraped article text) plus any avatar image URL to the revid.ai API and returns a video URL. Before installing: (1) Confirm you trust the revid.ai service and the source/owner of this skill (registry metadata has no homepage); (2) Treat REVID_API_KEY like a secret — confirm its permissions and rotate it if shared; (3) Avoid submitting confidential or private content (the full article text and avatar image URLs will be transmitted to revid.ai); (4) Note the examples assume curl and jq are available if you run the provided scripts; and (5) Ensure you have rights to use any avatar images or likenesses you upload. If you want greater assurance, ask the publisher for a homepage, source repo, or a signed provenance statement about the skill.
Capability Analysis
Type: OpenClaw Skill Name: revid-blog-to-avatar-video Version: 1.1.1 The skill is a standard integration for the Revid AI service, designed to convert blog URLs into avatar-based videos. It uses legitimate API endpoints (revid.ai) and follows expected patterns for authentication via an API key, polling for job status, and character management. The provided shell script (examples/run.sh) and JSON templates are transparent and align with the stated purpose without any signs of malicious intent, data exfiltration, or obfuscation.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
Name/description map to the actions in SKILL.md: the skill posts a payload to revid.ai to render an article-to-video workflow. The single required config (REVID_API_KEY) is appropriate for a 3rd‑party rendering service. No unrelated credentials, binaries, or system paths are requested.
Instruction Scope
The SKILL.md stays within scope: it validates a URL, builds a render payload, POSTs to revid.ai, and polls status (or uses webhooks). It does not instruct reading arbitrary local files or gathering other credentials. Minor inconsistencies: example run.sh assumes curl and jq are available (SKILL metadata lists no required binaries); the examples also demonstrate creating/listing 'consistent characters' which will upload image URLs to the service. The skill will transmit the blog URL (and scraped article text) and any avatar image URL to revid.ai — expected for this functionality but a privacy consideration.
Install Mechanism
This is an instruction-only skill with no install spec and no downloads. No install-related risk indicators (no remote archives or third-party package installs).
Credentials
The only required secret/config is REVID_API_KEY (declared in SKILL.md metadata). That is proportionate for a 3rd-party rendering API. Two minor points: the registry summary lists 'Required env vars: none' but SKILL.md requires REVID_API_KEY as a config — a small metadata mismatch; and using the skill will cause article text and avatar image URLs to be sent to revid.ai, so private/confidential content will be transmitted to that external service.
Persistence & Privilege
No 'always: true' or other elevated persistence. The skill is user-invocable and can be invoked autonomously (platform default), which is expected for a connector skill. It does not modify other skills or request system-wide configuration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install revid-blog-to-avatar-video
  3. After installation, invoke the skill by name or use /revid-blog-to-avatar-video
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.1
Fix: follow 307 redirect in polling; switch workflow to article-to-video for URL inputs
v1.1.0
- Adds a detailed guide for turning blog post URLs into talking-head avatar videos, focusing on personal/expert delivery. - Documents all input fields, output options, and step-by-step workflow. - Includes API payload template, polling instructions, and troubleshooting tips. - Describes how to create and reuse consistent avatar characters. - References related skills for different video formats.
Metadata
Slug revid-blog-to-avatar-video
Version 1.1.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Blog to Avatar Video?

Turn a blog post URL into a talking-head avatar video — the avatar reads a summarized script of the post against a clean background. Use when the user wants... It is an AI Agent Skill for Claude Code / OpenClaw, with 36 downloads so far.

How do I install Blog to Avatar Video?

Run "/install revid-blog-to-avatar-video" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Blog to Avatar Video free?

Yes, Blog to Avatar Video is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Blog to Avatar Video support?

Blog to Avatar Video is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Blog to Avatar Video?

It is built and maintained by api00 (@api00); the current version is v1.1.1.

💬 Comments