Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Generate Pinterest-optimized vertical videos using JSON2Video API. Supports AI-generated or URL-based images, AI-generated or provided voiceovers, optional subtitles, and zoom effects. Use when creating video content for Pinterest affiliate marketing, creating vertical social media videos, automating video production with JSON2Video API, or generating videos with voiceovers and subtitles.
Generate Pinterest-optimized vertical videos using JSON2Video API. Supports AI-generated or URL-based images, AI-generated or provided voiceovers, optional subtitles, and zoom effects. Use when creating video content for Pinterest affiliate marketing, creating vertical social media videos, automating video production with JSON2Video API, or generating videos with voiceovers and subtitles.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
Generate vertical videos (1080x1920) optimized for Pinterest using the JSON2Video API.
JSON2Video API Key: Sign up at https://json2video.com/get-api-key/ Set Environment Variable: export JSON2VIDEO_API_KEY="your_api_key_here"
Create a video using a JSON configuration file: python3 scripts/generate_video.py --config my-video.json --wait
The video is defined as an array of scenes. Each scene contains: PropertyTypeDescriptionimageobjectImage 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)
AI-Generated Image: { "image": { "source": "ai", "ai_provider": "flux-schnell", "ai_prompt": "A minimalist workspace with laptop..." } } Available AI Providers: flux-pro - Highest quality, realistic images flux-schnell - Fast generation, good quality freepik-classic - Digital artwork style URL-Based Image: { "image": { "source": "https://example.com/image.jpg" } }
AI-Generated Voice (TTS): { "voice": { "source": "generated", "text": "Your voiceover text here", "voice_id": "en-US-EmmaMultilingualNeural", "model": "azure" } } Provided Audio File: { "voice": { "source": "https://example.com/voiceover.mp3" } } Note 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.
{ "resolution": "instagram-story", "quality": "high", "cache": true, "scenes": [ { "image": { "source": "ai", "ai_provider": "flux-schnell", "ai_prompt": "Affiliate marketing workspace with laptop and coffee" }, "voice": { "source": "generated", "text": "Here's how to make money with affiliate marketing", "voice_id": "en-US-Neural2-F" }, "text_overlay": "Affiliate Marketing 101", "subtitles": true, "zoom_effect": true } ] }
For long scripts, split into multiple scenes with shorter voice segments: { "scenes": [ { "image": { "source": "ai", "ai_prompt": "Hook image" }, "voice": { "source": "generated", "text": "Attention-grabbing hook..." }, "zoom_effect": true }, { "image": { "source": "ai", "ai_prompt": "Step 1 image" }, "voice": { "source": "generated", "text": "Step one is to..." }, "zoom_effect": true }, { "image": { "source": "ai", "ai_prompt": "CTA image" }, "voice": { "source": "generated", "text": "Click the link in bio..." }, "zoom_effect": false } ] }
Create video from config: python3 scripts/generate_video.py --config video.json --wait Create without waiting: python3 scripts/generate_video.py --config video.json --no-wait Check status of existing project: python3 scripts/generate_video.py --project-id YOUR_PROJECT_ID
ResolutionDimensionsUse Caseinstagram-story1080x1920Pinterest/Reels/Stories (recommended)instagram-feed1080x1080Square postsfull-hd1920x1080Landscape YouTubehd1280x720Standard HDcustomAnyCustom dimensions
Voice format: en-US-EmmaMultilingualNeural Common Azure voices: en-US-EmmaMultilingualNeural - Female, natural (recommended) en-US-GuyNeural - Male, professional en-US-JennyNeural - Female, friendly en-GB-SoniaNeural - British female en-GB-RyanNeural - British male See Microsoft Azure Speech Voices for full list.
Voice names: Natural names like Bella, Antoni, Nova, Shimmer Available voices: Daniel, Serena, Antoni, Bella, Nova, Shimmer, and more. See ElevenLabs Voice Library for full list.
API Key is NEVER stored in skill files API key must be set as environment variable JSON2VIDEO_API_KEY Script validates key exists before any API calls
scripts/example-config.json - Basic example with one scene scripts/example-advanced.json - Multi-scene affiliate marketing video
See ADVANCED.md for: Multi-scene video architecture patterns Image source strategies (AI vs URL vs hybrid) Voiceover patterns and best practices Subtitle styling options Pinterest-specific content tips Batch processing workflows Credit consumption optimization
Error: "JSON2VIDEO_API_KEY environment variable not set" โ Run: export JSON2VIDEO_API_KEY="your_key" Error: "Render failed" โ Check: Image URLs are publicly accessible โ Check: AI prompts don't violate content policies โ Check: Audio files are valid MP3/WAV Video 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
For programmatic use in other scripts: from scripts.generate_video import create_pinterest_video scenes = [ { "image": {"source": "ai", "ai_prompt": "..."}, "voice": {"source": "generated", "text": "..."}, "subtitles": True, "zoom_effect": True } ] video_url = create_pinterest_video(scenes, wait=True) print(f"Video ready: {video_url}")
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.