vvv · private repositoryold viralvideogen

Video in. Original out. Measured in between.

vvv (h3v on the command line) analyses a reference video and produces an original, production-ready package: the story, its character and visual bibles, image and animation prompts, narration, a measured cut and its caption. It serves a US storytelling account and a Brazilian TikTok Shop, and it never believes a result it has not measured.

2026-07-03 → 2026-09-27 · 338 commits

read the project record

Engraving, white on black: a muse crowned with laurel floats diagonally, pulling two bundles of ruled lines that turn into strips of film, before a grid of film frames and a halo of fine rays.

visual_direction

Six figures from myth, six apps I want to build.

Around the pipeline I am drawing a family of six apps. Each one gets a figure from Greek myth and one signature color, in classical engraving with a dithered print texture on deep navy ink.

I picked myth because each figure already has a job. Hermes moves things, Orpheus makes sound, Atlas carries the weight. It is a design direction and a concept so far: the apps are in development, and the pipeline above is the part that exists today.

The VVV brand board on navy ink: the headline The art of making things move, an engraving of Hermes on a blue panel, six app tiles with their colors, and the sunset palette.
The brand board, as drawn so far.

Status: visual direction and concept, in development. The lines below say what each app is meant to do, not what already runs.

  • Engraving of Hermes in flight, winged helmet and sandals, a caduceus in one hand, blue drapery.

    App icon for VVV Video Editor: Hermes in a winged helmet on a blue tile.VVV Video Editor

    Hermes#2462F4

    Timeline, cuts, transitions and narration. Hermes carries things from one place to another, which is what a cut does.

  • Engraving of Hecate, the triple goddess, crowned, with a torch and a crescent moon.

    App icon for VVV Effects Studio: the triple goddess Hecate on a magenta tile.VVV Effects Studio

    Hecate#F22996

    Visual effects, compositing and masks. Hecate keeps the crossroads, where one image turns into another.

  • Engraving of Orpheus crowned with laurel, holding a lyre.

    App icon for VVV Audio Studio: Orpheus with a lyre on a teal tile.VVV Audio Studio

    Orpheus#15CDBB

    Editing, mixing, sound design, voice and tracks. Orpheus moved the world with a lyre.

  • Engraving of Hephaestus, muscular, hammer raised, working at the forge.

    App icon for VVV 3D Studio: Hephaestus at the forge on a purple tile.VVV 3D Studio

    Hephaestus#8C57F6

    Modeling, meshes, materials, scenes and 3D assets. Hephaestus is the god at the forge.

  • Engraving of Mnemosyne crowned with leaves, holding books and scrolls.

    App icon for VVV Media Library: Mnemosyne with books on a lime tile.VVV Media Library

    Mnemosyne#A4E635

    Search, organizing and managing media. Mnemosyne is memory, and a library is where memory lives.

  • Engraving of Atlas kneeling under a celestial globe on his shoulders.

    App icon for VVV Cloud: Atlas carrying a celestial globe on an orange tile.VVV Cloud

    Atlas#FF5D33

    Sync, storage, backup and collaboration. Atlas holds up the whole sky so everything else can stay put.

the_pipeline

One command per stage, three human steps.

There is no single command from reference to post, on purpose. Each stage writes a file the next one checks, and three steps stay human: writing the story, generating the media through the MCP tools an agent calls, and deciding to post.

h3v analyze ./reference.mp4# scene map, keyframes and transcript, without sending every frame to a modelh3v draft promote ./story_idea.json# a story written in chat enters here, validated and unpaidh3v validate ./tiktok_project.json# schema, timeline and prompts, checked offline before a credit is spenth3v render ./tiktok_project.json# the ordered job list; the agent runs each job through MCPh3v verify-narration ./tiktok_project.json --plan ./render_plan.json# every clip transcribed back and compared with its line, and its voice with the othersh3v concat ./tiktok_project.json --plan ./render_plan.json# one file, levels matched, captions burned in on the storytelling accounth3v publish check ./tiktok_project.json --video ./final.mp4 --profile ./publishing_profile.json# ready or blocked, every finding marked verified or attested; it never posts

what_it_does

Six stages, each one checked before the next.

  1. #1 analyse

    Read the reference

    Scene changes, visual similarity and transcript boundaries pick the frames worth looking at. What gets extracted is the structure: pacing, beats, archetypes, the twist.

  2. #2 write

    Write an original story

    The reference lends its mechanics, never its plot: a new hook, open loops, a twist between 55% and 75% of the runtime, a payoff and a moral.

  3. #3 fix

    Fix who everyone is

    A character bible holds each face, age and wardrobe; a visual bible holds the light, the lens and the palette. Every prompt reuses them word for word.

  4. #4 prompt

    Two prompts per scene

    The image prompt defines the visual state; the animation prompt defines what changes over time. Collapsing the two is how characters drift.

  5. #5 generate

    Generate through the agent

    h3v plans the jobs and records what comes back; the agent calls the image and video models through MCP. h3v holds no provider credential, so it cannot pretend to have called one.

  6. #6 assemble

    Assemble what was measured

    Clips are decoded and timed, the narration is read back, levels are matched, captions are burned in, and a gate says ready or blocked before anyone posts.

the_rule

A result is measured before it is believed.

AI providers report success generously. A job marked completed can point at a picture instead of a video, a clip can come back shorter than it was asked to be, and a take can say the right words in a second actor’s voice. The first and the last of those happened here, before a check existed for them.

  • `record` decodes every returned file. One that is not a readable video becomes missing; one that is has its measured duration recorded in place of the claimed one.
  • `assemble` totals measured durations, not requested ones, and warns when the gap passes one second.
  • `verify-narration` transcribes each clip locally and compares it with its line, then flags a clip whose median pitch drifts two semitones from the cut’s, and blocks at three.
  • `compose verify` measures how much a product photograph changed inside the region a model was told to preserve, because the product in a Shop video has to be the real one.
  • `publish check` labels every finding verified, when it measured the file itself, or attested, when a person asserted it. Presenting one as the other would be fabricated verification.
Engraving, white on black: Lachesis, the Fate who measures, seated in profile, sets drafting dividers on a strip of film that crosses the whole image.

two_accounts

One pipeline, two different businesses.

Engraving, white on black: a bust of two-faced Janus in a stone arch, one face looking left and one right, each sending a bundle of rays towards its own edge.

US storytelling

Emotional stories of 65 to 90 seconds in native American English, assembled from short clips. The viewer pays in attention, and the video is finished when they feel something. It is posted by hand, after the gate says ready.

Brazilian TikTok Shop

Product videos in Brazilian Portuguese that must depict the real product, down to the brand printed on it, and end in one clear ask. They pass product, claim and compliance checks; the publishing path runs through TikTok Shop’s own API (upload, TikTok’s precheck, post, status) and is built and tested, with no live post recorded yet. In a LIVE, the machine prepares the host and never speaks.

measured

Counted, not recalled.

Counted in the repository on 2026-09-27. The project record shows the same figures.

Specifications
37specs/, 2026-07-03 to 2026-09-27
Machine-readable contracts
28schemas/, one JSON Schema per persisted shape
Test functions
1782tests/, Python, 2026-09-27; 21 more in Go
CLI commands
71src/h3v/cli.py, 2026-09-27
Lint gate
9.9 / 10pylint fail-under, enforced in CI

questions

What a reader asks first.

Is the code public?

No. The repository is private, so this page summarises what the project does and links to nothing inside it. The project record has the longer account, and the numbers here were counted in the repository itself.

Does it post by itself?

Not on the storytelling account: the gate reports ready or blocked, and a person posts. On the Shop account, the path through TikTok’s API is built and tested against a fake client; it runs only when the operator confirms or schedules a job, and no live post has been recorded yet.

Why is there no single command from video to post?

Three stages make paid model calls, and a chain that runs end to end spends money on its own mistakes. Driving it stage by stage puts a checked file, not a hope, between every paid step.

Does it promise reach or monetisation?

No. No hashtag, duration, resolution or model produces reach, and a video longer than a minute does not guarantee payment. The pipeline makes each attempt cheaper and more honest; what the platform does afterwards is up to the platform.

read the project record · privacy policy for this app · terms of service for this app