Skill: api00/revid-prompt-to-video (version 1.2.0)

--- name: revid-prompt-to-video description: Turn a one-line idea into a full short video — Revid writes the script, picks visuals, and assembles the cut. Use when the user has a topic but no script. metadata: {"openclaw":{"requires":{"config":["REVID_API_KEY"]}}} --- # Idea prompt → video The lowest-input skill. The user types one line ("Why honey never spoils") and Revid handles everything: script, visuals, voice, music, cuts. ## When to use this skill - Source is a topic, question, or one-line concept — *no script*. - The user is OK letting the AI choose the angle and structure. - For a known script, use [`revid-script-to-video`](../revid-script-to-video/SKILL.md). - For an idea + brand voice, use [`revid-product-description-to-ad`](../revid-product-description-to-ad/SKILL.md). ## Inputs | Field | Required | Notes | |---|---|---| | `prompt` | yes | The idea (one or two sentences) | | `stylePrompt` | no | Optional tone notes | | `durationSeconds` | no | Default 35 (s) | | `aspectRatio` | no | Default `9:16` | ## Step-by-step 1. Validate `prompt` is non-empty. 2. POST `/render`. 3. Poll `/status`. ## API call template ```http POST /api/public/v3/render Host: www.revid.ai Content-Type: application/json key: $REVID_API_KEY ``` ```json { "workflow": "prompt-to-video", "source": { "prompt": "{ONE_LINE_IDEA}", "stylePrompt": "{OPTIONAL_TONE_NOTES}", "durationSeconds": 35 }, "aspectRatio": "9:16", "voice": { "enabled": true, "stability": 0.6, "speed": 1.0, "language": "en-US" }, "captions": { "enabled": true, "position": "middle", "autoCrop": true }, "music": { "enabled": true, "syncWith": "beats" }, "media": { "type": "stock-video", "density": "medium", "animation": "soft", "quality": "pro", "videoModel": "pro", "imageModel": "good" }, "options": { "promptTargetDuration": 35, "summarizationPreference": "summarizeIfLong", "soundEffects": true, "hasToGenerateCover": true }, "render": { "resolution": "1080p", "frameRate": 30 } } ``` ## Examples - [`examples/honey-prompt.json`](examples/honey-prompt.json) - [`examples/run.sh`](examples/run.sh) ## Failure modes | Symptom | Fix | |---|---| | Script angle is generic ("Did you know…") | Add `stylePrompt` with a specific angle: `"Open with a contrarian claim. End with a question that invites comments."` | | Off-niche visuals | Mention concrete subjects in the prompt: `"Why honey never spoils — show beehives, ancient Egyptian jars, microscope close-ups of crystallized honey."` | | Too long / too short | Use `durationSeconds` AND `options.promptTargetDuration` together (some legacy paths only read one). | ## See also - [`revid-script-to-video`](../revid-script-to-video/SKILL.md) when you have the words. - [`revid-product-description-to-ad`](../revid-product-description-to-ad/SKILL.md) for ads.

path: examples/honey-prompt.json
content: {
  "workflow": "prompt-to-video",
  "source": {
    "prompt": "Why honey never spoils.",
    "stylePrompt": "Open with a punchy archaeological hook. Walk through the chemistry in plain language. End with a takeaway.",
    "durationSeconds": 35
  },
  "aspectRatio": "9:16",
  "voice":    { "enabled": true, "stability": 0.6, "speed": 1.0, "language": "en-US" },
  "captions": { "enabled": true, "position": "middle", "autoCrop": true },
  "music":    { "enabled": true, "syncWith": "beats" },
  "media": {
    "type": "stock-video",
    "density": "medium",
    "animation": "soft",
    "quality": "pro",
    "videoModel": "pro",
    "imageModel": "good"
  },
  "options": {
    "promptTargetDuration": 35,
    "summarizationPreference": "summarizeIfLong",
    "soundEffects": true,
    "hasToGenerateCover": true
  },
  "render": { "resolution": "1080p", "frameRate": 30 }
}


path: examples/run.sh
content: #!/usr/bin/env bash
# Idea prompt -> video.
# Usage:  REVID_API_KEY=… ./run.sh "Your one-line idea"
set -euo pipefail
: "${REVID_API_KEY:?set REVID_API_KEY}"

PROMPT="${1:-Why honey never spoils.}"
HERE="$(cd "$(dirname "$0")" && pwd)"
PAYLOAD=$(jq --arg p "$PROMPT" '.source.prompt=$p' "$HERE/honey-prompt.json")

PID=$(curl -fsS https://www.revid.ai/api/public/v3/render \
  -H "Content-Type: application/json" -H "key: $REVID_API_KEY" \
  -d "$PAYLOAD" | jq -r .pid)
echo "pid=$PID"

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); echo "  status=$S progress=$(echo "$R" | jq -r .progress)"
  [ "$S" = "ready" ] && { echo "$R" | jq .; break; }
  [ "$S" = "failed" ] && { echo "FAILED: $R"; exit 1; }
  sleep 5
done


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)