{
  "schemaVersion": "1.0",
  "item": {
    "slug": "claw-video-generator",
    "name": "ClawVideo Generation",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/benhuebner01/claw-video-generator",
    "canonicalUrl": "https://clawhub.ai/benhuebner01/claw-video-generator",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/claw-video-generator",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=claw-video-generator",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "ADVANCED.md",
      "scripts/example-advanced.json",
      "scripts/example-config.json",
      "scripts/generate_video.py",
      "scripts/test-video.json",
      "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/claw-video-generator"
    },
    "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/claw-video-generator",
    "agentPageUrl": "https://openagent3.xyz/skills/claw-video-generator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claw-video-generator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claw-video-generator/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": "JSON2Video Pinterest Skill",
        "body": "Generate vertical videos (1080x1920) optimized for Pinterest using the JSON2Video API."
      },
      {
        "title": "Prerequisites",
        "body": "JSON2Video API Key: Sign up at https://json2video.com/get-api-key/\nSet Environment Variable:\nexport JSON2VIDEO_API_KEY=\"your_api_key_here\""
      },
      {
        "title": "Quick Start",
        "body": "Create a video using a JSON configuration file:\n\npython3 scripts/generate_video.py --config my-video.json --wait"
      },
      {
        "title": "Configuration Format",
        "body": "The video is defined as an array of scenes. Each scene contains:\n\nPropertyTypeDescriptionimageobjectImage configuration (AI-generated or URL)voiceobjectVoice configuration (generated TTS or URL)text_overlaystringOptional text displayed on scenesubtitlesbooleanEnable/disable subtitleszoom_effectbooleanAdd Ken Burns zoom effectdurationnumberOverride scene duration (seconds)"
      },
      {
        "title": "Image Configuration",
        "body": "AI-Generated Image:\n\n{\n  \"image\": {\n    \"source\": \"ai\",\n    \"ai_provider\": \"flux-schnell\",\n    \"ai_prompt\": \"A minimalist workspace with laptop...\"\n  }\n}\n\nAvailable AI Providers:\n\nflux-pro - Highest quality, realistic images\nflux-schnell - Fast generation, good quality\nfreepik-classic - Digital artwork style\n\nURL-Based Image:\n\n{\n  \"image\": {\n    \"source\": \"https://example.com/image.jpg\"\n  }\n}"
      },
      {
        "title": "Voice Configuration",
        "body": "AI-Generated Voice (TTS):\n\n{\n  \"voice\": {\n    \"source\": \"generated\",\n    \"text\": \"Your voiceover text here\",\n    \"voice_id\": \"en-US-EmmaMultilingualNeural\",\n    \"model\": \"azure\"\n  }\n}\n\nProvided Audio File:\n\n{\n  \"voice\": {\n    \"source\": \"https://example.com/voiceover.mp3\"\n  }\n}\n\nNote on Scene Duration: The voiceover determines scene length automatically. Each scene's duration matches its audio length. For provided audio files, ensure they match your intended scene timing."
      },
      {
        "title": "Complete Example",
        "body": "{\n  \"resolution\": \"instagram-story\",\n  \"quality\": \"high\",\n  \"cache\": true,\n  \"scenes\": [\n    {\n      \"image\": {\n        \"source\": \"ai\",\n        \"ai_provider\": \"flux-schnell\",\n        \"ai_prompt\": \"Affiliate marketing workspace with laptop and coffee\"\n      },\n      \"voice\": {\n        \"source\": \"generated\",\n        \"text\": \"Here's how to make money with affiliate marketing\",\n        \"voice_id\": \"en-US-Neural2-F\"\n      },\n      \"text_overlay\": \"Affiliate Marketing 101\",\n      \"subtitles\": true,\n      \"zoom_effect\": true\n    }\n  ]\n}"
      },
      {
        "title": "Advanced: Split Long Voiceover into Scenes",
        "body": "For long scripts, split into multiple scenes with shorter voice segments:\n\n{\n  \"scenes\": [\n    {\n      \"image\": { \"source\": \"ai\", \"ai_prompt\": \"Hook image\" },\n      \"voice\": { \"source\": \"generated\", \"text\": \"Attention-grabbing hook...\" },\n      \"zoom_effect\": true\n    },\n    {\n      \"image\": { \"source\": \"ai\", \"ai_prompt\": \"Step 1 image\" },\n      \"voice\": { \"source\": \"generated\", \"text\": \"Step one is to...\" },\n      \"zoom_effect\": true\n    },\n    {\n      \"image\": { \"source\": \"ai\", \"ai_prompt\": \"CTA image\" },\n      \"voice\": { \"source\": \"generated\", \"text\": \"Click the link in bio...\" },\n      \"zoom_effect\": false\n    }\n  ]\n}"
      },
      {
        "title": "Command Reference",
        "body": "Create video from config:\n\npython3 scripts/generate_video.py --config video.json --wait\n\nCreate without waiting:\n\npython3 scripts/generate_video.py --config video.json --no-wait\n\nCheck status of existing project:\n\npython3 scripts/generate_video.py --project-id YOUR_PROJECT_ID"
      },
      {
        "title": "Resolution Options",
        "body": "ResolutionDimensionsUse Caseinstagram-story1080x1920Pinterest/Reels/Stories (recommended)instagram-feed1080x1080Square postsfull-hd1920x1080Landscape YouTubehd1280x720Standard HDcustomAnyCustom dimensions"
      },
      {
        "title": "Azure (Default - FREE, no credits consumed)",
        "body": "Voice format: en-US-EmmaMultilingualNeural\n\nCommon Azure voices:\n\nen-US-EmmaMultilingualNeural - Female, natural (recommended)\nen-US-GuyNeural - Male, professional\nen-US-JennyNeural - Female, friendly\nen-GB-SoniaNeural - British female\nen-GB-RyanNeural - British male\n\nSee Microsoft Azure Speech Voices for full list."
      },
      {
        "title": "ElevenLabs (Premium - consumes credits)",
        "body": "Voice names: Natural names like Bella, Antoni, Nova, Shimmer\n\nAvailable voices: Daniel, Serena, Antoni, Bella, Nova, Shimmer, and more.\n\nSee ElevenLabs Voice Library for full list."
      },
      {
        "title": "Security",
        "body": "API Key is NEVER stored in skill files\nAPI key must be set as environment variable JSON2VIDEO_API_KEY\nScript validates key exists before any API calls"
      },
      {
        "title": "Example Files",
        "body": "scripts/example-config.json - Basic example with one scene\nscripts/example-advanced.json - Multi-scene affiliate marketing video"
      },
      {
        "title": "Advanced Usage",
        "body": "See ADVANCED.md for:\n\nMulti-scene video architecture patterns\nImage source strategies (AI vs URL vs hybrid)\nVoiceover patterns and best practices\nSubtitle styling options\nPinterest-specific content tips\nBatch processing workflows\nCredit consumption optimization"
      },
      {
        "title": "Troubleshooting",
        "body": "Error: \"JSON2VIDEO_API_KEY environment variable not set\"\n→ Run: export JSON2VIDEO_API_KEY=\"your_key\"\n\nError: \"Render failed\"\n→ Check: Image URLs are publicly accessible\n→ Check: AI prompts don't violate content policies\n→ Check: Audio files are valid MP3/WAV\n\nVideo takes too long\n→ Enable cache: true in config\n→ Use flux-schnell instead of flux-pro for faster generation\n→ Pre-generate AI images and use URLs instead"
      },
      {
        "title": "Python API Usage",
        "body": "For programmatic use in other scripts:\n\nfrom scripts.generate_video import create_pinterest_video\n\nscenes = [\n    {\n        \"image\": {\"source\": \"ai\", \"ai_prompt\": \"...\"},\n        \"voice\": {\"source\": \"generated\", \"text\": \"...\"},\n        \"subtitles\": True,\n        \"zoom_effect\": True\n    }\n]\n\nvideo_url = create_pinterest_video(scenes, wait=True)\nprint(f\"Video ready: {video_url}\")"
      }
    ],
    "body": "JSON2Video Pinterest Skill\n\nGenerate vertical videos (1080x1920) optimized for Pinterest using the JSON2Video API.\n\nPrerequisites\nJSON2Video API Key: Sign up at https://json2video.com/get-api-key/\nSet Environment Variable:\nexport JSON2VIDEO_API_KEY=\"your_api_key_here\"\n\nQuick Start\n\nCreate a video using a JSON configuration file:\n\npython3 scripts/generate_video.py --config my-video.json --wait\n\nConfiguration Format\n\nThe video is defined as an array of scenes. Each scene contains:\n\nProperty\tType\tDescription\nimage\tobject\tImage configuration (AI-generated or URL)\nvoice\tobject\tVoice configuration (generated TTS or URL)\ntext_overlay\tstring\tOptional text displayed on scene\nsubtitles\tboolean\tEnable/disable subtitles\nzoom_effect\tboolean\tAdd Ken Burns zoom effect\nduration\tnumber\tOverride scene duration (seconds)\nImage Configuration\n\nAI-Generated Image:\n\n{\n  \"image\": {\n    \"source\": \"ai\",\n    \"ai_provider\": \"flux-schnell\",\n    \"ai_prompt\": \"A minimalist workspace with laptop...\"\n  }\n}\n\n\nAvailable AI Providers:\n\nflux-pro - Highest quality, realistic images\nflux-schnell - Fast generation, good quality\nfreepik-classic - Digital artwork style\n\nURL-Based Image:\n\n{\n  \"image\": {\n    \"source\": \"https://example.com/image.jpg\"\n  }\n}\n\nVoice Configuration\n\nAI-Generated Voice (TTS):\n\n{\n  \"voice\": {\n    \"source\": \"generated\",\n    \"text\": \"Your voiceover text here\",\n    \"voice_id\": \"en-US-EmmaMultilingualNeural\",\n    \"model\": \"azure\"\n  }\n}\n\n\nProvided Audio File:\n\n{\n  \"voice\": {\n    \"source\": \"https://example.com/voiceover.mp3\"\n  }\n}\n\n\nNote on Scene Duration: The voiceover determines scene length automatically. Each scene's duration matches its audio length. For provided audio files, ensure they match your intended scene timing.\n\nComplete Example\n{\n  \"resolution\": \"instagram-story\",\n  \"quality\": \"high\",\n  \"cache\": true,\n  \"scenes\": [\n    {\n      \"image\": {\n        \"source\": \"ai\",\n        \"ai_provider\": \"flux-schnell\",\n        \"ai_prompt\": \"Affiliate marketing workspace with laptop and coffee\"\n      },\n      \"voice\": {\n        \"source\": \"generated\",\n        \"text\": \"Here's how to make money with affiliate marketing\",\n        \"voice_id\": \"en-US-Neural2-F\"\n      },\n      \"text_overlay\": \"Affiliate Marketing 101\",\n      \"subtitles\": true,\n      \"zoom_effect\": true\n    }\n  ]\n}\n\nAdvanced: Split Long Voiceover into Scenes\n\nFor long scripts, split into multiple scenes with shorter voice segments:\n\n{\n  \"scenes\": [\n    {\n      \"image\": { \"source\": \"ai\", \"ai_prompt\": \"Hook image\" },\n      \"voice\": { \"source\": \"generated\", \"text\": \"Attention-grabbing hook...\" },\n      \"zoom_effect\": true\n    },\n    {\n      \"image\": { \"source\": \"ai\", \"ai_prompt\": \"Step 1 image\" },\n      \"voice\": { \"source\": \"generated\", \"text\": \"Step one is to...\" },\n      \"zoom_effect\": true\n    },\n    {\n      \"image\": { \"source\": \"ai\", \"ai_prompt\": \"CTA image\" },\n      \"voice\": { \"source\": \"generated\", \"text\": \"Click the link in bio...\" },\n      \"zoom_effect\": false\n    }\n  ]\n}\n\nCommand Reference\n\nCreate video from config:\n\npython3 scripts/generate_video.py --config video.json --wait\n\n\nCreate without waiting:\n\npython3 scripts/generate_video.py --config video.json --no-wait\n\n\nCheck status of existing project:\n\npython3 scripts/generate_video.py --project-id YOUR_PROJECT_ID\n\nResolution Options\nResolution\tDimensions\tUse Case\ninstagram-story\t1080x1920\tPinterest/Reels/Stories (recommended)\ninstagram-feed\t1080x1080\tSquare posts\nfull-hd\t1920x1080\tLandscape YouTube\nhd\t1280x720\tStandard HD\ncustom\tAny\tCustom dimensions\nVoice Models & IDs\nAzure (Default - FREE, no credits consumed)\n\nVoice format: en-US-EmmaMultilingualNeural\n\nCommon Azure voices:\n\nen-US-EmmaMultilingualNeural - Female, natural (recommended)\nen-US-GuyNeural - Male, professional\nen-US-JennyNeural - Female, friendly\nen-GB-SoniaNeural - British female\nen-GB-RyanNeural - British male\n\nSee Microsoft Azure Speech Voices for full list.\n\nElevenLabs (Premium - consumes credits)\n\nVoice names: Natural names like Bella, Antoni, Nova, Shimmer\n\nAvailable voices: Daniel, Serena, Antoni, Bella, Nova, Shimmer, and more.\n\nSee ElevenLabs Voice Library for full list.\n\nSecurity\nAPI Key is NEVER stored in skill files\nAPI key must be set as environment variable JSON2VIDEO_API_KEY\nScript validates key exists before any API calls\nExample Files\nscripts/example-config.json - Basic example with one scene\nscripts/example-advanced.json - Multi-scene affiliate marketing video\nAdvanced Usage\n\nSee ADVANCED.md for:\n\nMulti-scene video architecture patterns\nImage source strategies (AI vs URL vs hybrid)\nVoiceover patterns and best practices\nSubtitle styling options\nPinterest-specific content tips\nBatch processing workflows\nCredit consumption optimization\nTroubleshooting\n\nError: \"JSON2VIDEO_API_KEY environment variable not set\" → Run: export JSON2VIDEO_API_KEY=\"your_key\"\n\nError: \"Render failed\" → Check: Image URLs are publicly accessible → Check: AI prompts don't violate content policies → Check: Audio files are valid MP3/WAV\n\nVideo takes too long → Enable cache: true in config → Use flux-schnell instead of flux-pro for faster generation → Pre-generate AI images and use URLs instead\n\nPython API Usage\n\nFor programmatic use in other scripts:\n\nfrom scripts.generate_video import create_pinterest_video\n\nscenes = [\n    {\n        \"image\": {\"source\": \"ai\", \"ai_prompt\": \"...\"},\n        \"voice\": {\"source\": \"generated\", \"text\": \"...\"},\n        \"subtitles\": True,\n        \"zoom_effect\": True\n    }\n]\n\nvideo_url = create_pinterest_video(scenes, wait=True)\nprint(f\"Video ready: {video_url}\")"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/benhuebner01/claw-video-generator",
    "publisherUrl": "https://clawhub.ai/benhuebner01/claw-video-generator",
    "owner": "benhuebner01",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/claw-video-generator",
    "downloadUrl": "https://openagent3.xyz/downloads/claw-video-generator",
    "agentUrl": "https://openagent3.xyz/skills/claw-video-generator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claw-video-generator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claw-video-generator/agent.md"
  }
}