TL;DR
- The pipeline runs in 7 stages, from Reddit scraping to YouTube upload and cleanup.
- A used-post-ID database table prevents posting the same story twice.
- A commenter found the subtitles are phrase-timed, not word-timed, despite WhisperX alignment.
- The script still arrives by webhook, so AI script generation is the obvious next upgrade.
h/t the original builder who shared the full workflow on r/n8n.
Why This Build Is Getting Attention
Faceless short-form channels built on Reddit stories are everywhere, but most creators still stitch them together by hand: copy the post, record a voiceover, drag in gameplay footage, time the captions, upload. One builder in the n8n community automated nearly the whole chain and shared the full workflow publicly. Below: each of the 7 stages, the bugs other builders spotted, and three realistic ways to make money with a setup like this.
Because the author published the workflow JSON openly and the community has already stress-tested it in the comments, you can start from a working skeleton instead of a blank canvas.
What the Author Built
According to the author, the workflow takes Reddit posts and turns them into finished videos with voiceover, background footage, music, and burned-in subtitles, then uploads them to YouTube. He reorganized the n8n canvas into 7 clearly separated stages, which makes it far easier to debug and extend.
The 7 stages at a glance
| Stage | What happens | Key tools |
|---|---|---|
| 1. Collect posts | Loops through a list of subreddits and fetches posts, with a Wait node between requests | n8n Split, Loop, Wait |
| 2. Pick unused posts | Aggregates posts, checks a database of used post IDs, filters repeats, writes the rest to Markdown | Database table |
| 3. Voice the script | Webhook receives a script, splits it into lines, sends each to TTS, decodes and saves audio | Inworld TTS |
| 4. Merge and transcribe | Merges audio chunks into one track, then generates word-level timestamps | FFmpeg, WhisperX |
| 5. Render the video | Randomly selects background clips, builds an FFmpeg concat file, renders base video | FFmpeg |
| 6. Music and subtitles | Downloads music, builds ASS subtitles from word timings, burns subs, mixes music | FFmpeg, ASS format |
| 7. Publish and clean up | Validates SEO metadata, uploads to YouTube, marks post ID as used, deletes temp files | YouTube upload |
The details that make it production-grade
Two small choices separate this from a toy demo. First, the Wait node between Reddit requests keeps the scraper from hammering the source. Second, the used-post-ID table prevents duplicates. One commenter admitted this is the part they always skip, and then they end up posting the same clip twice.
The cleanup step in stage 7 also matters more than it looks. Video pipelines generate a lot of intermediate audio and video files, and deleting them after each run keeps your server from quietly filling up.
What the Community Found
The comment thread is where the real value is, because builders actually opened the workflow and tested it.
Subtitles aren't truly word-level. One commenter noted that while WhisperX aligns individual words, the subtitle-building step iterates over phrase groups and emits one subtitle line per segment. The result: captions are phrase-timed, not word-timed. If you want active-word highlighting, build the subtitle events from the aligned words directly.
Long pauses leave captions hanging. The current logic keeps the previous phrase on screen until 0.15 seconds before the next one starts. In a sentence with a long pause, stale text lingers. Test this before you scale.
Use karaoke tags and fewer words per event. Another commenter suggested writing ASS subtitles with karaoke tags in centiseconds, for example {\k45}word {\k30}next, grouping 2-4 words per event so captions don't flicker on Shorts.
Encode once, not twice. That commenter also recommended burning subtitles and mixing music in a single FFmpeg pass using a filter graph: apply the ASS subtitle filter to the video, lower the music volume (they used 0.15), and mix it with the voice track using amix. Fewer encodes mean faster renders and less quality loss.
The author's own admitted limitation
The script currently enters the workflow through a webhook instead of being generated inside the pipeline. Stage 2 picks the posts, but something outside this workflow turns them into narration scripts. Closing that gap, for example with an LLM step that rewrites the post into a tight script, is the most obvious upgrade.
Where the Money Actually Comes From
The author didn't share any revenue, view counts, or channel results, so treat these as possible paths, not proven outcomes.
- Run your own faceless channel. Check YouTube's current policies on reused and repetitive content first, because mass-produced, lightly edited videos can run into trouble. Also review Reddit's terms and consider the original posters' rights.
- Sell the build as a done-for-you service. Many creators want an automated pipeline but can't wire up FFmpeg, WhisperX, and TTS themselves. You're paid for delivery, not views.
- Productize an improved version. Once you've fixed the subtitle timing, added in-pipeline script generation, and merged the encodes, you have a meaningfully better template than the public one.
Realistic Caveats
- This is a hard build. You'll need to be comfortable with self-hosting, FFmpeg command lines, and Python-based tools like WhisperX.
- Costs aren't documented. The author didn't share hosting, TTS, or API costs. Check current pricing for Inworld TTS and any services you use.
- Platform risk is real. Both YouTube and Reddit set the rules.
- Automation doesn't create quality. Story selection, script tightness, and visual style still decide whether people watch.
How to Do It
- Set up n8n with server access where FFmpeg and WhisperX can run alongside n8n (usually self-hosting).
- Import the author's public workflow and study each of the 7 stages before running anything.
- Create the used-post-ID table first. This is what prevents duplicate uploads.
- Pick 2-3 subreddits and test stages 1-2 only. Confirm posts are fetched, filtered, and written to Markdown correctly.
- Add script generation inside the pipeline instead of the external webhook, and edit for originality.
- Configure TTS and test audio. Confirm line-by-line audio merges cleanly in stage 4.
- Fix the subtitles. Build ASS events from WhisperX's aligned words, use karaoke tags, group 2-4 words per event, and test a sentence with a long pause.
- Merge the final encode into a single FFmpeg pass.
- Upload privately first and verify videos fit YouTube's current content policies.
- Decide your business model and track what actually brings in money.
Originally published on SoloAgentFlow.
Top comments (0)