Skip to content
Conduit

skill

okaypic-video-skill

Claude Code / Codex skill: turn a prompt into a multi-shot AI video episode with MiniMax H3 — shot list, character sheets, batch takes, local timeline editor, EN/ZH captions

okaypic/okaypic-video-skillcommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/okaypic/okaypic-video-skill itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 22, 2026

okaypic-video-skill

A Claude Code skill for making short films, episodic series and ads with AI video through the okaypic.com API — plus the small toolchain we use ourselves: reference sheets, batch rendering, a local editing UI with English/Chinese captions, and a one-command final cut.

It is the workflow behind GOBLIN CITY, an 11-episode urban-legend series whose first episode (28 shots rendered, two takes each, cut to 3:52) cost about US$6 in API calls and an afternoon. examples/goblin-city-ep01/ has the real shot list and edit decisions.

Watch: GOBLIN CITY · Episode 1 · The Liquidation

A founder bets his last payroll on a meme coin, is liquidated at 3:33 a.m., wakes up as a goblin and is led down a manhole into Undertown. Every shot, voice and sound effect was generated with MiniMax H3 through this skill; the cut and captions are edit.py.

Watch: full episode, English captions (3:52) · 中文字幕 · 50-second teaser

plan  →  shot list  →  reference sheets  →  takes (H3)  →  pick & cut  →  EN / ZH export
            shots.json      cast.json         gen_clips.py     editor.py       edit.py

Install the skill

npx skills add okaypic/okaypic-video-skill          # any agent that reads SKILL.md (skills.sh)
# or by hand, for one project
git clone https://github.com/okaypic/okaypic-video-skill .claude/skills/okaypic-video
# or for every project
git clone https://github.com/okaypic/okaypic-video-skill ~/.claude/skills/okaypic-video

Then in Claude Code: "use the okaypic-video skill to make a 60-second ad for …" or just describe the video you want; the skill triggers on okaypic / AI video requests.

Codex reads the same SKILL.md (clone it into ~/.codex/skills/okaypic-video). Codex draws the character sheets with its own built-in image model, so only the video clips go through the okaypic API.

New okaypic accounts get US$0.30 of free credit — enough for a few test clips. After that, top up from US$2; python scripts/gen_clips.py ep01 --quote shows exactly what a batch will cost first.

Requirements: Python 3.9+, ffmpeg + ffprobe on PATH, an okaypic API key (OKAYPIC_API_KEY in the environment or a .env file). Get a key and read the API reference at https://okaypic.com/api-docs .

Use the scripts without Claude

export OKAYPIC_API_KEY=...
python scripts/fetch_fonts.py assets              # caption fonts (Noto, OFL)
python scripts/gen_sheets.py ep01                 # cast.json  -> ep01/refs/sheets/*.png
python scripts/gen_clips.py ep01                  # shots.json -> ep01/takes/*.mp4 (+ contact sheets)
python scripts/edit.py ep01 --autotime            # guess caption timings from the audio
python scripts/editor.py ep01                     # local editing UI at http://127.0.0.1:8765
python scripts/edit.py ep01 --lang zh             # or export from the command line

What each piece does

FileRole
SKILL.mdThe skill: the workflow Claude follows, prompting rules, guardrails
scripts/okaypic_api.pyMinimal API client: .env key, idempotent submits, polling, inline base64 media
scripts/gen_sheets.pyCharacter sheets (front/profile close-ups + front/side/back full body) and location sheets from cast.json
scripts/gen_clips.pyBatch MiniMax H3 rendering from shots.json: 2 seeds per shot, ≤18 in flight, resumable, --quote prices only what is left, 5-frame contact sheet per take
scripts/edit.pyFinal cut: picks, trims, burned-in captions (en/zh), end card, per-clip levelling + −14 LUFS
scripts/editor.py + editor.htmlLocal editing UI: pick takes, trim, nudge captions while watching, write translations, export
docs/File formats, H3 prompting guide, API cheat-sheet, editor manual
examples/goblin-city-ep01/A finished episode's shots.json, cast.json, edit.json

The editing UI

python scripts/editor.py ep01 serves a single page from the Python standard library — no npm, no build step. Every shot is a card: the take video with the live caption overlay, take selector, skip toggle, trim in/out (type or "set from playhead"), and the caption table with ±step nudges, "start = playhead" buttons and English / Chinese text side by side. Changes save to edit.json as you type; Export EN / Export ZH render <output>_en.mp4 / <output>_zh.mp4 in the background and link the result when done.

Costs (okaypic list prices, Oct 2026)

StepPrice
MiniMax H3 clip, 768pUS$0.01 per second → US$0.10 for 10 s
MiniMax H3 clip, 480pUS$0.007 per second
Character sheet, GPT Image 2.5 @ 2kUS$0.03
Character sheet, Gemini 3.1 FlashUS$0.02

A 25-shot episode at two takes per shot is ~US$5. Failed tasks are refunded; retrying a request with the same client_request_id never charges twice.

Resuming a batch that died halfway (gen_clips.py keeps its state in takes/state.json): finished takes are skipped, takes already submitted are polled rather than resubmitted, and only what is left is quoted and submitted. A submit whose response was lost is resent with the same client_request_id, so the API returns the original task instead of charging again. A failed take was refunded; it is retried once under a new id.

License

MIT. Fonts fetched by fetch_fonts.py are Noto (SIL Open Font License).

↑↓ navigate openesc close