Wout Belmans
← All writing
case study20 Apr 2026 · 9 min read

How I turn one YouTube video into 14 auto-posted shorts (full architecture)

The exact system behind my content engine: Airtable, Opus.pro, Google Drive and Buffer, wired together with three small n8n flows.

This is the system I run for short-form content. Drop one long video into a table, and over the next days it gets clipped, captioned, saved, and posted to Instagram Reels and TikTok. Twice a day, without me touching anything. Here is the full setup, honestly, including the parts that took debugging.

The stack

  • Airtable: two tables. Concepts holds source videos, Content holds finished clips. Status fields drive everything.
  • Opus.pro: does the actual AI clipping and captioning.
  • Google Drive: a backup copy of every clip.
  • Buffer: publishes to Instagram and TikTok.
  • n8n: three small workflows that glue it together.

Flow 1: intake

A schedule (or a manual click) searches Concepts for rows with status Todo. For each one, it first flips the status to Processed, before anything slow happens, so a crash can never cause the same video to be clipped twice. Then it sends the video URL to Opus with clip settings (max 60 seconds, karaoke-style captions) and a webhook callback URL.

Flow 2: receive and save

Opus takes several minutes, so nothing waits. When it finishes, it calls my webhook with the project ID. Flow 2 answers 200 right away, then fetches the finished clips, splits the list into single items, keeps the best 14, downloads each video, uploads it to Drive, pulls a title suffix from Airtable (my channel credit), and creates one row per clip in Content with status Ready to Post.

The thing that cost me an evening: the project ID in the Opus callback lives at body.projectId, not at the top level. If a webhook workflow mysteriously does nothing, always open the run and look at the actual shape of the payload first.

Flow 3: publish

Two schedule triggers, 3 PM and 8 PM. Each run: search Content for Ready to Post, shuffle, pick one at random, post it as a Reel and a TikTok through Buffer, then flip that row to Posted.

The random pick matters more than it looks. Posting in creation order means your feed publishes ten clips from the same episode in a row. Shuffling gives natural variety with zero extra logic.

Why it keeps running

  • Statuses are the memory. The n8n workflows stay simple, Airtable knows what is done.
  • Every flow owns one step, so debugging starts in the right place by definition.
  • Manual override is a status change. Want to repost a clip that did well? Flip it back to Ready to Post. Want to pause one? Clear its status. No n8n knowledge needed, which means a VA can run it.

Run it yourself

I sell this exact system as a template: the workflow file plus a setup guide that walks through every credential, placeholder and webhook, written for people who have never touched n8n. You will find it at resources.woutbelmans.com. Or if you would rather have it built and running for you, email me.