# Seven free AI agents that build a YouTube channel — and the one that waits on you

There is a repo on GitHub called youtube-automation-agent. It has 3,309 stars, an MIT licence, and seven agents that between them do the whole job of running a YouTube channel: pick the topic, write the script, draw the thumbnails, write the title and tags, build the video, upload it, and read the result back into tomorrow's pick.

It genuinely uploads. That is worth saying first, because most tools in this category stop at a file on your disk and let you infer the rest. This one builds a real YouTube v3 client, authenticates with real OAuth, and calls videos.insert. I read the code before writing any of this.

The seven

agentwhat it does for you
content-strategyreads trends and picks what you should make
script-writerwrites the script, hook first
thumbnail-designerbuilds three thumbnail variants
seo-optimizerwrites the title, description and tags
production-managementassembles the video — voice, images, render
publishing-schedulingsigns in, uploads, schedules the next
analytics-optimizationreads how it did and proposes what's next

That last row is the one that matters. Six of the seven run in a line. The seventh closes the loop — it compares the last upload against your channel's own baseline and writes recommendations back toward the agent that picks topics. A generator makes you a video. This is trying to make next week's better than this week's.

Three things the README will not tell you

There are seven agents, not eight. The README's own "How It Works" table lists eight stages. The eighth, Discoverability, is not in this repository — it shells out to a separate Python package you install yourself. ls agents/ returns seven files. If you see someone say eight, they read the table instead of the directory.

It does not post unattended, and that is the good news. The scheduling is real: node-cron, an npm run scheduler script, and a schedules/daily-automation.js that registers jobs across the day. But publishing is gated. The publish path throws rather than proceed when a factual claim is unsupported, uploads default to private, and the analytics agent's recommendations carry autoApply: false and sit pending until a human approves them.

That is not a limitation to work around. The genuine risk with this class of tool is that it posts AI slop under your name while you sleep, and this one structurally cannot. It also refuses to upload a placeholder — if the render failed, it throws instead of putting a broken file on your channel.

Free to download is not free to run, quite. The code is MIT and the YouTube Data API is free. A genuinely zero-cost path exists: a free-tier text model, free-tier text-to-speech, and local slideshow rendering, which is the default. But AI *image* generation needs paid-tier access, and every video provider except slideshow bills per clip. On the free path you get a real video with real narration and rendered slides — not AI-generated imagery.

The install, in full

git clone https://github.com/darkzOGx/youtube-automation-agent
cd youtube-automation-agent
npm install
npm run walkthrough    # guided setup
npm start              # one pass
npm run scheduler      # unattended, via node-cron


Node 18 or newer — the repo declares >=18.0.0 in package.json. You can also run a single
agent instead of the whole loop, which is the safest way to watch one stage without letting it
near your channel:

npm run agent:strategy    # or agent:script, agent:thumbnail, agent:seo,
                          # agent:production, agent:publishing, agent:analytics


Repo: <https://github.com/darkzOGx/youtube-automation-agent>

What actually stops people

Not the install. That is four commands and Node 18.

It is the YouTube Data API OAuth credentials. You create them yourself in Google Cloud, and no guide can do it for you because it has to happen inside your own account. That is the step where people quit, and it is worth knowing before you start rather than halfway through.

One thing about the repository itself

The README's headline is:

# AgentTube - ECGHuNZSECqTXabaLjkVrTEnguiNZLkKF1qi8oBGpump


That trailing string is a Solana pump.fun memecoin contract address. The maintainer has said publicly that he did not deploy it but has claimed the creator fees and now treats it as the project's community token.

This does not affect the code, which is MIT and works as described. But you should not meet a coin address in a README by surprise and wonder what you just installed. You need the token for nothing. Clone the repo, ignore the headline.

The checker

The kit includes channel_check.py. Point it at your own clone and it prints the seven agents with what each does, the Node version required, whether the unattended scheduling is really wired up in your copy, and exactly which keys are required versus optional. It reads only — it writes nothing, installs nothing, and sends nothing.

It reads *your* clone rather than repeating what I saw, so it keeps telling the truth as the repo changes.

Comment CHANNEL and I'll send you the setup.

Enter your email to read the full how-to

Confirm via the email link to unlock this and every future SharpenDaily how-to. Free.

No spam. Unsubscribe anytime.