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

AgentTube: an approval-first pipeline for running a YouTube channel from a local dashboard

🎬 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,466 stars1,011 forksJavaScriptMIT

At a glance

What is it?
AgentTube (darkzOGx/youtube-automation-agent) is a self-hosted Node.js tool that turns a channel brief into researched, narrated, rendered and scheduled YouTube videos, with human review gates and SQLite checkpoints at every stage. Its central design bet is that automation should fail closed rather than publish something unreviewed.
Who is it for?
Adopt AgentTube if you already run a channel, are comfortable with Node.js 18+ and API keys, and want a local dashboard that refuses to publish until quality, rights and review gates pass. Do not adopt it if you want a hosted service, if you have no budget for paid image or video providers, or if you expect the free Gemini tier to cover the whole pipeline without limits.
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 21 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 September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The channel operator problem AgentTube is aimed at

Running a YouTube channel is a sequence of small jobs that each have their own tooling: picking a topic, writing a script, recording narration, sourcing visuals, cutting a video, writing a title and description, choosing a thumbnail, scheduling, then reading analytics. AgentTube's premise is that one local process can hold that whole sequence, and that the operator supplies strategy rather than keystrokes. The README frames the loop as research topics, write scripts, generate narration and visuals, assemble videos, optimize metadata, review, schedule, publish, then learn from analytics and from what the audience says.

The intended user is a solo operator or small team that already understands YouTube and wants throughput, not a beginner looking for a hosted product. The README states that no coding is required for the guided path, and the walkthrough does test credentials and guide YouTube authorization. But installing it means running npm install and npm start on your own machine, and every provider key, media file and channel token stays on that machine. That is the trade: you keep control of credentials and data, and you accept the operational work that comes with it.

Strategy in, scheduled videos out: the Autonomous Channel Operator

The entry point is the Autonomous Channel Operator. According to the README, you give it an objective, an audience, content pillars, a cadence and guardrails, and it turns those into researched content plans and production runs. That is a different shape from a prompt-to-video script. The strategy object persists, and an operator run preserves its research and editorial plan, so Resume run continues unfinished plan items instead of researching and generating videos that are already done.

Provider choice is deliberately broad. The README lists Gemini, OpenAI, OpenRouter, Kimi, MiMo and GLM as text endpoints, plus any OpenAI-compatible endpoint, and for video it names Seedance, MiniMax H3, Gemini Omni Flash, Kling, Wan, or local FFmpeg. The free path is Gemini plus FFmpeg assembly. The paid path buys generated footage. Everything in between is a config decision, and the walkthrough is described as explaining each provider choice before testing it.

SQLite checkpoints and the Scene Repair Studio

The mechanism that holds the pipeline together is a local SQLite database. Every generation stage writes a checkpoint, the README states, so if a provider times out or the application restarts, the dashboard shows the saved-stage count and the first incomplete stage. You can resume from there, or deliberately pick an earlier stage and regenerate it along with everything after it. Saved files are validated before reuse and missing artifacts are regenerated.

The finer-grained version of the same idea is the scene manifest. Each production keeps a durable record of every scene's narration, visual prompt, timing, provider and task identity, asset origin, rights state, evidence links and revision history. Scene Repair Studio lives inside Review Studio and lets you edit one scene, reorder scenes, lock a scene that already works, upload a licensed replacement asset, or regenerate just that scene. This is the most concrete answer the project gives to the usual failure of generative pipelines, which is that a single bad ten seconds forces a full re-render.

The gates around repair are strict. Paid video regeneration shows the provider and the generated seconds and needs a separate confirmation. Uploaded assets need an explicit rights confirmation. Narration edits invalidate that scene's audio and factual review, so live narration has to be regenerated and any new factual claim reviewed against verified evidence before approval. You cannot quietly patch a scene and keep the old approval.

Getting it running: commands, config and the readiness gate

The README's quick start is four commands and a URL:

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

Then open http://localhost:3456. The walkthrough is the guided path added in v2.4.0 and is described as explaining each provider choice, testing credentials and guiding YouTube authorization. If you already know the stack, npm run setup is the shorter classic flow, and .env.example is documented as covering every setting.

Before switching on autonomous production, the dashboard has a Production readiness screen with a Run verified check button. The README describes what that check does: small live text and narration requests, verification of access to the connected YouTube channel, creation and decoding of a temporary MP4 containing audio and video, and validation of every queued upload's metadata. It does not create or upload a YouTube video, and temporary probe assets are deleted afterwards. Paid image and video probes sit behind separate opt-in checkboxes, so the default run does not spend on image or video generation. Results persist in SQLite with remediation steps, and 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 the last result is more than 24 hours old.

Where it stops: fail-closed publishing and the reconciliation case

The most interesting limitation is also a design choice. Publishing is fail-closed. If an upload may have reached YouTube but no video ID was returned, the README states that AgentTube requires channel reconciliation before another upload attempt. That is the right default for a channel you care about, and it is also a case where the tool will stop and wait for a human. Anyone expecting unattended 24/7 operation should read that sentence twice.

Narration has the same posture. AgentTube records the TTS provider, model, external task when available, generation time, cost evidence and failure reason for every scene, and the README describes narration as fail-closed. The supplied README text is truncated mid-sentence at that point, so the exact behaviour when narration is missing or simulated cannot be confirmed from this material.

The other constraint is economic. The free tier is real but partial: Gemini handles text, and FFmpeg assembles video locally. AI image generation can incur a larger provider charge, which is why its probe is opt-in, and generated video is billed by the second, which is why regeneration asks for confirmation. A channel that needs original footage on every upload is not running on free infrastructure.

DarkzSEO preflight and what the evidence layer actually stores

v2.10.0 adds an optional adapter layer that connects the pipeline to DarkzSEO, a separate Python project. The README is explicit that the two are not merged and that human review is not weakened. The adapter sends a canonical content package, not the private dashboard, through versioned GEO, AIO, AEO and web-search checks after metadata and provenance are assembled. It runs DarkzSEO through JSON-only stdin and stdout without a shell and without inherited API secrets. If Python is missing, or a call times out, or the schema drifts, the README says those conditions stay explicit and non-blocking.

Findings are persisted in SQLite with stable rule IDs, severity, engine and schema identity, fingerprints and operator decisions. A finding can be kept actionable or dismissed as a false positive with a reason, and that reason carries into matching future audits. Two other v2.10.0 pieces are named but described only briefly: a Controlled Growth Experiments Studio that rotates approved title and thumbnail arms, measures interval evidence, restores the control and requires a separate decision before adopting a winner, and an Outcome and ROI Studio that aligns the operator with a KPI, target window, budget and available revenue and cost evidence. The README says missing economics is not converted into false zeroes, which is a sensible stance but leaves the actual ROI maths undocumented here.

Installation is optional: DarkzSEO 1.4 or later into Python, or set DARKZSEO_PATH. When it is unavailable, AgentTube records the reason and the existing approval workflow keeps running.

How this differs from a hosted AI video tool, and where the maintenance sits

The obvious alternative is a hosted generator such as a browser-based AI video service: you type a prompt, it returns a clip, and you upload it yourself. The difference in approach is not quality, it is where state lives. A hosted tool owns the render queue, the asset library and the billing relationship, and it forgets your channel between sessions. AgentTube keeps a SQLite database on your machine containing checkpoints, scene manifests, rights states, audit findings and readiness results, and it holds your YouTube authorization locally. That is why it can resume a half-finished production and why it can refuse to re-upload after an ambiguous response. It is also why you own the backup, the disk and the upgrade path.

The licence is MIT, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. That is a permissive arrangement, and it also means no warranty and no support obligation from the author. This is a description of the licence text, not legal advice; if you are building a business on it, have someone qualified read the LICENSE file.

Maintenance cost is the part the README does not quantify. The release history shows v2.2.1, v2.3.0 and v2.4.0 all dated 2026-07-16, with v2.10.0 on master, so the project moves in dense bursts. Provider APIs change, and the project depends on many of them. The .env.example file is the single place that documents every setting, so treat it as the upgrade checklist rather than the README.

Editorial conclusion

Adopt AgentTube if you already run a channel, are comfortable with Node.js 18+ and API keys, and want a local dashboard that refuses to publish until quality, rights and review gates pass. Do not adopt it if you want a hosted service, if you have no budget for paid image or video providers, or if you expect the free Gemini tier to cover the whole pipeline without limits. Before activating autonomous production, run the dashboard's Production readiness check, then open .env.example and confirm every provider key, the DARKZSEO_PATH setting if you want discoverability audits, and the SQLite database location you are willing to keep on disk.

Official sources

  1. darkzOGx/youtube-automation-agent on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Community notes

Community notes