voice-to-video SKILL.md skillB
voice-to-video from wwwzhouhui/skills_collection is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add wwwzhouhui/skills_collection/voice-to-video@git:20260905.5c6b792Pins git:20260905.5c6b792 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- B, 16 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- wwwzhouhui/skills_collection
- Path
voice-to-video/SKILL.md- Versions recorded
- 3
- Latest version
- git:20260905.5c6b792, committed Sep 5, 2026
- First version recorded
- Sep 5, 2026
- Size
- 7,527 bytes
- Repository stars
- 284
- License
- none declared
口播文字稿一键成片:TTS 配音(edge-tts,带逐句/逐词时间戳)→ HTML 动画合成(场景由时间戳驱动,画面跟着声音走)→ Playwright 逐帧确定性渲染合成 MP4。Use whenever the user wants to 把口播稿/文字稿/文案/文章做成视频、配音视频、解说视频、知识类短视频、口播视频、文字转视频、TTS video、voice-over video、画音同步、字幕驱动画面,or mentions HyperFrames 式的 HTML 渲视频流程 — even if they just say "帮我做个视频" 并附了一段稿子.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 口播转视频(voice-to-video)
把一段口播文字稿变成一条 **文字稿 ↔ 配音 ↔ 画面逐句对应** 的 MP4:
```
script.txt ──tts.py──▶ voice.mp3 + timeline.json(逐句/逐词毫秒时间戳) + subtitles.srt
│
▼
composition.html(一句口播 = 一个场景,时间戳来自 timeline)
│ render.py(无头浏览器逐帧截图 = 确定性渲染)
▼
final.mp4(配音音轨已混入)
```
核心约定(务必遵守):**音频即时钟,画面跟着声音走**。场景切换、元素出现、字幕高亮全部由 timeline.json 的时间戳驱动;渲染是 seek 式逐帧截图,同样的输入永远渲出同样的每一帧。
## 工作目录约定
每条视频一个独立目录,产物集中存放:
```
<video_dir>/
├── script.txt 口播稿(纯文本)
├── kit.css engine.js 从技能 assets/ 拷贝
├── composition.html 你编写的合成页
├── build/ tts.py 产物: voice.mp3 / timeline.json / subtitles.srt
├── frames_final/ 渲染中间帧(默认渲完删除)
└── final.mp4 成片
```
## Step 0 · 环境自检
首次使用或报错时检查(本机已确认可用的版本:ffmpeg 6.1.1 / edge-tts 7.2.8 / playwright 1.55):
```bash
ffmpeg -version | head -1 && python -c "import edge_tts, playwright" \
&& python -m playwright install chromium --dry-run
```
缺 Chromium 就执行 `python -m playwright install chromium`。edge-tts 需要能访问 Microsoft 服务(失败通常是网络/代理问题,重试或换网络)。
## Step 1 · 口播稿 script.txt
…Read the whole file at its exact version.
How to install
mdr add wwwzhouhui/skills_collection/voice-to-video@sha256:a0a209fe35befdb5The line at the top of this page pins the label git:20260905.5c6b792, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_ogbmg4aj7daeatiy)
1 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 3 versions of this file, all committed on Sep 5, 2026.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260905.5c6b792 latest | 2026-09-05 | 5c6b792 | 7,527 B | B | view · diff |
| git:20260905.12ce4f9 | 2026-09-05 | 12ce4f9 | 7,360 B | B | view · diff |
| git:20260905.e6b7953 | 2026-09-05 | e6b7953 | 7,238 B | B | view |
Audit of the latest version
- fail: No script tag (matched: <script)
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (7527 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
Starting a new one? Use a template for SKILL.md on mdpantry, which passes every one of these checks and says what to change in it.
Source
wwwzhouhui/skills_collection · 284 stars · license none declared · pushed 2026-10-16 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_ogbmg4aj7daeatiy GET https://markdownregistry.com/api/v1/resolve?ref=wwwzhouhui/skills_collection/voice-to-video GET https://markdownregistry.com/api/v1/blob/a0a209fe35befdb5bd545f4f0c768ab675d3dc6b151075f8f59ed6a7dbcec293
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.