---
title: "Competitor video ad remade for your brand"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/a4bb185b-7af8-4bb0-a28a-b706e6a42120"
updated: "2026-11-09"
---

# Competitor video ad remade for your brand

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that turns a competitor’s video ad, your product photo and your website into a prompt for a 12-second ad of your own. Its Sora 2 render step stopped working when OpenAI removed Sora 2 in September 2026.

Competitor video ad remade for your brand is an n8n workflow in the Marketing \& SEO category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-09. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow takes a competitor’s video ad and works out how to make one like it for your brand. You send the ad, a photo of your product and your website through a form. Gemini 2.5 Pro breaks the ad into shots, and Firecrawl reads your site. Gemini then writes brand notes and a prompt for a 12-second vertical ad with no text on screen. The file’s last step sends that prompt and your photo to OpenAI’s Sora 2. OpenAI removed Sora 2 on 24 September 2026, so that step fails today. Twenty-five nodes run it.

### Who it suits

Brand marketers and agencies who study what works for rivals and want a draft of their own version quickly. It also suits anyone who wants an ad taken apart shot by shot. Skip it if you want a finished video with no n8n work. The render step needs rebuilding first.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Direct-to-consumer brands | Brand marketers | Send a rival’s best ad with a photo of their own product | A pet food brand sends a rival’s treat ad and gets a prompt built around its own bag. |
| Marketing agencies | Creative strategists | Read the shot breakdown before a pitch | A strategist brings the shot list of a client’s rival ad to the briefing. |
| Performance marketing | Media buyers | Remake rival ads that have run for months as prompts for test versions | A buyer turns three long-running rival ads into prompts to test. |
| Online retail | Shop owners | Send their own past ads to get prompts for new cuts | A shop sends its best clip from last season and gets a new prompt in the same rhythm. |

You need solid n8n for this one: three kinds of credential, and a replacement video step you build yourself. Its author puts setup at about 11 minutes, which leaves that step out.

### Where to use it

Any n8n that can reach Google’s Gemini API and Firecrawl will run the analysis and the writing. The video needs a service of your choice.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file. \`Edit Image\` needs GraphicsMagick, which n8n’s Docker image has
- A video model that is still offered: the prompt is written for a 12-second vertical clip
- Briefs and decks: the shot list and the brand notes read well on their own

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Plan the video step before you import it.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| Google AI Studio | A Gemini API key, used twice: in a Gemini credential and in a header named \`x-goog-api-key\` |
| Firecrawl | An account and its API key, for a Bearer Auth credential |
| A video service | One that is still offered, to take the place of the Sora 2 nodes |
| Your inputs | The rival ad as an MP4, a photo of your product and your website’s address |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add a `Google Gemini (PaLM) API` credential and select it in `gemini-2.5-pro`.
3. Add a Header Auth credential named `x-goog-api-key`, with the same key as its value, and select it in `analyze_video_ad`.
4. Add a Bearer Auth credential with your Firecrawl key. Select it in `fetch_sora2_prompting_guide` and `fetch_site_details`.
5. Replace the five Sora nodes after `Edit Image` with calls to your video service. The prompt is in `set_sora2_prompt_result`, and the photo is the file `data`.
6. Save, send a test through the form’s test address, then press Publish.

### How to use it

Open the form, attach the rival’s ad and one product photo, type your web address and send it. The form confirms at once while the run goes on. When it ends, open the run under Executions to read what each step wrote.

What to change for a different result

| To change | Where |
| --- | --- |
| Length | The 12-second rule in \`build\_sora2\_prompt\`, and the length your video step asks for |
| Frame | The width and height in \`Edit Image\`, 720 by 1280 in the file |
| Brand notes | The seven sections in \`build\_guidelines\_prompt\` |
| Shot list | The format in \`set\_ad\_analysis\_prompt\` |
| The ad’s rules | \`build\_sora2\_prompt\`, which asks for the exact product, no other products and no text on screen |

### Example

A coffee brand sends a rival’s clip of someone making iced coffee at home, a photo of its own cold brew bottle and its website.

What the run leaves behind

| Output | Node | What it holds |
| --- | --- | --- |
| Shot list | \`set\_ad\_analysis\_result\` | The rival clip’s style and message, then every cut with its timing, camera, sound and spoken line |
| Brand notes | \`write\_guidelines\` | Seven sections, from the brand’s essence to its ad angles |
| Video prompt | \`set\_sora2\_prompt\_result\` | The rival’s story retold with the cold brew bottle, paced for 12 seconds |

With a working video step, the photo and that prompt become the new clip. As imported, the run stops at `generate_sora2_video`.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Two paths start at the form. The long one handles the ad and the writing, the short one gets your photo ready, and they meet at `merge`. Run one test, then open each chain node to see the prompt it was sent and the text it wrote.

**For experts.** Gemini is called two ways here, and one input the prompt names never arrives.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`analyze\_video\_ad\` | A raw call to Gemini’s \`generateContent\`, the ad inline | Its own Header Auth credential, and a MIME type fixed to \`video/mp4\` |
| \`write\_guidelines\` | A Gemini chain on your site | Firecrawl’s page text never reaches it, only \`data.metadata.title\` |
| \`write\_sora2\_prompt\` | A Gemini chain on the shot list, the notes and the guide | Its prompt names a product image that only the video step receives |
| \`fetch\_sora2\_prompting\_guide\` | A Firecrawl scrape of OpenAI’s cookbook page | Runs on every submission, and a failed scrape leaves the guide empty |

### Good to know

The video step is retired, and two gaps in the prompts change what you get.

- Sora 2: OpenAI’s deprecations page, read on 2 November 2026, lists it as removed on 24 September 2026 with no replacement
- Brand notes from a title: add \`{{ $json.data.json.content }}\` under the title line in \`build\_guidelines\_prompt\` so Gemini reads the page
- Hands: the prompt asks for detailed hands on the product, then asks to show none. Keep one rule
- A stretched photo: \`Edit Image\` ignores the photo’s proportions, so crop it to 9:16 first
- Billing: Gemini bills the analysis and both chains, and Firecrawl counts two scrapes a run
- Open form: once the workflow is published, anyone with the form’s address can start a run on your keys
- Copying: change the idea, the words and the look enough to be your own, and check the advertising rules where you sell
- Credentials: the JSON holds none

## README

```markdown
# Competitor video ad remade for your brand

An n8n workflow. You send a competitor's video ad, a photo of your product and your brand's website through a form.
Gemini breaks the ad down shot by shot, Firecrawl reads your site, and Gemini writes brand notes and a prompt for a
12-second vertical ad with your product in it. The last step sends that prompt to OpenAI's Sora 2.

Read this first: OpenAI removed Sora 2 and its Videos API on 24 September 2026, so the five nodes that make the video
no longer work as imported. Everything before them still runs. See "The video step" below.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 25 nodes, one of them a sticky note that holds only the workflow's
  title. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The form's website field showed a real brand's address as its example. It now shows `https://www.example.com/`.
- Nothing else. The file has no Code node, and its expressions needed no repair.

## Before you start

- An n8n instance, on n8n Cloud or your own server. The `Edit Image` node needs GraphicsMagick on a server of your own,
  which n8n's Docker image already has.
- A Google AI Studio key for the Gemini API, with access to `gemini-2.5-pro`.
- A Firecrawl account and its API key.
- An OpenAI API key, only if you still want the original video nodes, or another video service (see below).
- The rival ad as an MP4 file, your product photo and your site's address.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add a `Google Gemini (PaLM) API` credential with your key, and select it in `gemini-2.5-pro`.
3. Add a Header Auth credential named `x-goog-api-key`, with the same key as its value. Select it in `analyze_video_ad`,
   which sends the ad straight to Google's API.
4. Add a Bearer Auth credential with your Firecrawl key. Select it in `fetch_sora2_prompting_guide` and
   `fetch_site_details`.
5. Decide on the video step (below). To keep the original nodes, add an OpenAI credential and select it in
   `generate_sora2_video`, `get_video_status` and `get_video`.
6. Save, open the form's test address and send an ad, a product photo and a web address.
7. Press Publish, then share the form's production address.

The form confirms at once, and the run goes on behind it. Open the run under Executions to read the shot breakdown, the
brand notes and the prompt, and to get the video when the last step works.

## How a run goes

1. `generate_video_trigger1` is the form, titled `Sora 2 Video Ad Form`, with three fields: `Ad Video File`,
   `Product Image` and `Brand Website URL`.
2. `convert_video_to_base_64` turns the ad into text. `set_ad_analysis_prompt` holds the instructions for a shot list, and
   `analyze_video_ad` sends both to `gemini-2.5-pro` in one request, marked as `video/mp4`.
3. `set_ad_analysis_result` keeps Gemini's answer: an overall style, the core message, then each shot with its timing,
   visuals, camera, lighting, dialogue, sound and on-screen text.
4. `fetch_sora2_prompting_guide` has Firecrawl read OpenAI's Sora 2 prompting guide from its cookbook, and
   `fetch_site_details` has it read your website. Both carry on if Firecrawl fails.
5. `build_guidelines_prompt` and `write_guidelines` turn the site into brand notes in seven sections, from the brand's
   essence to its advertising angles.
6. `build_sora2_prompt` and `write_sora2_prompt` combine the shot list, the brand notes and the guide into one prompt for
   a 12-second ad with no on-screen text, and `set_sora2_prompt_result` keeps it.
7. Beside that, `convert_image_to_base_64` reads your product photo. `merge` and `aggregate` put it and the prompt in one
   item, and `convert_base64_image_to_binary` and `Edit Image` turn the photo into a 720 by 1280 JPEG.
8. `generate_sora2_video` posts the prompt and the photo to OpenAI's `/v1/videos` with `sora-2`, 12 seconds, at the same size.
   `delay` waits 15 seconds, `get_video_status` asks again, and `check_status` loops until the status is `completed`.
   `get_video` then downloads the file.

`gemini-2.5-pro` is the model of both writing chains, and `analyze_video_ad` calls the same model by its address.

## The video step

The prompt the workflow writes is in `set_sora2_prompt_result`, and the resized photo leaves `Edit Image` as a file
named `data`. To get a video again, replace `generate_sora2_video`, `delay`, `get_video_status`, `check_status` and
`get_video` with nodes for a video model that is still offered and takes a prompt and a starting picture. Veo is one
option, through Google's Gemini API or a reseller such as Kie.ai. Check its accepted lengths and sizes: the prompt is
written for 12 seconds, and the photo is sized for a vertical frame.

## Change the look

- Length: the 12-second rule in `build_sora2_prompt`, and `seconds` in `generate_sora2_video`. Change both together.
- Frame: `size` in `generate_sora2_video` and the width and height in `Edit Image`.
- The brand notes: the seven sections in `build_guidelines_prompt`.
- The shot list: the format in `set_ad_analysis_prompt`.
- The ad's rules: the process and output rules in `build_sora2_prompt`, which ask for exact product looks, no other
  products and no text on screen.
- The form: the title and fields in `generate_video_trigger1`. If you rename a file field, change the node that reads it:
  `Ad_Video_File` in `convert_video_to_base_64` and `Product_Image` in `convert_image_to_base_64`.

## Good to know

- Sora 2: OpenAI's deprecations page, read on 2 November 2026, lists `sora-2` and the Videos API as removed on
  24 September 2026, with no replacement. As imported, `generate_sora2_video` fails, so the run stops there.
- The brand notes see only your site's title. `build_guidelines_prompt` inserts `$json.data.metadata.title`, not the page
  text Firecrawl returns in `$json.data.json.content`, so Gemini guesses the rest. Add the content expression under the
  title line to use the whole page.
- The prompt writer never sees your photo. `build_sora2_prompt` asks it to study the product image, but only text reaches
  that chain. The photo goes to the video model alone, as the starting picture.
- The prompt asks for detailed descriptions of hands holding the product, then ends by asking to avoid showing hands.
  Pick one and edit the other out if the results come back mixed.
- `Edit Image` resizes the photo without keeping its proportions. Crop it to 9:16 first, or the product
  comes out stretched.
- `analyze_video_ad` sends the ad inside a single request and labels it `video/mp4`. Use a short MP4, since Google limits
  the size of a request that carries a file inline.
- `Product Image` leaves Multiple Files at n8n's default, which is on. Send one photo: a second one gets a numbered name
  that `convert_image_to_base_64` does not read.
- `check_status` waits for `completed` only, so a failed video would be checked every 15 seconds without end.
- Each run costs Gemini calls for the analysis and two writing chains, and two Firecrawl scrapes, one of them the same
  cookbook page every time.
- Once the workflow is published, anyone with the form's address can start a run on your keys.
- The competitor's ad goes to Google, your website's address to Firecrawl. A remade ad can still copy the original too
  closely: change the idea, the words and the look enough to be your own, and check the rules on comparative and copied
  advertising where you sell.
```

## What is in it

2 files, 41 KB, downloaded as a zip.

```text
README.md  7 KB
workflow.json  34 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 23 steps, starting on a form
- AI: 2 steps call an AI model: write_guidelines and write_sora2_prompt
- Sign-ins: Signs in to: Google Gemini, Firecrawl and OpenAI
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 11 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/a4bb185b-7af8-4bb0-a28a-b706e6a42120)
- [Its page on Mindket](https://mindket.com/p/a4bb185b-7af8-4bb0-a28a-b706e6a42120)
