Model or dataset
darkzOGx/youtube-automation-agent avatar
darkzOGx/youtube-automation-agent

AgentTube (youtube-automation-agent): a self-hosted AI agent that runs a YouTube channel end to end

🎬 Fully automated YouTube channel management with AI agents. Creates, optimizes & publishes videos 24/7. Works with FREE Gemini API or OpenAI. No coding required!

3,980 stars1,223 forksJavaScriptMIT

At a glance

What is it?
AgentTube, the Node.js project behind darkzOGx/youtube-automation-agent, wires research, scripting, narration, video assembly, metadata and publishing into an approval-first pipeline. It is free to run with a Gemini key and a local slideshow renderer, but the autonomous mode is gated behind a readiness check that can stop production.
Who is it for?
Adopt AgentTube if you already run a channel and want the research, scripting, narration and metadata stages batched behind a human review gate, and you are comfortable with Node 18+, a YouTube OAuth client and a Python sidecar if you want the DarkzSEO audits. Skip it if you want a hosted service with no credentials to manage, or if you expect unattended publishing on day one: the readiness gate and the fail-closed publishing path are designed to stop that.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Who AgentTube is built for, and who it is not

AgentTube targets one operator running one or a few channels who is willing to host the thing. The README describes it as "the open-source AI agent that runs a YouTube channel end to end", and the pipeline it names is long: research topics, write scripts, generate narration and visuals, assemble videos, optimize metadata, review, schedule, publish, then learn from analytics and audience comments. That is a producer's workflow, not a viewer's.

The self-hosted framing is explicit. Credentials, media and channel data stay on your machine, which means the YouTube OAuth client, the provider API keys and the generated assets are yours to store and rotate. The trade-off is that nothing is managed for you: SQLite files under the repository hold job state, and the dashboard on port 3456 is a local Express app.

It is the wrong tool for someone who wants a SaaS dashboard and no terminal. It is also wrong for anyone who wants a single-purpose script that uploads a folder of finished MP4s. AgentTube assumes it owns the whole chain, from a topic idea to a scheduled upload, and every stage in between writes state you are expected to inspect.

The pipeline stages and the SQLite checkpoints behind them

The repository splits the work across named agents in `agents/`, each with its own npm script: content-strategy-agent, script-writer-agent, thumbnail-designer-agent, seo-optimizer-agent, production-management-agent, publishing-scheduling-agent and analytics-optimization-agent. You can run any of them directly, for example `npm run agent:script`, which is useful when you want to see one stage's output before trusting the chain.

The mechanism that holds the chain together is checkpointing. Every generation stage writes a local SQLite checkpoint, and if a provider times out or the app restarts, the dashboard shows the saved-stage count and the first incomplete stage. Resume continues from there, or you can pick an earlier stage to regenerate it and everything after it. Saved files are validated before reuse, and missing artifacts are regenerated automatically.

Publishing is deliberately stricter than generation. The README states that publishing is fail-closed: if an upload may have reached YouTube but no video ID came back, AgentTube requires channel reconciliation before another upload attempt. That is the correct default for a system that can create duplicate public videos, and it also means a half-finished upload is a manual chore, not a retry button.

The scene manifest is the second durability layer. Each production keeps narration, visual prompt, timing, provider and task identity, asset origin, rights state, evidence links and revision history per scene. Scene Repair Studio inside Review Studio lets you edit, reorder, lock, replace or regenerate a single scene. Regenerating a paid video scene shows the provider and generated seconds and asks for separate confirmation, and uploaded replacement assets require an explicit rights confirmation.

Installing AgentTube and getting a first run to the dashboard

Node 18 or newer is required, per the `engines` field in package.json. Clone the repository, install dependencies, then run the guided walkthrough rather than the classic setup. The walkthrough explains each provider choice, tests credentials and guides YouTube authorization.

bash
git clone https://github.com/darkzOGx/youtube-automation-agent.git
cd youtube-automation-agent
npm install
npm run walkthrough
npm start

After `npm start`, open `http://localhost:3456`. If you already know which providers you want, `npm run setup` offers a shorter classic flow, and `.env.example` documents every setting.

Configuration is environment-based. Copy `.env.example` to `.env` and uncomment exactly one text provider key. The file keeps placeholder values commented out on purpose.

bash
# .env, pick one text provider
GEMINI_API_KEY=your-gemini-api-key-here
# OPENAI_API_KEY=your-openai-api-key-here
# OPENROUTER_API_KEY=your-openrouter-api-key-here

Video generation is optional and defaults to a local slideshow, which is the no-cost path. To keep it local, leave the video block alone or set the provider explicitly.

bash
VIDEO_PROVIDER=slideshow
VIDEO_RESOLUTION=720p
VIDEO_ASPECT_RATIO=16:9

Before you let it generate anything unattended, open Production readiness in the dashboard and choose Run verified check. It makes small live text and narration requests, verifies access to the connected channel, creates and decodes a temporary MP4 with audio and video, and validates queued upload metadata. It never creates or uploads a YouTube video, and the temporary probe assets are deleted afterwards. The paid image and video probes are separate opt-in checkboxes, so the default check does not spend money on image or video generation.

The readiness gate is the real limitation

A recorded blocking failure stops autonomous generation and publishing until a later run passes. Manual work stays available when readiness has never been checked, or when the last result is older than 24 hours. That 24-hour window is the sharpest constraint in the project: an operator who checks readiness on Monday and returns on Wednesday is back to an unchecked state, and the dashboard will say so.

The gate is also only as good as its probes. The README notes that without the paid image checkbox, image configuration is reported as verified, skipped, or using the built-in gradient fallback, and no paid image request is made. So a green readiness run does not prove your image provider works, only that the fallback path is intact. Video behaves the same way: the paid video probe is opt-in, and when enabled it creates the provider's shortest supported test clip, records the external task and model, downloads and decodes the MP4, then removes the temporary asset. It never silently tries a second paid provider.

Narration is fail-closed too. AgentTube records the TTS provider, model, external task, generation time, cost evidence and failure reason for every scene, and the truncated README text ends mid-sentence on what happens when narration is missing or simulated. Treat that as a documented area to read in full in the repository rather than something this review can confirm.

The bigger limitation is conceptual. Nothing here removes the need for a human who understands the niche. The approval-first design means the agent proposes and you decide, and the Growth Experiments Studio only rotates approved title and thumbnail arms, measures interval evidence, restores the control, and requires a separate decision before adopting a winner. If you wanted a system that finds what works on its own, this is not it.

DarkzSEO is a separate Python install, not a bundled feature

Version 2.10.0 added a discoverability adapter layer that sends a canonical content package, not the private dashboard, through GEO, AIO, AEO and web-search checks after metadata and provenance are assembled. Findings persist with stable rule IDs, severity, engine and schema identity, fingerprints and operator decisions, so a dismissed false positive carries its reason into matching future audits.

The adapter boundary is deliberately narrow: DarkzSEO is invoked through JSON-only stdin and stdout, without a shell and without inherited API secrets. Missing Python, timeouts and schema drift stay explicit and non-blocking. That is a sensible isolation choice, and it also means you are running two systems, one of them in another language, with a version contract between them.

DarkzSEO is optional. Install DarkzSEO 1.4 or later into Python, or set `DARKZSEO_PATH`. When it is unavailable, AgentTube records the reason and keeps the existing approval workflow operational. If you never install it, the SEO stage still runs; you just lose the external audit evidence. The README does not document what happens when the installed DarkzSEO version is newer than the schema the adapter expects, beyond calling schema drift non-blocking.

How AgentTube differs from a general workflow builder

The obvious alternative is a general automation platform such as n8n, where you wire an LLM node, a TTS node, a rendering node and a YouTube upload node yourself. The difference is not capability, it is where the domain knowledge lives. In n8n you own the graph and every retry rule; AgentTube ships the graph already assembled, with the stage names, the SQLite checkpoints and the approval gates baked in.

That cuts both ways. AgentTube's opinionated stages mean you inherit its idea of what a production is: a scene manifest with rights state, a narration record with cost evidence, a metadata package that goes through SEO checks. If your process does not look like that, you will be fighting the schema. With a workflow builder you would model your own process and carry the maintenance yourself.

A second alternative is the manual stack many channels already use: a script tool, a stock or generated voice, an editor, and YouTube Studio's own scheduler. That path costs human hours per video and scales badly, but it has no readiness gate, no OAuth client to rotate, and no Python sidecar. AgentTube makes sense precisely when the per-video human hours are the bottleneck and you accept operational work in exchange.

Licence, upgrade cost and what to watch between releases

The project is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are included. That is a permissive licence, but it governs the code only. Your Gemini, OpenAI, Replicate, MiniMax, Kling, DashScope or ElevenLabs usage is billed by those providers under their own terms, and the generated media carries whatever rights those providers grant. The repository tracks rights state per scene in the manifest, which suggests the authors expect you to keep that record. This is not legal advice; if you monetize a channel built this way, read the provider terms yourself.

Upgrade cost is real but bounded. The project is not archived and the last push was on 2026-08-25, so work is recent, though the README's own release history shows how fast the surface moves: v2.2.1, v2.3.0 and v2.4.0 all landed on 2026-07-16, and the README documents v2.10.0 on master while package.json still reads 2.10.0. Version numbers in the README, the changelog and package.json are the first thing to reconcile before you upgrade.

The dependency list is the second. It pulls in `googleapis`, `openai`, `replicate`, `playwright`, `sharp`, `sqlite3` and the Microsoft speech SDK, with `ffmpeg-static` as an optional dependency. Playwright and sharp in particular are heavy native installs, and ffmpeg-static being optional means environments without it need their own FFmpeg. Plan upgrades as a dependency-and-schema exercise, not a one-line pull.

Editorial conclusion

Adopt AgentTube if you already run a channel and want the research, scripting, narration and metadata stages batched behind a human review gate, and you are comfortable with Node 18+, a YouTube OAuth client and a Python sidecar if you want the DarkzSEO audits. Skip it if you want a hosted service with no credentials to manage, or if you expect unattended publishing on day one: the readiness gate and the fail-closed publishing path are designed to stop that. Verify first that `npm run walkthrough` completes against your own Gemini or OpenAI key, that the Production readiness check passes on your connected channel, and that your chosen video provider is one you are willing to pay for, since the paid probes are opt-in checkboxes.

Frequently asked questions

Can you actually make money from YouTube automation?

The repository does not make any revenue claim. It ships an Outcome & ROI Studio that asks the operator to align a measurable KPI, target window, budget and available revenue or cost evidence, and the release notes say it avoids converting missing economics into false zeroes. Whether a channel earns anything depends on the channel, not on the tool.

Is YouTube automation still worth it in 2026?

The project takes no position on that. What it does offer is an approval-first workflow: nothing is scheduled until quality, rights and human-review gates pass by default, and autonomous generation stops after a recorded blocking readiness failure. That design assumes a human still decides what gets published.

Is YouTube automation real or fake?

AgentTube is a real MIT-licensed Node.js repository: it has a working install path, a local dashboard on port 3456, named agents in `agents/`, and SQLite-backed job state. What it does not do is publish on its own without your credentials and a passing readiness check.

How to get 10,000 views on YouTube for free?

The README does not document a free path to a view count. It does document a no-cost configuration: the local slideshow is the default video renderer, and the free Gemini tier is supported as a text provider, so the tooling itself can run without paid video generation.

Official sources

  1. darkzOGx/youtube-automation-agent on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/darkzogx-youtube-automation-agent.svg)](https://hysenlabs.com/projects/darkzogx-youtube-automation-agent)