What This Is
A fully automated faceless YouTube Shorts channel. The pipeline writes the script, records the voice, builds the video, and uploads it — with no manual steps in between.
NeuroByte is a psychology and brain facts channel. The niche is real, the content is real, and the channel is live. But the whole production stack — from topic selection to dual-platform upload — runs on a single batch command. What would normally take an hour of scripting, recording, and editing happens in about three minutes.
The Architecture
Four stages. One command. Nothing touched by hand.
01
Script
Claude API
02
Voice
ElevenLabs
03
Render
Remotion + ffmpeg
04
Upload
YouTube + TikTok APIs
- Stage 1 — Script. Claude generates a 40–50 second script optimised for YouTube Shorts CTR — a hook in the first sentence, a punchy delivery throughout. Title format is enforced: number-led, question, or "This Is Why" pattern. Max 60 characters. Tags and description generated in the same call.
- Stage 2 — Voice. ElevenLabs converts the script to audio and returns character-level timestamps for every word. The pipeline chunks these into 4-word subtitle groups with exact in/out times — so subtitles are synced to the actual speech, not just estimated.
- Stage 3 — Render. Remotion (React-based video renderer) builds the Short programmatically: animated Lottie visuals, synced subtitles, and the right total frame count calculated from the audio duration. ffmpeg extracts the thumbnail at the 3-second mark automatically.
- Stage 4 — Upload. YouTube Data API uploads the video, sets the thumbnail, and pins a comment. TikTok Open Platform API publishes the same video there via PKCE OAuth. Both happen in the same run.
The Part That Makes It Smart
Claude doesn't just write the next script — it reads what's already working before it does.
Every Monday, analytics.js pulls the last 30 days of YouTube Analytics data — views, watch time, average view percentage, subscribers gained — and scores each video by a weighted formula. The top 5 titles and most-used tags from those top performers get saved to a local JSON file.
The next time generate.js runs, it reads that file and injects the top titles and tags directly into Claude's prompt: "Write in a similar style to these titles. Use these tags." The model is learning from its own channel data, not guessing.
The analytics script also flags underperforming videos (<100 views), which optimize.js is designed to auto-retitle on a Sunday cadence — a future-state feature built into the architecture now.
A formatted HTML email report goes to my inbox every Monday: top 5, bottom 5, top tags, total views, likes, and subs gained.
Design Decisions
Small choices that keep the pipeline from producing the same video every day.
- Alternating visual styles. The pipeline rotates between a "brain" aesthetic and a "cyber" aesthetic on alternate days using a day-number modulo. Different Lottie animation sets, different visual mood — so 21 videos in a row don't all look identical.
- Duration contract. The render stage doesn't hardcode a frame count. It calculates total frames from the actual audio duration — 90-frame intro + content frames. Every video is exactly the right length, not padded or cut short.
- Dual-platform in one run. TikTok and YouTube are different APIs with different auth flows (PKCE for TikTok, standard OAuth for YouTube). Both are handled in the same upload script so the same video goes out simultaneously without manual steps.
- Title-rule enforcement. The prompt doesn't just ask for a good title — it specifies the exact format rules (number-led, question, or "This" opener, max 60 chars, no clickbait). The outputs are consistently formatted because the constraints are explicit.
Honest v1 Assessment
It works. The videos look automated. That's the next thing to fix.
The pipeline is real and it runs. 21 Shorts live on the channel, published without touching a single editing timeline. But the current visual style — Lottie animations on a dark background — is readable as AI-generated at a glance. That's a ceiling on the channel's growth that the automation alone can't solve.
The script quality and voice are solid. The bottleneck is video production. The plan is to raise that ceiling significantly in v2.
v2 Vision
Less automated-looking. Better tools. Potentially a different model for the editing layer entirely.
- Better video quality. The Lottie-on-dark aesthetic needs to evolve. v2 will explore stock footage integration, more cinematic Remotion compositions, and visual styles that don't signal "faceless automation channel" immediately.
- Outsourcing the editing layer. One model worth exploring: keep the AI pipeline for scripting, voice, and upload — but bring in a human editor (or a better-specialised AI video tool) for the render step. The architecture already separates concerns cleanly enough to swap Stage 3 without touching the rest.
- Scheduled runs. v1 runs on demand via a batch file. v2 will use Windows Task Scheduler for a daily 9AM pipeline run — no manual trigger needed.
- Auto-optimise underperformers. The analytics script already flags low-view videos.
optimize.jswill close the loop — automatically rewriting titles on underperforming Shorts based on what the top-performers look like. - Better niche targeting. As the analytics data builds up, the Claude prompt gets more precise. The goal is a model that generates scripts with measurably higher CTR because it's been trained on its own performance data for months.
Stack
Everything runs locally. No backend needed.
This is a pure Node.js pipeline. No server, no cloud functions, no infra to maintain. The heavy lifting — AI, TTS, video render, API uploads — is all handled by third-party services called from a single machine. The only infrastructure cost is the API calls.