Model or dataset
huytranvan2010/AI-auto-generate-video avatar
huytranvan2010/AI-auto-generate-video

AI-auto-generate-video: a Claude Code skill that renders Vietnamese 9:16 shorts from a URL

Auto generate AI video with hyperframes

376 stars185 forksHTMLMIT

At a glance

What is it?
This MIT-licensed template pipeline turns a Vietnamese article or .txt file into a 1080x1920 short with narration and sound effects. The AI writes the script; deterministic code renders it.
Who is it for?
Adopt it if you already run Claude Code or another coding assistant that reads the .agent skills directory, your source material is Vietnamese, and you want the same script.json to produce the same video every time. Skip it if you need English narration, a hosted online generator, or a web UI; the README documents none of those, and the pipeline expects a local OmniVoice server you start yourself.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly HTML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem: news shorts are an editing job, not a writing job

Turning a Vietnamese article into a vertical short normally means writing a script, recording or generating narration, picking a template, timing every scene to the audio, adding sound effects, and muxing the result. Most of that work is mechanical. The README draws the line explicitly: AI handles content (the script and template choices), deterministic code handles production (the pixels). The claim attached to that split is that the same script.json always renders the same video.

That constraint is what separates this project from a chat-driven video generator. A generator that re-decides layout on every run gives you a different cut each time you regenerate, which is painful when a client asks for one line changed. Here the design decisions live in templates/ and the script, so a rerun is reproducible. The audience is narrow and specific: Vietnamese-language publishers, TikTok and Shorts creators, and developers who want a pipeline they can script rather than a timeline they have to drag.

How the template pipeline moves from script.json to video.mp4

The README documents eight deterministic steps in src/render/template-pipeline.ts. First, script.json is validated against a Zod schema, so a malformed scene fails before any rendering time is spent. Second, every voiceText field is joined into script.txt, which exists so CapCut can auto-caption the result. Third, text to speech runs per scene through OmniVoice, writing voice/scene-<id>.mp3; the README marks this step idempotent, meaning an existing file is not regenerated. Fourth, the per-scene audio is concatenated into voice-raw.mp3 with 0.3 second gaps, and the pipeline records a start time for each scene. Fifth, sound effects are layered onto that narration to produce voice.mp3. Sixth, each template is rendered through HyperFrames on Chromium into clips/scene-<id>-fit.mp4, where the clip is fitted to the length of its narration. The final steps mux audio and clips into a 1080x1920 video.mp4.

The dependency on HyperFrames 0.6.94 and Chromium is the load-bearing part. Rendering is headless browser work, not a GPU diffusion model, which is why the output is deterministic and why the install is a Node project rather than a model download. The pipeline emits three files: video.mp4 with voice and SFX baked in, voice.mp3 as a standalone narration track, and script.txt as plain text.

Installing AI-auto-generate-video and rendering a first short

The README requires Node 22 or higher and describes a four-step start. Clone the repository, install dependencies, start your local OmniVoice server, then generate. The comment in the quick start is explicit that the OmniVoice server is something you start, not something npm install brings up.

bash
git clone https://github.com/huytranvan2010/AI-auto-generate-video.git
cd AI-auto-generate-video
npm install
# start your local OmniVoice server, then generate video

From there you have two paths. The README calls the Claude Code path recommended: you invoke the skill with a URL, and Claude fetches the article, writes script.json, and runs the pipeline. The .agent directory was added so the same instructions work with other coding assistants, since the material is packaged as a skill.

text
/create-template-video https://aicodingvn.vercel.app/some-article

If you would rather control every scene and template choice, skip the skill and run the pipeline directly against a script.json you wrote. The README gives this as the manual path, and it is the one to use when you already know the structure you want.

bash
npm run pipeline -- output/my-video/script.json

A few minutes later the README says you should find output/<slug>/video.mp4 at 1080x1920, alongside voice.mp3 and script.txt. The package also ships npm run sfx:download and npm run sfx:filter, which the README lists as scripts but does not document further, so treat them as something to read in scripts/ before relying on them.

The OmniVoice server is the real prerequisite, and the README is thin on it

The most concrete limitation is the one the quick start glosses over. The pipeline calls OmniVoice for per-scene TTS, and the README tells you to start a local OmniVoice server before generating. It does not document the server's install, its port, its API surface, or what happens when the server is unreachable mid-run. Idempotent TTS softens this: scene audio already on disk is not regenerated, so a crash after step three does not force you to redo the narration. But the first run still depends on a service outside this repository.

Language is the second boundary. The package description and the README both frame the output as Vietnamese 9:16 short news videos, and the sample invocation points at a Vietnamese article. Nothing in the README documents English narration or multilingual templates. If your source is English, this is the wrong tool; you would be pushing content through a template set designed around a different language's text lengths and typography.

The third boundary is what the templates own. The README states that templates own all design, layout and motion, and that you supply only text. That is a genuine trade-off: you get consistency and reproducibility, and you give up per-video art direction. Adding a scene type that does not exist in templates/ means editing the template set, not tweaking a prompt.

How it differs from one-shot AI video generators

Most tools people find when searching for a free AI video generator are either diffusion models that synthesize footage from a prompt or hosted services that assemble stock clips, captions and a synthetic voice in the browser. Kling AI and similar text-to-video systems generate pixels from a prompt; the output is novel footage, and each generation differs. This project generates no footage at all. It renders HTML templates through HyperFrames on Chromium, which is closer to a programmatic motion-graphics tool than to a video model.

The practical difference shows up in three places. Determinism: the README's central promise is that the same script.json renders the same video, which a diffusion generator cannot offer. Text fidelity: narration comes from your article's voiceText fields, so the words are yours, not a model's paraphrase. And the output set: you get voice.mp3 and script.txt alongside the video specifically so you can finish in CapCut, which implies the project expects you to keep editing rather than treat video.mp4 as final. A hosted online generator typically gives you a download and nothing else.

Licence, maintenance and what an upgrade actually costs

The repository is MIT licensed, which permits commercial use and modification provided the copyright notice and permission notice are retained. That is the whole of the licence implication here; the repository contains no additional terms, no contributor licence agreement, and no separate licence for the assets directory, which is worth checking yourself if you plan to redistribute the bundled templates and sound effects.

The last push to the default branch was on 2026-09-13, four days before this writing, so the repository is not archived and is being pushed to. That is a statement about commit activity, not a guarantee of support. There are no retrieved releases, so package.json version 2.0.0 is the only version marker available, and there is no changelog in the repository to tell you what changed between versions.

Upgrade cost concentrates in two pinned surfaces. HyperFrames is pinned at 0.6.94 in the README badge, and the pipeline's render step depends on its API; a minor bump there is the most likely source of breakage. The rest of the dependency list is small and conventional: axios, dotenv, p-limit and zod at runtime, with tsx, typescript, vitest and nock for development. The repository ships tests and a vitest.config.ts, and npm run typecheck runs tsc --noEmit, so a version bump can be checked locally before you commit to it.

Editorial conclusion

Adopt it if you already run Claude Code or another coding assistant that reads the .agent skills directory, your source material is Vietnamese, and you want the same script.json to produce the same video every time. Skip it if you need English narration, a hosted online generator, or a web UI; the README documents none of those, and the pipeline expects a local OmniVoice server you start yourself. Before committing, verify three things: that your Node version is 22 or higher, that OmniVoice is running where the pipeline expects it, and that the template set in templates/ covers the scene types your article needs, since the templates own all layout and motion and the README does not describe a fallback for a missing scene type.

Frequently asked questions

What does AI-generated video mean in this project?

Here it means the script and template choices are produced by an AI assistant, while rendering, text to speech, sound design and muxing are handled by deterministic code in src/render/template-pipeline.ts. No footage is synthesized by a video model.

Is AI-auto-generate-video free?

The repository is MIT licensed, so the code itself costs nothing to use or modify. The pipeline does require a local OmniVoice server for narration, and the README does not state whether that service is free.

Can AI-auto-generate-video make money?

The README does not discuss monetization. It positions the output for CapCut, TikTok, Shorts and Reels, and the MIT licence permits commercial use of the code, but nothing in the repository addresses revenue.

Is AI in video safe with this tool?

The README does not make any safety claims. The pipeline runs locally, renders through Chromium via HyperFrames, and calls a local OmniVoice server you start yourself, so the content and audio stay on your machine.

Official sources

  1. huytranvan2010/AI-auto-generate-video on GitHub
  2. Issues
  3. License: MIT
  4. README
Community notes

Community notes