Made with AI

How this video was made with AI.

Nobody sat down in front of a camera to make the session videos in this library. There is no microphone, no timeline editor, and no take two. Each video starts life as a JSON file listing its beats, a machine reads the narration, and a command renders the whole thing. Fix a typo a month later and you change one line and re-run it, instead of hunting for a frame.

Below is the actual manifest that produced one of the lessons on this site, the two commands that turn a manifest into a file a browser can play, and the 20 minutes it takes end to end. Nothing on this page is an illustration of the process. It is the process.

1. The video is a JSON file

Here are three of the 9 beats from the manifest behind the Install your AI coding agent session, copied straight off disk. Each beat names a template to draw, the words on screen, and the line to narrate under it. That is the whole script and the whole storyboard, in one file you can diff.

{
  "slug": "install-your-ai-coding-agent",
  "title": "Install your AI coding agent",
  "brand": "operator",
  "style": "blueprint-noir",
  "courseLine": "Foundation lesson, AI Operator Academy",
  "beats": [
    {
      "id": "s0",
      "template": "TitleCard",
      "vo": "There is one install that unlocks everything else we teach: an AI coding agent on your own computer. Codex, Claude Code, or Grok Build. You pick one, and in about thirty minutes it is doing real work on your machine.",
      "props": {
        "title": "Install your AI coding agent",
        "sub": "30 minutes, one tool",
        "kicker": "Foundation lesson",
        "cover": "cover.png",
        "coverVideo": "cover.mp4"
      }
    },
    {
      "id": "s1",
      "template": "Cards",
      "label": "Step 1: Pick ONE tool",
      "sub": "Match the subscription you already pay for",
      "vo": "First, pick exactly one tool, and match it to a subscription you already pay for. ChatGPT Plus means Codex. Claude Pro means Claude Code. A Grok account means Grok Build. Write it on a sticky note and ignore the other two.",
      "props": {
        "items": [
          {
            "title": "Codex",
            "sub": "ChatGPT Plus or higher",
            "chip": "codex"
          },
          {
            "title": "Claude Code",
            "sub": "Claude Pro or higher",
            "chip": "claude"
          },
          {
            "title": "Grok Build",
            "sub": "Grok or xAI account",
            "chip": "grok"
          }
        ],
        "spotlight": 1
      }
    },
    {
      "id": "s4",
      "template": "Terminal",
      "label": "Step 4: One install command",
      "sub": "Paste, Enter, wait, reopen the window",
      "vo": "Now paste the one install line for your tool and your system, and press Enter. Text scrolls, you wait. When it finishes, close the terminal completely and open a fresh one, so your new command is found.",
      "props": {
        "title": "Terminal",
        "lines": [
          {
            "type": "cmd",
            "text": "curl -fsSL https://claude.ai/install.sh | bash"
          },
          {
            "type": "out",
            "text": "Downloading and installing..."
          },
          {
            "type": "ok",
            "text": "Installed. Close this window, open a new one."
          },
          {
            "type": "cmd",
            "text": "claude --version"
          },
          {
            "type": "ok",
            "text": "Ready to run"
          }
        ]
      }
    }
  ]
}

content/install-your-ai-coding-agent/manifest.json, beats s0, s1, s4. Style: blueprint-noir.

2. Two commands turn it into a video

The first renders the manifest with narration under it. The second makes the smaller cut that actually gets served to somebody on their phone. These are the exact command lines taught in session 4 of Make Video Courses with Code, not simplified versions of them.

npx remotion render src/index.ts MyComposition out/my-first-lesson.mp4 --codec=h264 --props='{"slug":"my-first-lesson"}'

Render: the JSON file becomes a real file on disk.

ffmpeg -i out/my-first-lesson.mp4 -c:v libx264 -preset medium -crf 28 -pix_fmt yuv420p -movflags +faststart -c:a aac -b:a 96k out/my-first-lesson-web.mp4

Encode: a quality target rather than a fixed bitrate, metadata moved to the front so it starts playing before it has finished downloading.

3. 20 minutes, start to finish

Once the pipeline exists, a new session video costs about 20 minutes of attention. Most of that is writing. The machine does the rest while you go and do something else.

  1. 6m1. Write the beatsThe agent drafts the manifest from the lesson text: one beat per idea, each with a template, a label, and the narration line.
  2. 4m2. Narrate every lineThe vo field on each beat goes to text to speech and comes back as an audio file. Fix a typo later and only that one line is re-cut.
  3. 2m3. Make the coverOne generated cover image and a short cover loop for the title card. This is the only picture anybody has to look at.
  4. 5m4. Render itRemotion draws the scenes from the manifest and lays the narration under them. One command, no timeline editor, nobody on camera.
  5. 3m5. Encode and hostffmpeg makes the smaller web cut, it goes to object storage, and the returned https URL is wired into the lesson.

4. Here is one that came out of it

This short was made exactly this way: written as beats, narrated by a machine, rendered by a command, encoded and hosted with the two lines above. Play it and decide whether the output is good enough for what you want to make.

Build the same line yourself

Make Video Courses with Code is five sessions: write the scenes, render them, host them, and ship a cut for every brand. The first one is free and needs no account, and it is the session that explains why this beats recording before you spend a weekend on it.

Watch the first session freeSee what All-Access costs