Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Generate Pinterest Vertical Videos

ASecurity

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 me…

19 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agentspythongobashazuregitapisecurity

Works with

cliapi

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add rondoflow/rondoflow --skill generate-pinterest-vertical-videos --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Generate Pinterest Vertical Videos?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Generate Pinterest Vertical Videos
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rondoflow-generate-pinterest-vertical-videos/badge)](https://www.skillsdirectory.com/skills/rondoflow-generate-pinterest-vertical-videos)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: generate-pinterest-vertical-videos
description: "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 me…"
category: "Media"
author: community
version: "1.0.0"
icon: image
---

# 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**:
   ```bash
   export JSON2VIDEO_API_KEY="your_api_key_here"
   ```

## Quick Start

Create a video using a JSON configuration file:

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

## Configuration Format

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

| Property | Type | Description |
|----------|------|-------------|
| `image` | object | Image configuration (AI-generated or URL) |
| `voice` | object | Voice configuration (generated TTS or URL) |
| `text_overlay` | string | Optional text displayed on scene |
| `subtitles` | boolean | Enable/disable subtitles |
| `zoom_effect` | boolean | Add Ken Burns zoom effect |
| `duration` | number | Override scene duration (seconds) |

### Image Configuration

**AI-Generated Image:**
```json
{
  "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:**
```json
{
  "image": {
    "source": "https://example.com/image.jpg"
  }
}
```

### Voice Configuration

**AI-Generated Voice (TTS):**
```json
{
  "voice": {
    "source": "generated",
    "text": "Your voiceover text here",
    "voice_id": "en-US-EmmaMultilingualNeural",
    "model": "azure"
  }
}
```

**Provided Audio File:**
```json
{
  "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

```json
{
  "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:

```json
{
  "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:**
```bash
python3 scripts/generate_video.py --config video.json --wait
```

**Create without waiting:**
```bash
python3 scripts/generate_video.py --config video.json --no-wait
```

**Check status of existing project:**
```bash
python3 scripts/generate_video.py --project-id YOUR_PROJECT_ID
```

## Resolution Options

| Resolution | Dimensions | Use Case |
|------------|------------|----------|
| `instagram-story` | 1080x1920 | **Pinterest/Reels/Stories** (recommended) |
| `instagram-feed` | 1080x1080 | Square posts |
| `full-hd` | 1920x1080 | Landscape YouTube |
| `hd` | 1280x720 | Standard HD |
| `custom` | Any | Custom 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](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=tts) 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](https://elevenlabs.io/app/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](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:

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

Attribution

rondoflowrondoflow
View sourceMore from rondoflow →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

693161 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →