ai-short-video-maker
Skill1 starsChanged 48 days agoMITView on GitHub
Build short custom videos (birthday greetings, children's stories,
- Installs packages
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 5 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 31
ffmpeg: must be available. The bundled scripts/assemble_video.py uses imageio-ffmpeg to locate the ffmpeg binary — install with pip install …
- Distinctive: line 37
Use this skill when the user requests:
- Distinctive: line 45
Before starting production, confirm with the user (or infer from context):
- Very specific: line 67
Use ImageGen to generate a character sheet (full-body, neutral pose) matching the requested style.
- Very specific: line 69
Use size: 1024x1536 for the character sheet.
- Distinctive: line 79
If two parallel generations produce the same timestamp filename and overwrite each other, re-run the overwritten scene afterward.
- Very specific: line 83
Use VideoGen in image-to-video mode for each keyframe:
- Distinctive: line 92
Use offline TTS so the pipeline does not depend on network services:
- Very specific: line 105
If the target environment lacks the Huihui voice, fall back to any zh-CN system voice or produce a silent subtitle-only version and tell …
- Very specific: line 109
Use the bundled script scripts/assemble_video.py:
- Distinctive: line 143
Before listing the service on a trading platform, verify:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AI Short Video Maker
Overview
Turn a one-paragraph brief into a 15–30 second narrative short video with original characters, Japanese-anime/cinematic style, Chinese subtitles, and synthetic voice-over. The pipeline is fully faceless, uses only local/offline tools for audio assembly, and is designed to be run inside a single WorkBuddy workspace.
Typical outputs:
- Custom birthday greeting videos for kids (e.g. "Naruto-style ninja boy, name Lele, 12 years old")
- Animated children's bedtime stories
- Short store-opening / event promotional clips
- Personalized festival / anniversary greetings
Dependencies
- ffmpeg must be available. The bundled
scripts/assemble_video.pyusesimageio-ffmpegto locate the ffmpeg binary — install withpip install imageio-ffmpeg, or ensureffmpegis on PATH. - Offline TTS:
pip install pyttsx3(Windows ships azh-CNvoice; macOS/Linux fall back to any system voice or a silent subtitle-only version). - Image/video generation uses the host's
ImageGen/VideoGentools — no extra install.
Trigger Conditions
Use this skill when the user requests:
- "帮我做一个生日祝福视频"
- "用 AI 生成一段动画/短视频"
- "给我打个样:XX 风格,主角叫 XX"
- Any request to prototype a faceless AI video-delivery service on a platform like Xianyu/Taobao/Fiverr
Required Inputs
Before starting production, confirm with the user (or infer from context):
- Recipient / protagonist (name, age, gender if relevant)
- Theme / style (e.g. ninja/anime/fantasy/space/cute)
- IP constraints — never generate copyrighted characters (Naruto, Disney, etc.). Use "XX-style original character" wording instead.
- Total length target — default 15–20 seconds (3–4 clips of ~5s each + end card)
- Language of subtitles / voice — default Simplified Chinese with Microsoft Huihui offline TTS
- Output directory — default
<workspace>/produce/<project-slug>/
Production Pipeline
Step 1: Create output directory and write storyboard
- Create
<out_dir>. - Write
<out_dir>/分镜脚本.mdwith:- 3–4 scenes, each ~5 seconds
- Subtitle text per scene (keep under 20 Chinese characters for readability)
- End card text (big + small line)
- Note: All Chinese text is added in post-production; do not ask the image/video model to render text.
Step 2: Character design image
Use ImageGen to generate a character sheet (full-body, neutral pose) matching the requested style. Requirements:
- Mention "original character" and avoid any copyrighted names/symbols.
- Use
size: 1024x1536for the character sheet. - Save to
<out_dir>/character_sheet.png.
Step 3: Scene keyframes (image-to-image locked to character sheet)
Generate one 16:9 keyframe per scene using ImageGen with image: character_sheet.png and input_fidelity: high. Save as:
scene01_<slug>.pngscene02_<slug>.pngscene03_<slug>.png
If two parallel generations produce the same timestamp filename and overwrite each other, re-run the overwritten scene afterward.
Step 4: Video clips (image-to-video)
Use VideoGen in image-to-video mode for each keyframe:
seconds: 5resolution: 720P- Do NOT pass
aspect_ratio— the backend rejects"16:9"and returns HTTP 400. - Prompt should describe subtle, cinematic motion consistent with the scene.
- Save clips as
clip01.mp4,clip02.mp4,clip03.mp4.
Step 5: TTS audio
Use offline TTS so the pipeline does not depend on network services:
import pyttsx3
engine = pyttsx3.init()
engine.setProperty('voice', r'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0')
engine.setProperty('rate', 170)
engine.save_to_file(text, 's1.mp3')
engine.runAndWait()Generate one audio file per subtitle line plus the end card line.
If the target environment lacks the Huihui voice, fall back to any zh-CN system voice or produce a silent subtitle-only version and tell the user.
Step 6: Assembly with ffmpeg
Use the bundled script scripts/assemble_video.py:
python <skill_dir>/scripts/assemble_video.py --dir <out_dir>The script expects:
clip01.mp4,clip02.mp4,clip03.mp4s1.mp3,s2.mp3,s3.mp3,s4.mp3scene03_<slug>.png(used for the 3-second end card background)msyh.ttcorsimhei.ttfcopied into<out_dir>(the script will try to copy it fromC:/Windows/Fonts/automatically)
The script outputs <out_dir>/<title>_成片.mp4.
Critical Pitfalls (learned from production)
| Issue | Fix |
VideoGen rejects aspect_ratio: "16:9" | Omit aspect_ratio entirely; default works. |
| AI-generated Chinese text is garbled | Never ask the model to draw text. Add all text via ffmpeg drawtext. |
| Windows font path breaks ffmpeg filter parsing | Copy the font file into the output directory and reference it by filename only. |
| Still-image end card has different fps/timebase than video clips | Force -r 24 when generating the end card segment. |
| Video clips have different lengths due to audio trimming | Use -shortest per segment; final concat with concat demuxer handles it. |
| Copyright strike on commercial platforms | Use "XX-style original character" never "Naruto/Spider-Man/Disney character". |
Cost Benchmark
Typical 15–20 second video:
- 1 character sheet + 3 keyframes ≈ 30–50 image-gen credits
- 3 × 5-second video clips ≈ 150–300 video-gen credits
- ffmpeg assembly ≈ 0 credits
Quality Bar for Commercial Use
Before listing the service on a trading platform, verify:
- Character consistency across all scenes (no face/clothing drift)
- Subtitles render correctly in Chinese
- Audio is intelligible and synced
- Total render cost leaves healthy margin at the chosen price (recommended ¥49–199 per video)
Resources
scripts/assemble_video.py— full ffmpeg assembly pipeline (subtitle burn-in, audio mix, end card, concat).
In this repository60 other files it gives its agents.
- accessibility-auditSkill
- agent-browser-coreSkill
- ai-explainer-videoSkill
- ai-video-shortSkill
- AI 工具箱Skill
- antislopSkill
- browser-useSkill
- cangjie-skillSkill
- delivery-no-pseudoblockSkill
- design-reviewSkill
- design-routerSkill
- edge-tts-readSkill
- frontend-designSkill
- frontend-devSkill
- fuheshun-auto-clipSkill
- fullstack-devSkill
- githubSkill
- git-shipSkill
- grillingSkill
- hfut-inspectorSkill
- humanizerSkill
- image-to-editable-pptxSkill
- kdocsSkill
- local-video-pipelineSkill
- markitdown-skillSkill
- pdfSkill
- pptxSkill
- qf-english-polishSkill
- qq-emailSkill
- responsive-designSkill
- self-improving-agentSkill
- sherpa-onnx-ttsSkill
- short-video-script-to-finished-videoSkill
- skill-creatorSkill
- skill-integratorSkill
- tastemakerSkill
- techdebtSkill
- Typography FoundationsSkill
- ui-designSkill
- video-scriptSkill
- web-accessSkill
- web-design-guidelinesSkill
- web-design-layoutSkill
- wechat-article-proSkill
- wechat-article-searchSkill
- weekly-reviewSkill
- word-toolkitSkill
- WorkBuddy 工作原则Skill
- xlsxSkill
- yuketang-harvesterSkill
- 学术研究工具箱Skill
- 安全审查工具箱Skill
- 工程方法论工具箱Skill
- 开发工具箱Skill
- 微信小程序开发套件Skill
- 技能包跨机器打包Skill
- 文档工具箱Skill
- 知识工具箱Skill
- 联网工具箱Skill
- 评审委员会Skill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

