# AI Product Video Generator

> Agent skill on puras — published by puras. An AI product video generator: a few product photos (or just your product URL) become a short, cinematic product-reveal video. This image-to-video skill turns your real product shots into a launch-ready, scroll-stopping clip for TikTok, Reels, and paid social — no filming or editing skills needed.

- **Skill path:** `puras/product-ad-studio/product-reveal-video`
- **Skillpack:** Product Ad Studio (`product-ad-studio`)
- **Skillpack ID:** `39903015-da3d-49a2-b549-9256ef164430`
- **Deployment version:** v51
- **Human page:** https://puras.co/skills/puras/product-ad-studio/product-reveal-video
- **API base:** `https://api.puras.co`

## Description

An AI product video generator: a few product photos (or just your product URL) become a short, cinematic product-reveal video. This image-to-video skill turns your real product shots into a launch-ready, scroll-stopping clip for TikTok, Reels, and paid social — no filming or editing skills needed.

## Who it's for

- **DTC & e-commerce sellers** — Give every launch or drop its own reveal video.
- **Growth & performance marketers** — Generate reveal clips to test in paid social.
- **Founders & indie makers** — Ship a launch video without an editor or a shoot.

## AI Product Video Generator vs Creatify & Invideo AI

| | Creatify & Invideo AI | puras |
| --- | --- | --- |
| Pricing | Subscription or per-credit video plans | Usage-based — pay per video, exact cost each run |
| How it works | Pick templates and edit in their app | Builds a cinematic concept around your real product photos (image-to-video) |
| Output | Rendered inside their platform | A finished clip your app receives over one API call |
| Where it runs | A web editor you log into | API-native — generate reveal clips on demand |

## FAQ

### How do you make a product reveal video with AI?

Upload one to five product photos and a short brief (a product URL works too), pick your aspect ratio, and the skill builds a cinematic concept around your product and renders a short, high-energy reveal clip in a single run — no editing, filming, or motion-design skills required.

### Can AI turn a product photo into a video?

Yes. This is an image-to-video generator built for products — it anchors every clip to your real product photos, so the item in the video is the one you uploaded, not a generic stock stand-in.

### How many photos do I need to make an AI product video?

As few as one. You can supply up to five product photos; sharp, well-lit shots give the cleanest cinematic reveal.

### How long should a product reveal video be?

Short and punchy. You can set any length from 4 to 12 seconds, and 8 seconds is the sweet spot for a scroll-stopping reveal on paid social.

### What aspect ratio should a product reveal video be for TikTok and Reels?

Use 9:16 vertical for TikTok, Instagram Reels, and YouTube Shorts. The skill also renders 1:1 square and 16:9 widescreen, and you can request multiple ratios in one run — one clip per ratio.

### Can I make a product launch video from just a URL?

Yes. Point it at your product page or website instead of writing a brief, and it works from that to design and render a launch-ready cinematic clip.

### Can I generate product videos from my own app or for ecommerce in bulk?

Yes — it's API-native, so you can call it with a single API key to generate product reveal videos on demand and produce as many ad variants as you want to test across your ecommerce launches.

## Try it free

AI Product Video Generator has a free in-browser playground on its page (https://puras.co/skills/puras/product-ad-studio/product-reveal-video) — load an example or bring your own inputs and run it with a Google sign-in. No credit card, no subscription; runs are usage-based after the free try.

## Input schema

```json
{
  "type": "object",
  "required": [
    "brief",
    "product_images"
  ],
  "properties": {
    "brief": {
      "type": "text",
      "maxLength": 2000,
      "minLength": 10,
      "description": "What it is, who it's for, what to land. URL works."
    },
    "aspect_ratios": {
      "type": "array",
      "items": {
        "enum": [
          "9:16",
          "1:1",
          "16:9"
        ],
        "type": "string"
      },
      "default": [
        "9:16"
      ],
      "minItems": 1,
      "description": "Output frame(s). Pick one or more — one clip is rendered per selected ratio.",
      "uniqueItems": true
    },
    "product_images": {
      "type": "array",
      "items": {
        "type": "image"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "Product photos that anchor the real product. Sharp, well-lit shots work best."
    },
    "duration_seconds": {
      "type": "integer",
      "default": 8,
      "maximum": 12,
      "minimum": 4,
      "description": "Target clip length. 8 s is the sweet spot."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "properties": {
    "videos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "video_url": {
            "type": "video",
            "description": "Drive path to the rendered product-reveal clip; served to readers as a stable media URL. The playground renders it with a <video> player."
          },
          "aspect_ratio": {
            "enum": [
              "9:16",
              "1:1",
              "16:9"
            ],
            "type": "string",
            "description": "The frame this clip was rendered for."
          }
        }
      },
      "minItems": 1,
      "description": "One rendered clip per aspect ratio."
    }
  }
}
```

## Examples

### Luxury fragrance reveal

One packshot and a short brief. Research locks in the product, then a cinematic 8-second reveal is rendered from your real bottle — same glass, same amber, same leather cap.

Inputs:

```json
{
  "brief": "A refined fragrance presented in a sculptural glass bottle, blending warm amber tones with an elegant leather-textured cap for a timeless luxury feel.",
  "aspect_ratios": [
    "9:16"
  ],
  "product_images": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/fragrance-product.jpg"
  ],
  "duration_seconds": 8
}
```

Outputs:

```json
{
  "videos": [
    {
      "video_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/fragrance-reveal.mp4",
      "aspect_ratio": "9:16"
    }
  ]
}
```

### Playful kids' product reveal

A single packshot and a one-line brief → a soft, bouncy 8-second reveal for a playful kids' product.

Inputs:

```json
{
  "brief": "A pink children’s hat slowly rotates on a white background; the cute frog ears and embroidered smile stand out, with soft pastel lighting, a subtle bouncy motion, and a playful, cozy kids’ fashion ad feel.",
  "aspect_ratios": [
    "9:16"
  ],
  "product_images": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/examples/product-ad-studio/product-reveal-video/b9b7b168/product_images-0.webp"
  ],
  "duration_seconds": 8
}
```

Outputs:

```json
{
  "videos": [
    {
      "video_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/examples/product-ad-studio/product-reveal-video/b9b7b168/out-video_url.mp4",
      "aspect_ratio": "9:16"
    }
  ]
}
```

## Use this skill

puras runs this skill on its own backend — you send inputs and get the result back. Three ways to call, fastest first:

### 1. MCP server — recommended for coding agents, no API key

Connect the puras MCP server; auth is OAuth in the browser on first call, so there is nothing to paste.

```bash
claude mcp add --transport http puras https://mcp.puras.co/mcp
```

Any MCP client works — point it at `https://mcp.puras.co/mcp` (HTTP transport). Then ask the agent to run `product-reveal-video` from skillpack `puras/product-ad-studio` with your inputs.

### 2. CLI / Python SDK — `pip install puras`

```bash
pip install puras
puras login            # or set PURAS_API_KEY
puras run puras/product-ad-studio/product-reveal-video -i key=value
```

From Python:

```python
import puras

client = puras.Client()   # PURAS_API_KEY from env
result = client.run("puras/product-ad-studio/product-reveal-video", {"brief":"A refined fragrance presented in a sculptural glass bottle, blending warm amber tones with an elegant leather-textured cap for a timeless luxury feel.","aspect_ratios":["9:16"],"product_images":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/fragrance-product.jpg"],"duration_seconds":8})
```

### 3. HTTP API

`wait=true` blocks until the run reaches a terminal status and returns the result inline.

```bash
curl -X POST "https://api.puras.co/v1/jobs?skillpack=puras/product-ad-studio&wait=true" \
  -H "Authorization: Bearer $PURAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"skill":"product-reveal-video","inputs":{"brief":"A refined fragrance presented in a sculptural glass bottle, blending warm amber tones with an elegant leather-textured cap for a timeless luxury feel.","aspect_ratios":["9:16"],"product_images":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/fragrance-product.jpg"],"duration_seconds":8}}'
```

Mint an API key (for CLI / SDK / API) from https://puras.co/api-keys.

## Pricing

Runs are billed usage-based from your workspace credit balance — the cost of a job is the sum of the model token (and any media) usage it incurs. There is no per-call platform fee. The playground and the job result report the exact cost of each run.

- Pricing page: https://puras.co/pricing
- Machine-readable model price registry: `https://api.puras.co/v1/pricing`
