# AI UGC Video Maker (`actums/ai-ugc-video-maker`) Actor

Create viral-ready UGC videos in seconds. This AI UGC Video Maker automates eCommerce marketing by converting product images into engaging social media ads. Perfect for TikTok, Reels, and automated video marketing campaigns. High-quality AI video generator for scaling your creative output.

- **URL**: https://apify.com/actums/ai-ugc-video-maker.md
- **Developed by:** [Actums](https://apify.com/actums) (community)
- **Categories:** Videos, Social media, E-commerce
- **Stats:** 12 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$47.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🤖 AI UGC Video Maker

**AI UGC Video Maker** is a powerful automation tool that generates authentic, vertical (9:16) User-Generated Content (UGC) style videos for your e-commerce products. Using advanced generative AI like Google's VEO and Gemini, this actor creates high-quality, engaging video ads perfect for social media platforms like TikTok, Instagram Reels, and YouTube Shorts, helping you scale your video marketing efforts effortlessly.

### ✨ Why Use AI UGC Video Maker?

In today's market, authentic content is key. UGC-style videos build trust and drive conversions far more effectively than polished, corporate-style ads. However, creating this content at scale is a major challenge. That's where our actor comes in.

-   **💰 Save Time and Money**: Skip the expensive and time-consuming process of hiring creators, managing contracts, and overseeing video production. Generate countless video variations with a single click.
-   **🚀 Scale Your Marketing**: Effortlessly create unique video ads for every product in your catalog. Perfect for A/B testing different marketing angles, hooks, and calls-to-action.
-   **📈 Boost Engagement & Conversion**: Produce genuine-looking content that resonates with modern audiences and stops the scroll, leading to higher engagement and better conversion rates.
-   **🤖 AI-Powered Creativity**: The actor doesn't just make a video; it analyzes your product, creates a detailed ideal customer persona, and writes multiple compelling scripts tailored to that persona.

###  platform Features

By running on the Apify platform, the **AI UGC Video Maker** is supercharged with a suite of native features that make it more powerful and versatile:

-   **🕒 Scheduling**: Automatically generate new video content on a recurring schedule. Perfect for creating fresh ads for weekly promotions or new product drops without any manual intervention.
-   **🔗 Integration**: Connect the actor to your existing workflows. Use **webhooks** to get a Slack notification when your videos are ready, or use the **Apify API** to trigger video generation from your own application or CMS.
-   **☁️ Cloud Storage**: All generated assets—including the final videos, personas, scripts, and initial frames—are stored securely on the Apify platform. Access them anytime through the app or API.
-   **💻 API Access**: Programmatically control the actor by calling its API endpoint. Build a custom front-end or integrate video generation directly into your internal tools.

### ⚙️ How It Works

The actor follows a sophisticated, multi-step process to create each video:

1.  **Product Analysis**: It starts by analyzing your product image to understand its features and target audience.
2.  **Persona Generation**: An ideal influencer persona is created using AI, complete with a backstory, style, and personality, ensuring the final video feels authentic.
3.  **Secure Output**: The final video and all associated assets are saved to the Apify Key-Value Store, and a public URL is provided for easy access.

### 📥 Input

The actor requires the following inputs:

| Field             | Type   | Description                                                                 |
| ----------------- | ------ | --------------------------------------------------------------------------- |
| `productImageUrl` | String | A direct public URL to an image of your product.                            |
| `productName`     | String | The name of your product (e.g., "AG1", "Hydro Flask").                        |
| `geminiApiKey`    | String | Your Google AI API key with access to the Gemini and VEO models.              |

### 📤 Output

The actor saves its results in the default dataset. A run will produce a record containing the `productName`, `productImageUrl`, and a direct link to the `generatedVideoUrl`.

# Actor input Schema

## `productImageUrl` (type: `string`):

Provide a direct URL to a high-quality image of your e-commerce product. This image will be used for AI analysis and as a base for the video's first frame.
## `productName` (type: `string`):

Enter the exact name of your product. This helps the AI understand the product context for persona and script generation.
## `geminiApiKey` (type: `string`):

Your API key for authenticating with Google Gemini and VEO services. **Ensure this key has sufficient quota and is kept secure.**

## Actor input object example

```json
{
  "productImageUrl": "https://i.imgur.com/hVcDpIJ.jpeg",
  "productName": "GoPro Max",
  "geminiApiKey": "YOUR_GEMINI_API_KEY"
}
````

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "productImageUrl": "https://i.imgur.com/hVcDpIJ.jpeg",
    "productName": "GoPro Max",
    "geminiApiKey": "YOUR_GEMINI_API_KEY"
};

// Run the Actor and wait for it to finish
const run = await client.actor("actums/ai-ugc-video-maker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "productImageUrl": "https://i.imgur.com/hVcDpIJ.jpeg",
    "productName": "GoPro Max",
    "geminiApiKey": "YOUR_GEMINI_API_KEY",
}

# Run the Actor and wait for it to finish
run = client.actor("actums/ai-ugc-video-maker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "productImageUrl": "https://i.imgur.com/hVcDpIJ.jpeg",
  "productName": "GoPro Max",
  "geminiApiKey": "YOUR_GEMINI_API_KEY"
}' |
apify call actums/ai-ugc-video-maker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=actums/ai-ugc-video-maker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AI UGC Video Maker",
        "description": "Create viral-ready UGC videos in seconds. This AI UGC Video Maker automates eCommerce marketing by converting product images into engaging social media ads. Perfect for TikTok, Reels, and automated video marketing campaigns. High-quality AI video generator for scaling your creative output.",
        "version": "0.0",
        "x-build-id": "999vIxGvZWxxw3w3N"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/actums~ai-ugc-video-maker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-actums-ai-ugc-video-maker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/actums~ai-ugc-video-maker/runs": {
            "post": {
                "operationId": "runs-sync-actums-ai-ugc-video-maker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/actums~ai-ugc-video-maker/run-sync": {
            "post": {
                "operationId": "run-sync-actums-ai-ugc-video-maker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "productImageUrl",
                    "productName",
                    "geminiApiKey"
                ],
                "properties": {
                    "productImageUrl": {
                        "title": "Product Image URL",
                        "type": "string",
                        "description": "Provide a direct URL to a high-quality image of your e-commerce product. This image will be used for AI analysis and as a base for the video's first frame."
                    },
                    "productName": {
                        "title": "Product Name",
                        "type": "string",
                        "description": "Enter the exact name of your product. This helps the AI understand the product context for persona and script generation."
                    },
                    "geminiApiKey": {
                        "title": "Google AI API Key",
                        "type": "string",
                        "description": "Your API key for authenticating with Google Gemini and VEO services. **Ensure this key has sufficient quota and is kept secure.**"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
