AILAB
Automated

A video channel that ran itself. Once a day, an n8n workflow asked Gemini for an idea, generated the video with Veo, wrote the caption and hashtags and published it across several networks, without me touching anything.

Role
Design and build
Core
n8n · Gemini · Veo 3.1
Output
8 s vertical video
Status
Wrapped up

AILAB was my way into generative AI. In late 2025 video models were starting to produce very realistic results, and I asked myself: can you build a channel that runs on its own, from the idea to the post?

Why I built it

I didn’t want to be a content creator. I wanted to understand how the pieces chain together: one model that writes, another that generates video, each network’s API and something to orchestrate it all without supervision.

n8n let me build it as a node diagram, but the real work was in the details: formats that don’t fit, responses that need cleaning before being passed to the next step, waiting while the video renders.

The pipeline

Every run went through the same chain, unsupervised.

The steps light up in the workflow's real order. You can also open them one by one.

Screenshot of the n8n workflow: daily trigger, Google Sheets read, idea generated with Gemini, video with Veo, caption, sheet log and publishing to YouTube and the other networks
The workflow in n8nOn top, the idea and the video; below, the caption. Both branches meet before publishing.

Automating generation is the easy part. The hard part is making it not show: batch-generated content gives itself away fast if it always follows the same pattern.

The repetition problem

HTTP Request Video Idea · prompt
**MEMORIA EXTERNA (STRICTLY FORBIDDEN TO REPEAT):**
The following list contains the subjects and locations of the last 10 successful video prompts you generated. You must generate a new prompt that **DOES NOT repeat the main SUBJECT or the main LOCATION from this list.** **Previous Prompts List:**

{{ $json.previous_prompts_list }}

A spreadsheet as memory

Every published video is logged in Google Sheets. Before generating the next one, the workflow reads the last ten and passes them to the model as a list of forbidden subjects and locations.

Published results

Four videos generated and posted by the pipeline, exactly as they went out on the channel. Tap one to watch it with its caption.

Why I stopped

Mainly because of the cost: my free credits ran out. And also because I could see the videos weren't getting much reach.

What I took away

Beyond the channel itself, the project left three lessons I still apply.

Integration is the real work
Calling a generative API is a ten-minute exercise. The hard part is chaining several of them, each with its own formats, limits and failure modes, and having the whole thing hold up while running unattended.
An autonomous system needs memory
A stateless workflow repeats itself. As soon as the system has to decide on its own, it needs to know what it did before. In my case a spreadsheet was enough, but without it the channel wouldn’t have worked.
Automating forces you to define the criteria
Publishing by hand, you decide as you go. Automating it means writing down explicitly what counts as publishable, and that forces a much better understanding of the problem than doing it manually.

Where it published

The same video went out adapted to each network, each with its own format, length and API.