{
  "title": "Twelve videos in four days. Nobody picked up a camera.",
  "url": "https://cybiqon.in/lab/hyperframes-heygen-ai-video-pipeline",
  "author": "Prajjwal Pathak",
  "published": "2026-10-11",
  "license": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/"
  },
  "citation": "Prajjwal Pathak, “Twelve videos in four days. Nobody picked up a camera.”, Cybiqon Lab, 2026-10-11. https://cybiqon.in/lab/hyperframes-heygen-ai-video-pipeline",
  "tables": [
    {
      "id": "three-tracks-a-day",
      "section": "Three tracks a day",
      "csv": "https://cybiqon.in/data/lab/hyperframes-heygen-ai-video-pipeline/three-tracks-a-day.csv",
      "columns": [
        "Cron (IST)",
        "Track",
        "Ceiling"
      ],
      "rows": [
        [
          "23:00 daily",
          "itspyguru: teaching Short, or a 16:9 long-form on Wednesday and Sunday",
          "3 h / $25; long-form nights 7 h / $60"
        ],
        [
          "14:00 daily",
          "blog: an explainer of that day's post on our AI blog",
          "2 h / $20"
        ],
        [
          "16:30 Mon, Thu, Sat",
          "promo: a Cybiqon product or service",
          "2.5 h / $25"
        ]
      ]
    },
    {
      "id": "the-claude-code-skill-behind-it",
      "section": "The Claude Code skill behind it",
      "csv": "https://cybiqon.in/data/lab/hyperframes-heygen-ai-video-pipeline/the-claude-code-skill-behind-it.csv",
      "columns": [
        "Part",
        "What is in it"
      ],
      "rows": [
        [
          "references/",
          "The quality rubric; 15 look families; the pillars; a prompt library; jargon.txt (the terms a beginner wouldn't know)"
        ],
        [
          "references/craft/",
          "Nine researched craft notes: hooks, retention and story, script voice, teaching formats, visual design, product promos, platform specs, recording and lighting"
        ],
        [
          "templates/",
          "PLAN.md and the BRIEF.md handed to the HyperFrames workflow"
        ],
        [
          "assets/",
          "The brand core, the logo, vendored fonts (Plus Jakarta Sans, JetBrains Mono) and four caption skins"
        ],
        [
          "scripts/",
          "Six Python tools and their unit tests"
        ]
      ]
    },
    {
      "id": "the-claude-code-skill-behind-it-2",
      "section": "The Claude Code skill behind it",
      "csv": "https://cybiqon.in/data/lab/hyperframes-heygen-ai-video-pipeline/the-claude-code-skill-behind-it-2.csv",
      "columns": [
        "Script",
        "Job"
      ],
      "rows": [
        [
          "ledger.py",
          "Today's pillar and format, the no-repeat check, the look-variety check, marking a video posted"
        ],
        [
          "planner.py",
          "Reads the topic I scheduled; \"never raises: a planner outage must not stop a video\""
        ],
        [
          "script_lint.py",
          "Gate A18: sentence length, reading grade, number density, jargon, idioms"
        ],
        [
          "voice_build.py",
          "One HeyGen take per sentence, trimmed on sound, with a hash manifest; --check is gate B17"
        ],
        [
          "gap_check.py",
          "Gate B16: no silence over 0.7 s between lines"
        ],
        [
          "deliver.py",
          "Refuses delivery without the four PASS lines, the voice check and a look block, then sends to Telegram and writes the ledger"
        ]
      ]
    },
    {
      "id": "37-quality-gates-and-the-failure-behind-each-one",
      "section": "37 quality gates, and the failure behind each one",
      "csv": "https://cybiqon.in/data/lab/hyperframes-heygen-ai-video-pipeline/37-quality-gates-and-the-failure-behind-each-one.csv",
      "columns": [
        "Gate",
        "Rule",
        "Why it exists"
      ],
      "rows": [
        [
          "A8",
          "Narration at most 2.0 words a second, with a 0.4–0.8 s hold after a key reveal",
          "The first Short, Two Sum: 97 words in 44 s. My verdict: \"too fast, too much content\""
        ],
        [
          "A14",
          "The viewer is fixed: \"a smart 12-year-old who has used ChatGPT and never coded\"",
          "The temperature Short's script \"considers the viewer as an expert\""
        ],
        [
          "A15",
          "Every term defined in the same breath",
          "That script had idioms and maths words, and 17 spoken numbers in 72 s"
        ],
        [
          "A16",
          "Teach-back review: a fresh agent hears only the narration, a separate judge grades it",
          "The first reviewer was told to play \"a developer\", and the planner graded its own pass"
        ],
        [
          "A18",
          "script_lint.py passes: no sentence over 18 words, reading grade ≤ 7, ≤ 1 number per 10 s",
          "The mechanical half of A14"
        ],
        [
          "A19",
          "Expert accuracy review: simplified is fine, false is not",
          "An outside review caught three simplifications in the temperature Short that had become untrue"
        ],
        [
          "A2, A20",
          "The hook is the viewer's own question, proven on screen by 3 s; a cold-viewer agent must get it",
          "\"The hook doesn't make sense… I am noticing this in all videos\""
        ],
        [
          "B11",
          "Real footage fills ≥ 80% of the frame for ≥ 50% of the runtime",
          "\"The actual visuals were limited to very small space on screen\""
        ],
        [
          "B13",
          "A fresh agent must not call this video and the last three the same template",
          "\"The last two videos were quite similar\""
        ],
        [
          "B14",
          "A judge reviews ≥ 6 frames decoded from the final MP4, not just browser snapshots",
          "Snapshots are not the file: our rendered frame 0 once differed from every snapshot"
        ],
        [
          "B16",
          "No silence over 0.7 s between voice lines",
          "Padded frames left 3–5 s gaps in the first long-form"
        ],
        [
          "B17",
          "Every word is heard: each voice line was made by voice_build.py and starts and ends on silence",
          "A third of all sentences were losing their first ~0.2 s"
        ]
      ]
    },
    {
      "id": "what-it-costs-to-make-an-ai-video-with-heygen-and-hyperframe",
      "section": "What it costs to make an AI video with HeyGen and HyperFrames",
      "csv": "https://cybiqon.in/data/lab/hyperframes-heygen-ai-video-pipeline/what-it-costs-to-make-an-ai-video-with-heygen-and-hyperframe.csv",
      "columns": [
        "Item",
        "Figure",
        "Source"
      ],
      "rows": [
        [
          "HeyGen wallet loaded",
          "$15",
          "Our top-up"
        ],
        [
          "Wallet on 10 Oct, 13:08 UTC",
          "$10.52",
          "GET /v3/users/me"
        ],
        [
          "Wallet on 11 Oct",
          "$6.80",
          "GET /v3/users/me"
        ],
        [
          "HeyGen spent, all video work to date",
          "$8.20",
          "$15 − $6.80"
        ],
        [
          "Clone TTS, test 1",
          "346 characters → 22.8 s of audio → $0.05",
          "Balance before and after"
        ],
        [
          "Clone TTS, test 2",
          "967 characters → 58.9 s of audio → $0.14",
          "Balance before and after"
        ],
        [
          "Music retrieval",
          "$0.00",
          "Balance did not move"
        ],
        [
          "Agent run, temperature Short (85 s)",
          "about $18.35 of a $25 cap; about $10 of it the 11 parallel frame workers",
          "Run log, 9 Oct"
        ],
        [
          "Agent run, rate-limiting long-form + companion Short",
          "about $26 of a $60 cap",
          "Run log, 10 Oct"
        ],
        [
          "Daily video-idea job",
          "about $0.25",
          "Cron docs"
        ],
        [
          "Rendering",
          "no per-render charge; our own 4-CPU machine",
          "—"
        ]
      ]
    },
    {
      "id": "how-long-a-hyperframes-render-takes",
      "section": "How long a HyperFrames render takes",
      "csv": "https://cybiqon.in/data/lab/hyperframes-heygen-ai-video-pipeline/how-long-a-hyperframes-render-takes.csv",
      "columns": [
        "Video",
        "Frames",
        "Render time"
      ],
      "rows": [
        [
          "AI agents long-form (7:04)",
          "12,722",
          "1,168 s (19.5 min)"
        ],
        [
          "Rate-limiting long-form",
          "12,957",
          "791 s"
        ],
        [
          "LLM temperature Short",
          "3,600",
          "526 s"
        ],
        [
          "Gemini blog explainer",
          "3,518",
          "427 s"
        ],
        [
          "Jev blog explainer",
          "3,547",
          "307 s"
        ],
        [
          "Snackly promo",
          "2,224",
          "188 s"
        ],
        [
          "Rate-limiting companion Short",
          "2,669",
          "144–185 s across four renders"
        ]
      ]
    }
  ]
}
