HomeContent Pipeline

Content
Pipeline

A topic goes in, a finished video goes live — 5 AI services, one pipeline.

1/5OpenClaw · Autonomous Agent
1ScriptOpenClaw
2VoiceElevenLabs
3AvatarAvatar Engine
4ComposeRemotion
Live
5PublishYouTube API
40+
Videos produced
5
AI services
3
Avatar engines
06:00UTC
Daily publish run

Five stages

How a video gets made

Click a stage to jump to it, or scroll through all five.

1/ 5

OpenClaw

24/7 Agent RuntimeAutonomous Agent

Script Generation

A Claude-based OpenClaw agent runs around the clock, reading RSS feeds and building context in the background. By the time a video is due it already knows the topic, so it writes a structured script with timing markers instead of starting cold.

The scenes a short's script is made ofshorts/src/schema.tslines 96–108
scenes: z.object({
  hook: z.object({
    lines: z.array(z.string()).min(1).max(4),
    accentLineIndex: z.number(),
  }),
  body: z.object({
    lines: z.array(z.string()).min(1).max(5),
  }),
  reveal: z.object({
    headline: z.string(),
    tagline: z.string(),
  }),
}),

2/ 5

ElevenLabs

Text-to-SpeechVoice Synthesis

Voice Synthesis

ElevenLabs turns each scene of a script into an MP3 with the same speaker and tone across every video, in multiple languages from one setup. Voice config, pacing, and output format are pinned, so the channel sounds like one person on every episode.

pipeline_voice.mp3Audio track
pipeline_voice.mp3ElevenLabs0:00 / 0:00
"Every part of this clip — the script, the voice, the avatar — came out of a single pipeline I built."
The voice settings sent with every scenegenerate-voiceover.tslines 92–100
body: JSON.stringify({
  text: scene.text,
  model_id: "eleven_multilingual_v2",
  voice_settings: {
    stability: 0.5,
    similarity_boost: 0.75,
    style: 0.3,
  },
}),

3/ 5

Avatar Engine

Lip-Sync VideoVisual Generation

Avatar Generation

One photo is enough: the model reads the facial structure and drives the mouth from whatever the engine takes — an audio track, a driving video, or a script — to produce a talking-head video. Which engine runs depends on the job — open-source models for local batch work, cloud APIs when the output needs production quality.

Three avatar enginesVideo track
Reference photo
Audio track
Local GPU
Head motion + lip sync
Input
1 photo + audio
Output
Head motion + lip sync
How it works
Audio-driven animation — the audio drives head and mouth movement. Runs on your own GPU, no cloud service needed.

4/ 5

Remotion

React RenderingVideo Compositing

Remotion Studio

Toggle layers to see how the composition builds up. Switch templates to see different video formats.

CompositionVideo track
Remotion Studio
Layers
Templates
00:00:32
DID YOU KNOW?
AI produces 40+ videos autonomously
@luccafaust
Follow for more
EP. 12
Timeline
Hook
Avatar
CTA
Outro
Avatar Video
Overlays
Lower Third
Intro / Outro
Audio Track
Ready
React 18 + Remotion 41920×1080 · 30fps5 layers active
Video as React components: a composition entryshorts/src/Root.tsxlines 38–40, 57–66
const WIDTH = 1080;
const HEIGHT = 1920;
const FPS = 30;
// …
      <Composition
        id="TechGold"
        component={TechGold}
        durationInFrames={TECHGOLD_TOTAL_FRAMES}
        fps={FPS}
        width={WIDTH}
        height={HEIGHT}
        schema={TechGoldSchema}
        defaultProps={techGoldData}
      />

5/ 5

YouTube API

Auto-UploadDistribution

Distribution

When the render finishes, the pipeline hands the file to the YouTube Data API with a thumbnail, SEO metadata, and a scheduled publish time — all pulled from the video's entry in the content planner. View velocity, CTR, and watch-time come back through the Analytics API and feed the script agent for the next episode.

UploadPublish marker
The metadata that goes out with the filevideos/scripts/youtube-upload.tslines 107–110
const metadata = JSON.stringify({
  snippet: { title, description, tags, categoryId: "28" },
  status: { privacyStatus: privacy, selfDeclaredMadeForKids: false },
});

The pipeline end to end

  1. 1Script
  2. 2Voice
  3. 3Avatar
  4. 4Compose
  5. 5Publish

Five AI services chained into one pipeline: Claude writes the script, ElevenLabs voices it, an avatar engine lip-syncs the video, Remotion composites it as React components, and the YouTube API uploads it.

40+ videos in, the lesson is that video production is mostly a pipeline problem — once each stage is a composable step, more videos is config, not hours.

Why the pieces are what they are

  • Compose

    Remotion as the editor

    The videos are React code, so I can version them and re-render the whole batch by changing a prop. The pipeline runs on its own, and the edit lives in the repository with it.

  • Avatar

    Three avatar engines

    SadTalker handles batch jobs, LivePortrait is fast enough for iterating, and HeyGen is what I reach for when the output has to look clean. The finished clip is filed into the pipeline and goes out through the same upload step.

  • Script

    A standing agent for the scripts

    OpenClaw runs all the time and keeps a memory of trends and how past videos performed, so a script is written against weeks of context.

  • Publish

    Upload through the API

    The thumbnail, SEO metadata, and tags all come from the content planner entry, so the upload step has nothing left to fill in by hand.

Credits

Script
Claude
Voice
ElevenLabs
Avatar
SadTalkerLivePortraitHeyGen
Compose
RemotionReact
Publish
YouTube API
Runtime
Node.js