Agent skill

Video Pipeline

by notivn in notivn/AIEV

End-to-end video production workflow for the AI Edit Video system - from the user request to the MP4 in outputs/, coordinating HyperFrames (scenes) and Remotion (assembly).

MITAuto-check passedMedia & Creative

Install Video Pipeline

skills CLI
$ npx skills add notivn/AIEV --skill video-pipeline -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install notivn/AIEV video-pipeline --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/notivn/AIEV.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/video-pipeline .claude/skills/video-pipeline && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
video-pipeline
GitHub stars
127
Token cost
~2.9k tokens
SKILL.md length
1,440 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
MIT

At a glance

End-to-end video production workflow for the AI Edit Video system - from the user request to the MP4 in outputs/, coordinating HyperFrames (scenes) and Remotion (assembly).

  • Works in 7 steps: Initialize → Build the scenes (HyperFrames) → Frame verification (MANDATORY, before… → …
  • Tasks that involve Video production
  • SKILL.md covers Engine roles (never swap them), Project lifecycle, Render queue rules (backend) and Sound effects, plus 3 more sections
  • Calls npx, curl and ffmpeg

What it does

Video Pipeline is an agent skill from notivn/AIEV. End-to-end video production workflow for the AI Edit Video system - from the user request to the MP4 in outputs/, coordinating HyperFrames (scenes) and Remotion (assembly). Read this when starting any video or when building the backend render queue.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Media & Creative, covering Video production and Motion graphics. It works with Remotion and HeyGen. The repository describes itself as: Automatic AI video editing. Claude directs HyperFrames (HTML + GSAP motion graphics) and Remotion (timeline assembly) to turn raw footage into a finished MP4 - transcript… The licence is MIT.

When your agent uses it

  • Tasks that involve Video production
  • Tasks that involve Motion graphics

Example prompts

  • “/video-pipeline”

Requirements

  • Node.js

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Initialize
  2. Build the scenes (HyperFrames)
  3. Frame verification (MANDATORY, before assembly)
  4. Assembly (Remotion) - see the remotion-assemble skill for details
  5. Automated QC (MANDATORY, blocks final)
  6. Final
  7. Thumbnail + publish package

What it can do on your machine

Read from SKILL.md and the folder at commit e40fe03. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • curl
    • ffmpeg
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx and curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Video Pipeline loads about 2.9k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 1,440 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~66
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from notivn/AIEV at commit e40fe03, republished under its MIT licence (© notivn). 1,440 words, ~2,933 tokens.

Download SKILL.mdSave it as .claude/skills/video-pipeline/SKILL.md (or your agent's skills folder).
name
video-pipeline
description
End-to-end video production workflow for the AI Edit Video system - from the user request to the MP4 in outputs/, coordinating HyperFrames (scenes) and Remotion (assembly). Read this when starting any video or when building the backend render queue.

Video Pipeline - from request to MP4

Engine roles (never swap them)

TaskEngineWhy
Scene motion graphics: kinetic typography, karaoke captions, count-ups, data tables, callouts, shadersHyperFramesHTML + GSAP is its strength, and the Vietnamese skills already ship the fixes
Stitching scenes + source footage, transitions between scenes, mixing audio + sound effects, full-video caption overlay, final exportRemotionProgrammatic assembly, <Sequence>/<Audio>/<OffthreadVideo>

How the two engines talk to each other: intermediate MP4 files in video-projects/<name>/renders/. HyperFrames does not know Remotion exists and vice versa - the only shared thing is the manifest.

Project lifecycle

1. Initialize
  • Create video-projects/<kebab-case-name>/ with index.html, compositions/, assets/, renders/, hyperframes.json, meta.json.
  • meta.json is the central manifest:
json
{
  "id": "tiktok-paper-gpt5",
  "name": "Mổ xẻ paper GPT-5",
  "width": 1080, "height": 1920, "fps": 30,
  "status": "draft",
  "scenes": [
    { "id": "s01-hook",   "src": "compositions/s01-hook.html",   "durationInFrames": 90,  "render": "renders/s01-hook.mp4" },
    { "id": "s02-talking","srcVideo": "assets/talking-head.mp4", "from": 2.5, "to": 14.0 }
  ],
  "audio": {
    "voice": "assets/voice.mp3",
    "sfx": [ { "file": "assets/sound-effects/whoosh-01.mp3", "atFrame": 88 } ]
  },
  "output": null
}
  • scenes[] is the contract between the two engines: a scene with src is rendered by HyperFrames; a scene with srcVideo is footage used as-is. Remotion reads this file to assemble - never hardcode the scene list in the Remotion code.
2. Build the scenes (HyperFrames)
  • Copy assets/brand/brand-tokens.css into the project, write compositions following the window.__timelines convention.
  • Vietnamese videos: apply the verified fixes (gradient text losing diacritics -> render text as real elements + use background-clip correctly; check that every diacritic is present on the first/last frame of each reveal).
  • Lint clean before rendering: npx hyperframes lint.
  • Render a draft of each scene: npx hyperframes render --quality draft --output renders/<scene>.draft.mp4.
3. Frame verification (MANDATORY, before assembly)
bash
ffmpeg -ss <hero-moment-seconds> -i renders/<scene>.draft.mp4 -frames:v 1 verify/<scene>.png

Inspect every image: does the Vietnamese text keep all its diacritics? Is any text overflowing the edges? Any unexpected white/black frames? Is a face cropped? If anything is wrong, fix the scene - do not move on.

4. Assembly (Remotion) - see the remotion-assemble skill for details
  • The Remotion composition reads meta.json, builds <Sequence> entries from scenes[], and inserts sfx at atFrame.
  • Render a full draft -> review it in the web UI -> approve.
5. Automated QC (MANDATORY, blocks final)
bash
curl -s -X POST http://localhost:6869/api/projects/<id>/qc -H "content-type: application/json" -d "{}"

The server measures the latest draft with ffmpeg and returns { report: { status, checks[] } }:

checkmeaningwhat to do on fail
resolutiondimensions/fps do not match meta.jsonre-render with the correct settings
loudnessfar off -14 LUFSadjust the mix volume, do not fix it by pulling the peak
truepeakclipping (> -0.5 dBTP)lower the source gain, see "SFX loudness and lead silence" in the noti-tiktok-vn skill (voice headroom before layering SFX)
blackframesblack frames in the MIDDLE of the video (leading/trailing fades are ignored)a gap at a scene change - fix transitionOverlap/durationInFrames
freezefrozen picture >= 2sthe scene is missing animation, or the footage is broken
tail-silencesilent tail > 1.2strim the tail
av-durationpicture and sound differ by > 0.5swrong total durationInFrames
safe-areaALWAYS passes, returns frames = images with the obstructed bands outlined in redyou MUST Read every image and judge for yourself; if any text sits in the red zone, pull it inward, see the key-layout skill
  • status: "fail" -> the server rejects the assemble-final job with 409 QC_REQUIRED / QC_FAILED. Fix the root cause, re-render the draft, run QC again. Do not use force: true to dodge it unless the user explicitly asks.
  • status: "warn" -> consider fixing, not blocking.
  • The final report must state the QC results and how each fail/warn check was handled.
6. Final
  • Re-render the HyperFrames scenes at --quality standard.
  • Remotion final render -> outputs/<project>-v<N>.mp4.
  • Update meta.json: status: "done", output: "outputs/...". The web UI reads status from here.
7. Thumbnail + publish package
bash
curl -s -X POST http://localhost:6869/api/projects/<id>/thumbnail -H "content-type: application/json" -d "{\"title\":\"...\",\"frameAt\":12}"
curl -s -X POST http://localhost:6869/api/projects/<id>/publish   -H "content-type: application/json" -d "{}"

publish generates .srt/.vtt from the transcript and has the AI write the title/description/hashtags for TikTok, YouTube and Facebook following the Style Design. Precondition: the transcript must be the FINAL one. If it was cut/remapped, write the final version to assets/transcript.final.json (the transcript loader prefers this file) - otherwise the subtitles will drift out of sync with the cut video.

Render queue rules (backend)

  1. Every render goes through the queue - including the ones Claude runs by hand. Jobs are written to SQLite: id, projectId, type (scene-draft|scene-final|assemble-draft|assemble-final|image-gen), status, progress, log, startedAt, finishedAt.
  2. Jobs run in parallel up to QUEUE_CONCURRENCY (default 2, configurable via env; set 1 on weak machines). Safety constraint: two jobs from the same project never run at the same time (to avoid trampling renders/meta) - parallelism only happens across different projects.
  3. Progress: parse the CLI stdout (both engines print frame progress) -> update the DB -> push SSE to the web UI.
  4. Failed jobs: keep the complete log in the DB, show it in the UI, and do not auto-retry more than once.
  5. Draft always comes before final. The backend rejects a final job if the project has no successful draft for the current version of the scenes.

Sound effects

  • Shared library: assets/sound-effects/, every file has an entry in assets/sound-effects/library.json (file, tags, durationMs, and a description written in Vietnamese).
  • When using one in a video: copy it into video-projects/<name>/assets/sound-effects/ then declare it in meta.json - a project must contain all of its own assets (re-rendering must not depend on a library that may change).
  • The Sound Effects page in the web UI reads library.json, plays previews inline, and allows uploading new files (the backend updates the json).
Show full SKILL.md (620 more words)Show less

Speeding up renders (this machine has a GTX 1660 - verified 2026-07)

The number one reason the pipeline burns an entire hour: re-rendering a draft of the WHOLE video after every small edit. The rules:

  1. Verify layout/text with npx hyperframes snapshot or inspect (a few seconds) instead of rendering a full draft (tens of minutes). Render a full draft only ONCE, when every snapshot is good, and final ONCE.
  2. Small edit -> re-render only what changed: if you edited one scene, re-render that scene (render -c <scene>), do not re-render the whole composition. The split-scene + Remotion-assemble pipeline is built exactly for this.
  3. HyperFrames speed flags (the backend queue adds them automatically; when running by hand you MUST remember them): -w 8 --browser-gpu for every render; add --gpu (NVENC) for drafts. Final keeps CPU encoding (libx264) for maximum quality. Measured in practice: ~30% faster on short scenes, more on long ones.
  4. Transcription runs only ONCE - if transcript.json already exists, reuse it, NEVER transcribe again.
  5. Remotion speed flags (when running npx remotion render/still by hand you MUST add): --concurrency 8 --gl angle. WITHOUT --gl angle, Remotion's Chrome renders with the software renderer (SwANGLE) - the CPU carries 100% while the GPU idles (symptom: Task Manager CPU ~95%, GPU ~5%). On Linux use --gl angle-egl instead of angle.

Known issues (verified in production 2026-07)

  • meta.json must respect the data-type contract (the web UI reads it directly - a wrong type crashes the page): output is a path STRING (e.g. "outputs/<id>-v1.mp4"), NOT an object. Extra metadata (duration, quality, renderedAt, ...) goes into a separate outputInfo field if needed. scenes[].durationInFrames is a number; sfx are placed with atFrame (a frame number) as in the schema at the top of this file.

  • Rendering a single scene: use the -c flag, not a positional argument: npx hyperframes render -c compositions/s01.html --quality draft --output renders/s01.draft.mp4. A <template> sub-composition must be referenced by index.html through data-composition-src for -c to be able to render it.

  • Words running together on per-word reveals: the HyperFrames pipeline swallows the whitespace between inline-block <span>s - separate words with margin: 0 0.14em on .word, do not rely on whitespace in the HTML.

  • The sub_timeline_readiness_timeout warning when rendering a template file with -c: the render still comes out correct (best-effort) but wastes another 45s waiting - acceptable for drafts; if you want it gone entirely, render through index.html.

  • A TS comment containing the glob path */ (e.g. video-projects/*/meta.json) closes the block comment early -> a baffling compile error. Write video-projects/<id>/meta.json instead.

  • Vietnamese JSON sent with curl -d from Git Bash on Windows loses its diacritics (verified 2026-08: the thumbnail title arrived at the server as "B?n th? kh?ch..." and rendered broken). The console codepage mangles UTF-8 before curl sends it. For any API body containing Vietnamese, POST from Node instead: node -e "fetch(url, { method: 'POST', headers: {'content-type': 'application/json'}, body: JSON.stringify({...}) })" (or write the JSON to a file and use curl --data-binary @file).

Checklist before reporting completion

  • If the brief enables autoCut: the cut was done per the auto-cut skill, a second silencedetect pass verified the cut version, and the report states the seconds/segments removed
  • Every scene passed frame verification, Vietnamese text keeps all its diacritics
  • Audio is in sync at the start/middle/end (check 3 random points)
  • Sound effects land on the right frames, and their volume does not bury the voice (sfx ~10dB below voice)
  • The output matches the dimensions/fps in meta.json
  • Automated QC ran on the draft with no remaining fail checks (the report spells out any leftover warn checks)
  • meta.json has updated status + output
  • The thumbnail was generated and Read to verify the diacritics are complete
  • The publish package was generated (.srt/.vtt + metadata), using the FINAL post-cut transcript
  • Any new lesson learned was written into the relevant skill

© notivn, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/video-pipeline of notivn/AIEV.

Open the folder on GitHubat commit e40fe03

Compare with similar skills

Video Pipeline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Video Pipeline compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Video Pipeline this skillnotivn/AIEV127—~2.9kAutomated safety check: PassMIT
HyperFrames Video Entry Pointheygen-com/hyperframes60k3 repos~5.2kAutomated safety check: PassApache-2.0
Remotion to HyperFrames Porterheygen-com/hyperframes60k3 repos~2.8kAutomated safety check: PassApache-2.0
Reference Video Replica QcPluviobyte/video-production-skills671—~1.8kAutomated safety check: PassNone
Black White Text OpenerPluviobyte/video-production-skills671—~1kAutomated safety check: PassNone
Remotion To Hyperframeschmonitor/chmonitor3011 repos~2.5kAutomated safety check: PassGPL-3.0

Similar skills

  • HyperFrames Video Entry Point

    heygen-com/hyperframes

    Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.

    60k GitHub starsUsed in 3 repos~5.2k tokens
    Media & CreativeAuto-check passed
  • Remotion to HyperFrames Porter

    heygen-com/hyperframes

    Ports an existing Remotion (React) composition to HyperFrames HTML with GSAP, one way, and grades the result against a tiered set of reference fixtures.

    60k GitHub starsUsed in 3 repos~2.8k tokens
    Media & CreativeAuto-check passed
  • Reference Video Replica Qc

    Pluviobyte/video-production-skills

    Analyze, recreate, align, and verify reference-video motion.

    671 GitHub stars~1.8k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed
  • Black White Text Opener

    Pluviobyte/video-production-skills

    Create reusable black-background white-text opening animations for new videos.

    671 GitHub stars~1k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed
  • Remotion To Hyperframes

    chmonitor/chmonitor

    Port an existing Remotion (React) composition to HyperFrames HTML.

    301 GitHub starsUsed in 1 repo~2.5k tokens
    Media & CreativeAuto-check passed
  • Super Video Maker

    Bomx/super-video-maker-skill

    End-to-end AI video production skill for agentic frameworks.

    310 GitHub stars~11k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes

More from notivn/AIEV

All 14 skills in this repo
  • Background Music

    notivn/AIEV

    Pick background music from the assets/music/ library and configure auto-ducking (music dips automatically under speech) via meta.json audio.music for the Remotion assembly layer.

    127 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Color Grading

    notivn/AIEV

    Color grading video in the AI Edit Video system - delog/tonemap HDR-HLG-log footage, apply the color preset the user approved in the UI, and the visual verification workflow.

    127 GitHub stars~932 tokensUpdated yesterday
    Auto-check passed
  • Build a Vietnamese vertical TikTok explainer in the "MỔ XẺ PAPER AI" (AI paper dissection) format with HyperFrames (HTML/CSS/GSAP → MP4), Noti.vn style.

    127 GitHub stars~4.8k tokensUpdated yesterday
    Auto-check passed
  • Skill Authoring

    notivn/AIEV

    The standard for writing new skills for the AI Edit Video system - file structure, frontmatter, tone of voice, and how to accumulate production lessons into skills.

    127 GitHub stars~925 tokensUpdated yesterday
    Auto-check passed
  • Noti Tiktok Vn

    notivn/AIEV

    Edit a Vietnamese vertical TikTok video (9:16) with HyperFrames following the Noti.vn/GĐT standard - talking-head + kinetic typography + karaoke captions + zoom/punch-in camera + timestamp-synced…

    127 GitHub stars~5.4k tokensUpdated yesterday
    Auto-check passed
  • Build a Vietnamese landscape 16:9 YouTube video (1920×1080) with HyperFrames (HTML/CSS/GSAP → MP4), keeping the Noti.vn/GĐT branding inherited from noti-tiktok-vn.

    127 GitHub stars~5.7k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Video Pipeline

What does Video Pipeline do?

End-to-end video production workflow for the AI Edit Video system - from the user request to the MP4 in outputs/, coordinating HyperFrames (scenes) and Remotion (assembly). Video Pipeline is an agent skill from notivn/AIEV. End-to-end video production workflow for the AI Edit Video system - from the user request to the MP4 in outputs/, coordinating HyperFrames (scenes) and Remotion (assembly).

When should I use Video Pipeline?

Video Pipeline fits situations like: tasks that involve Video production; tasks that involve Motion graphics.

How do I install Video Pipeline in Claude Code?

Run `npx skills add notivn/AIEV --skill video-pipeline -a claude-code`. Or copy the skill folder (.claude/skills/video-pipeline in notivn/AIEV) into .claude/skills/video-pipeline in your project. Claude Code loads it when a task matches its description.

How do I install Video Pipeline in Codex?

Run `npx skills add notivn/AIEV --skill video-pipeline -a codex`. Or copy the skill folder (.claude/skills/video-pipeline in notivn/AIEV) into .agents/skills/video-pipeline in your project. Codex loads it when a task matches its description.

Can I use Video Pipeline in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add notivn/AIEV --skill video-pipeline -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/video-pipeline, .gemini/skills/video-pipeline, .github/skills/video-pipeline and .opencode/skills/video-pipeline in your project.

What does Video Pipeline need to run?

Going by SKILL.md and its folder, Video Pipeline needs the command-line tools its instructions call (npx, curl, ffmpeg and node). Our summary lists: Node.js.

Does Video Pipeline access the network?

SKILL.md contains no URLs. Its commands use npx and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Video Pipeline safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Video Pipeline use?

Video Pipeline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Video Pipeline use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Video Pipeline?

Skills that share tags, products or a category with Video Pipeline: HyperFrames Video Entry Point (heygen-com/hyperframes, 60k stars), Remotion to HyperFrames Porter (heygen-com/hyperframes, 60k stars), Reference Video Replica Qc (Pluviobyte/video-production-skills, 671 stars) and Black White Text Opener (Pluviobyte/video-production-skills, 671 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Video Pipeline?

notivn (a GitHub organization) maintains it in notivn/AIEV, which has 127 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 9, 2026.

Source: notivn/AIEV on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.