# AI YouTube Thumbnails Generator (`peaceful_pushpins/ai-youtube-thumbnails-generator`) Actor

Generates high-quality, high-impact YouTube thumbnails from a YouTube video URL. Turn YouTube URLs into High-CTR Thumbnails in Seconds.

- **URL**: https://apify.com/peaceful\_pushpins/ai-youtube-thumbnails-generator.md
- **Developed by:** [Wasim Safdar](https://apify.com/peaceful_pushpins) (community)
- **Categories:** AI, Videos, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1,000.00 / 1,000 ai orchestrations

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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 YouTube Thumbnails Generator

This Actor Generates **high-impact**, **high-performance** AI-generated Thumbnails from your YouTube Video URL. Stop wasting hours on design—create **click-winning** thumbnails in seconds using state-of-the-art AI. 

### 🚀 Features

- **Smart AI Orchestration:** Unlike basic generators, our Actor uses a "Multi-Prompt" technique. Every single thumbnail in a batch is generated from a unique, optimized prompt, ensuring maximum variety and creativity.
- **Batch Generation:** Generate anywhere from 1 to 100 images in a single run.
- **Dual Model Support:** Choose the engine that fits your style. You can choose between 2 models: **Basic Wan 2.6** or **Premium (Gemini 3 - Nano banana Pro)**.
- **Reference Image Logic:** Upload your own professional picture or selfie as a reference for **personal branding**. Upload up to 2 additional images to guide **subject**, **background**, and **composition**.

### 🤖 Select Your Model

| Model              | Best For..                                                                       | Tech Stack                        |
| ------------------ | ------ | ----------------------------------------------------------------------------------------------------------- |
| `Basic`            | Speed, clean aesthetics, and modern YouTube styles.                              | Wan 2.6                           |
| `Premium`          | High-fidelity details, complex compositions, and superior character consistency. | Gemini 3 (Nano Banana Pro)        |

### What kind of data can be collected?

We do not collect any personal user data. All inputs, generated music, and metadata belong to the user running the actor.

### Actor's Input

| Input              | Type   | Description                                                                                                 |
| ------------------ | ------ | ----------------------------------------------------------------------------------------------------------- |
| `YouTube Video Url`| string | URL of a YouTube Video.                                                                                     |
| `AI Model`         | string | Select image generation engine of your choice, Wan 2.6 or Gemini 3                                          |
| `Reference Images` | string | 1-3 reference images that describes yourself and guide Actor for subject, background and composition        |
| `Thumnail Prompt`  | string | Thumnail prompt that describe your vision for thumnails                                                     |
| `No of Images`     | Integer| No of images you wanted to generate per run                                                                 |
| `Proxy Settings`   | string | Proxy configuration or no proxy setup                                                                       |


### Actor's Output

| Output                    | Type   | Description                                             |
| ------------------------- | ------ | ------------------------------------------------------- |
| `url`                     | string  | YouTube Video Url                                      |
| `title`                   | string  | Title of YouTube Video                                 |
| `description`             | string  | Description from YouTube Video                         |
| `thumnailurls`            | object  | Apify storage links of generated thumbnail images      |
| `model`                   | string  | Model used for thumnails generation                    |

### Example Input

```json
{
  "referenceImage": "https://api.apify.com/v2/key-value-stores/XLxeIVFRff8ohlwR7/records/472271834_10161368720653655_1503877994411980261_n.jpg",
  "thumbnail_prompt": "Generate a high-quality, high-impact YouTube thumbnail for the video. Include the video title and a compelling visual that represents the content using referenceImage. The thumbnail should be visually appealing and relevant to the video's content, which is about 'How to Build a Successful YouTube Channel in 2026'. Use bold colors, clear text, and engaging imagery to attract viewers.",
  "noOfImages": 1,
  "videoUrl": "https://www.youtube.com/watch?v=YDJ9TEgcWPU"
}
````

### Ideas use cases

Whether you are a solo creator or a marketing agency, here are a few ways to leverage this Actor:

#### 👤 Personal Branding & Vlogs

**The "Reaction" Look:** Upload a reference image of yourself making a surprised or excited face. Use the Basic model to blend your face into high-energy, vibrant backgrounds.

#### 🎮 Gaming & Entertainment

**Epic Storytelling:** Provide a video title like "I Survived 100 Days in the Hardcore Ocean" and upload a Minecraft screenshot as a composition reference.

#### 📚 Educational & Tutorial Content

**Clean & Professional:** For "How-to" videos, use a minimalist composition reference. The AI orchestration will ensure that text-heavy or object-focused thumbnails remain clear and readable.

#### 🏢 Digital Agencies

**Bulk Client Work:** Manage multiple YouTube channels? Generate entire weeks' worth of thumbnail concepts for your clients in minutes.

### 💳 Pricing & Charging

This Actor uses a Pay-per-Event model. You are charged for:

1. **Apify charges**: This includes, Apify start, result and storage charges

2. **Orchestration:** Each unique prompt created by the LLM.

3. **Generation:** Each successful thumbnail image generated.

| Event name            | Price | Frequency                 |
| ------------------    | ----- | ------------------------- |
| `orchestration_event` | $1.00 | Once per prompt/per image |
| `api-call-event`      | $0.10 | Once per api call         |
| `charge-tier-basic`   | $1.00 | Once per image            |
| `charge-tier-premium` | $2.00 | Once per image            |

### Retention policy

The retention policy of data for this actor is 31 days. However, there is also an **audio URL** generated by third-party service and they wrote that url link is valid for 7 days. However, links can be broken for several reasons before this. Therefore, this actor
also downloads and save video in Apify store. You can access that link through "musicUrl" in musicTracks output. Still it is best for you download a music files on your local device and export data.

### Error Handling & Support

The actor can fail due to many reasons because it rely on third party services. We tested it and always trying to improve it's performance. Please allow the actor to complete its execution before checking results. However, if you found any technical issue or bug you can create an issue on the Actor's[Issues tab](https://console.apify.com/actors/p7QEl7FGHHAac9Fow/issues).

### License

This actor is provided as-is. The user who generates music content owns the resulting content. You are fully accountable for your use of the models, which must not involve sharing any content that violates applicable laws, causes harm to individuals or groups, disseminates personal information intended for harm, spreads misinformation, or targets vulnerable populations.

# Actor input Schema

## `videoUrl` (type: `string`):

Paste the URL of a YouTube Video

## `model` (type: `string`):

Select Image generation model of your choice

## `referenceImage1` (type: `string`):

Upload your picture to be used as a reference for the thumbnail generation. Please choose high resolution image with smooth and clear background

## `referenceImage2` (type: `string`):

Upload an image to be used as a reference for the thumbnail generation to guide style, subject or background composition

## `referenceImage3` (type: `string`):

Upload an image to be used as a reference for the thumbnail generation to control style, character consistency, or composition

## `thumbnail_prompt` (type: `string`):

Describe the scene, tone, and emotions for the thumbnail (e.g., 'A vibrant, energetic scene with a shocked expression, high contrast colors')

## `noOfImages` (type: `integer`):

Choose a number between 1 and 100

## `proxySettings` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "videoUrl": "https://www.youtube.com/watch?v=7hmPOMnTs1E&t=2s",
  "model": "Basic (Wan 2.6)",
  "noOfImages": 2,
  "proxySettings": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "proxySettings": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("peaceful_pushpins/ai-youtube-thumbnails-generator").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 = { "proxySettings": { "useApifyProxy": False } }

# Run the Actor and wait for it to finish
run = client.actor("peaceful_pushpins/ai-youtube-thumbnails-generator").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 '{
  "proxySettings": {
    "useApifyProxy": false
  }
}' |
apify call peaceful_pushpins/ai-youtube-thumbnails-generator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=peaceful_pushpins/ai-youtube-thumbnails-generator",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AI YouTube Thumbnails Generator",
        "description": "Generates high-quality, high-impact YouTube thumbnails from a YouTube video URL. Turn YouTube URLs into High-CTR Thumbnails in Seconds.",
        "version": "0.1",
        "x-build-id": "uFbeYchlS0eikKWjO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/peaceful_pushpins~ai-youtube-thumbnails-generator/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-peaceful_pushpins-ai-youtube-thumbnails-generator",
                "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/peaceful_pushpins~ai-youtube-thumbnails-generator/runs": {
            "post": {
                "operationId": "runs-sync-peaceful_pushpins-ai-youtube-thumbnails-generator",
                "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/peaceful_pushpins~ai-youtube-thumbnails-generator/run-sync": {
            "post": {
                "operationId": "run-sync-peaceful_pushpins-ai-youtube-thumbnails-generator",
                "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": [
                    "videoUrl",
                    "noOfImages"
                ],
                "properties": {
                    "videoUrl": {
                        "title": "YouTube Video URL",
                        "pattern": "^https?://",
                        "type": "string",
                        "description": "Paste the URL of a YouTube Video",
                        "default": "https://www.youtube.com/watch?v=7hmPOMnTs1E&t=2s"
                    },
                    "model": {
                        "title": "Select AI Model",
                        "enum": [
                            "Basic (Wan 2.6)",
                            "Premium (Gemini 3 - Nano Banana Pro)"
                        ],
                        "type": "string",
                        "description": "Select Image generation model of your choice",
                        "default": "Basic (Wan 2.6)"
                    },
                    "referenceImage1": {
                        "title": "Reference Image 1 (Optional)",
                        "type": "string",
                        "description": "Upload your picture to be used as a reference for the thumbnail generation. Please choose high resolution image with smooth and clear background"
                    },
                    "referenceImage2": {
                        "title": "Reference Image 2 (Optional)",
                        "type": "string",
                        "description": "Upload an image to be used as a reference for the thumbnail generation to guide style, subject or background composition"
                    },
                    "referenceImage3": {
                        "title": "Reference Image 3 (Optional)",
                        "type": "string",
                        "description": "Upload an image to be used as a reference for the thumbnail generation to control style, character consistency, or composition"
                    },
                    "thumbnail_prompt": {
                        "title": "Thumbnail Description",
                        "minLength": 10,
                        "maxLength": 500,
                        "type": "string",
                        "description": "Describe the scene, tone, and emotions for the thumbnail (e.g., 'A vibrant, energetic scene with a shocked expression, high contrast colors')"
                    },
                    "noOfImages": {
                        "title": "Select number of thumbnails to generate",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Choose a number between 1 and 100",
                        "default": 2
                    },
                    "proxySettings": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your scraper.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
