Field Notes · 7 MIN

How we automate video and social media pipelines with code

How we automate short videos and social posts with code: Remotion video, generated voiceover aligned to captions, carousels from data, human approval and a local scheduler.

By NactorePublished 30 Oct 2026All articles

You can automate most of a video and social pipeline with code: scripts become voiceover, voiceover timings drive animated scenes rendered with Remotion, carousels render from data files, and a scheduler posts each item on time. What you should not automate is taste and approval. Here is the pipeline we run for our own channels and what each part taught us.

Key takeaways
  • Remotion renders video from React code, so a scene can be keyed to the exact word the voiceover speaks.
  • A speech-to-text pass gives word timings for captions and catches slurred voiceover takes.
  • Carousels render from JSON files, so a copy change never means redrawing slides.
  • Every day's batch waits for a person's approval before anything is queued.
  • A small local queue sends each approved post at its slot through the scheduling tool's API.
  • Nactore is a technology and growth company that builds, ships, ranks and grows, and this pipeline is part of how we grow our own channels.

What can you automate in a video and social pipeline?

In a video and social pipeline you can automate rendering, voiceover, caption timing, carousel layout, media hosting and posting at scheduled times. You should keep the topic choice, the script, the visual direction and the final approval with people. Code makes each piece repeatable, and a review step decides what actually goes out.

StageWhat runs itHuman step
CopyA writing agent drafts the day's posts and scriptsFact check and edit
VoiceoverA text-to-speech model run locallyListen to the opening seconds
AlignmentSpeech-to-text word timingsNone
VideoA Remotion composition, one scene per sentenceReview stills, then the cut
CarouselsA renderer reading a JSON fileReview with the day's batch
PostingA local queue that sends at each slotApprove the day before it is queued

Each day lives in its own folder with its posts, scripts, scene files and rendered media. A review page shows the whole day, and nothing is queued until it is approved. We use the same pattern of an agent doing the work and a person approving it across the company, as described in running a company on AI agents.

How do you make a video from code?

You make a video from code by describing every scene as a React component and rendering the frames with Remotion. Our reel compositions take a props file per video: one scene per sentence of the script, with each chip, stamp or line drawing keyed to the moment a word is spoken. Changing a line means editing data and rendering again.

Remotion's documentation covers the model: a composition is a function of the frame number, so timing is exact and repeatable. Because scenes are data, a fact correction late in the day is a one-line change, not a re-edit on a timeline.

One practical snag cost us renders. Remotion's bundled headless Chrome crashed on our machines. Pointing the renderer at the headless browser that Playwright already installs fixed it, and every render now runs headless.

How do you generate and check AI voiceover?

We generate voiceover with an open-weight text-to-speech model run locally, then transcribe each chunk with Whisper to get word timings and catch bad takes. A take whose transcript does not match the script is regenerated. Each chunk is trimmed to its word boundaries, so stray breaths or laughs never reach the final cut.

The model is Qwen3-TTS with one of its built-in voices, and the transcription is Whisper. We tried cloning a real person's voice first. The clones sounded noisy and unlike the person, so we use a clean generic voice instead.

Three more lessons came from listening.

  • Write flowing sentences. Short, choppy fragments sound robotic when spoken. Scripts now run in longer, connected sentences.
  • Slow down. An early cut was too fast. We lowered the speed-up and added longer pauses at chapter breaks.
  • Cache every chunk. The operating system can stop a long GPU job, so the build saves finished chunks and retries only what failed.

How do scheduled posts go out?

Scheduled posts go out from a small local queue. Approved posts land in a pending folder with their time slot, and a job runs every five minutes, sends anything due through the scheduling tool's API, and moves it to sent or failed. Media is hosted on Cloudflare Pages, so every post points at a stable file URL.

We post through Buffer's API on its free plan, which refuses a few features: a first comment on LinkedIn, a custom video thumbnail, and a dedicated carousel type on Instagram. The call to action moves into the post body, and several images go out as one post. A post more than twelve hours late moves to failed instead of going out stale.

The queue runs on a machine that must be awake and online, so a daily check warns when any channel's queue is running low. Static hosting for the media follows the setup in running products on Cloudflare.

What stopped the content looking templated?

The content stopped looking templated when we stopped reusing one visual kit. Each video now gets its own palette, type and motion language chosen for its topic, every scene lands one idea a viewer can repeat, and social graphics stay flat with very little text. Reused templates were the first thing reviewers noticed.

The feedback that drove this was direct. A video that reused the previous video's background, font and grid was rejected as looking like a template. Research caveats shown on screen were cut, because a viewer does not need to see what we could not verify. Hard cuts between scenes became smooth transitions. And every video now ends by saying plainly what the viewer should do differently.

These are judgement calls, which is why approval stays human. The reasoning matches human-in-the-loop automation: automate the repeatable steps and keep a person on the decisions that carry your brand. For written content, the same logic runs through engineering-led content marketing.

Pro tip

Listen to the first ten seconds of every voiceover before you render the video. That is where stray sounds and wrong pacing hide, and it is the part viewers judge you on.

Frequently asked questions

Can Remotion render videos without a person at the keyboard?

Yes. We render from scripts with a props file per video. Remotion also documents server and cloud rendering for teams that need volume.

Do you need a paid scheduling plan to automate posting?

Not to start. Our free plan works with a local queue, at the cost of a few features such as a first comment on LinkedIn.

Why not let the pipeline publish without review?

Because taste is the scarce part. Code makes a reel cheap to produce, and a person decides whether it is worth posting.

Can you build a content pipeline like this for our brand?

Yes. We build the pipeline and the review step around your brand. See our work page for the kind of systems we ship.

Automate the work, keep the judgement

A video and social pipeline built in code makes production cheap and repeatable: voiceover, captions, scenes, carousels and posting all run from files. What it cannot do is decide what is worth saying, which is why every batch still waits for a person. Nactore is a technology and growth company, one partner that builds, ships, ranks and grows, measured on your growth.

Want a content pipeline that ships every day? Book a free 30-minute call and we will sketch it with you.

Want to apply this to your business?

Book a free 30-minute call. We will tell you what we would do first.