ClawVideo Generation

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.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 1k · 1 current installs · 1 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description claim to generate Pinterest vertical videos via the JSON2Video API; the included Python script and SKILL.md both build JSON payloads and call https://api.json2video.com/v2 with an API key — this is coherent. However, the registry metadata lists no required environment variables while the instructions and code require JSON2VIDEO_API_KEY, which is an inconsistency.
Instruction Scope
SKILL.md instructs only to set JSON2VIDEO_API_KEY, run the included script with a JSON config, and use example files. The runtime instructions and code operate on provided config files and the JSON2Video API only; they do not instruct reading unrelated system files or sending data to unexpected endpoints.
Install Mechanism
This is an instruction-only skill with a small accompanying Python script; there is no install spec and no downloads from third-party URLs. Risk from install mechanism is low.
!
Credentials
SKILL.md and scripts require the JSON2VIDEO_API_KEY environment variable, but the registry metadata declares no required env vars or primary credential — this mismatch is concerning and could cause users to miss that a secret is needed. The skill references third-party providers (Azure voices, ElevenLabs, Cloudinary, etc.) in docs, but those are optional integrations and the code only requires the JSON2Video API key.
Persistence & Privilege
The skill does not request persistent/always-on privileges (always=false), does not modify other skills, and does not write system-wide configs. Autonomous invocation is allowed (default) but not combined with other high-risk requests.
What to consider before installing
Before installing, note these points: - The code and SKILL.md require a JSON2VIDEO_API_KEY, but the registry metadata does not list it — treat that as a metadata/packaging error. Do not supply high-privilege or reused credentials; use an API key scoped to rendering only, if possible. - The script sends requests to api.json2video.com (expected). If you plan to use Azure or ElevenLabs voices, verify whether you need additional keys for those services — the skill's docs mention them but the code delegates to JSON2Video (which may mediate TTS). - Source and homepage are unknown. If you need higher assurance, request provenance from the publisher or inspect the full script locally; the included Python is short and network calls are explicit (requests.post/get to JSON2Video). - For extra safety, run the script in an isolated environment or container and test with a throwaway API key. Check that logs or console output do not print your API key (the code reads the env var but does not log it). - If you rely on this skill in production, ask the publisher to correct the registry metadata to declare JSON2VIDEO_API_KEY and to document any additional credential needs. If you cannot verify the source, consider not installing or restricting the key's permissions.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
json2videovk978bc4qa1nmm1nexzdf0ek4t180qvtvlatestvk978bc4qa1nmm1nexzdf0ek4t180qvtvvideo generationvk978bc4qa1nmm1nexzdf0ek4t180qvtv

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

JSON2Video Pinterest Skill

Generate vertical videos (1080x1920) optimized for Pinterest using the JSON2Video API.

Prerequisites

  1. JSON2Video API Key: Sign up at https://json2video.com/get-api-key/
  2. Set Environment Variable:
    export JSON2VIDEO_API_KEY="your_api_key_here"
    

Quick Start

Create a video using a JSON configuration file:

python3 scripts/generate_video.py --config my-video.json --wait

Configuration Format

The video is defined as an array of scenes. Each scene contains:

PropertyTypeDescription
imageobjectImage configuration (AI-generated or URL)
voiceobjectVoice configuration (generated TTS or URL)
text_overlaystringOptional text displayed on scene
subtitlesbooleanEnable/disable subtitles
zoom_effectbooleanAdd Ken Burns zoom effect
durationnumberOverride scene duration (seconds)

Image Configuration

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"
  }
}

Voice Configuration

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.

Complete Example

{
  "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
    }
  ]
}

Advanced: Split Long Voiceover into Scenes

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
    }
  ]
}

Command Reference

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

Resolution Options

ResolutionDimensionsUse Case
instagram-story1080x1920Pinterest/Reels/Stories (recommended)
instagram-feed1080x1080Square posts
full-hd1920x1080Landscape YouTube
hd1280x720Standard HD
customAnyCustom dimensions

Voice Models & IDs

Azure (Default - FREE, no credits consumed)

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.

ElevenLabs (Premium - consumes credits)

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.

Security

  • 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

Example Files

  • scripts/example-config.json - Basic example with one scene
  • scripts/example-advanced.json - Multi-scene affiliate marketing video

Advanced Usage

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

Troubleshooting

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

Python API Usage

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}")

Files

6 total
Select a file
Select a file to preview.

Comments

Loading comments…