{"id":"621f0550-e3e4-43e7-a3fa-3f7dddeffbaa","shortId":"ZhS2RD","kind":"skill","title":"chanjing-one-click-video-creation","tagline":">-","description":"# 一键式视频渲染器\n\n## 功能说明\n\n一键调用 Chanjing API 完成口播 TTS、数字人合成、文生视频与本地封装；集成 **ffmpeg** / **ffprobe** 做拼接、转码与轨对齐。编排与安全细则见 **§3**–**§8** 与 `templates/`；**成片命令**见 **§5**。\n\n## 运行依赖\n\n必须可用的二进制或等价封装（具体调用方式见 **§5**、`run_render.py`）：\n\n- **ffmpeg**：拼接、转码、封装\n- **ffprobe**：时长、分辨率、旋转等元数据（与数字人轨对齐）\n- **chan-skill**（或同仓库下直接 `python` 调用子技能脚本）：驱动 `chanjing-tts`、`chanjing-video-compose`、`chanjing-ai-creation` 等 CLI\n\n## 环境变量与机器可读声明\n\n- 环境变量键名与说明：**`manifest.yaml`**（`environment` 段）及本文\n- 键名、默认值、凭据模型、二进制、合规 **`permissions`**、**`clientPermissions`、`agentPolicy`**：**`manifest.yaml`**\n\n**§3.2** 表格为配合 **`run_render.py`** 阅读的说明；若与 **`manifest.yaml` 冲突，以 `manifest.yaml` 为准**。\n\n## 使用命令\n\n- **ClawHub**（slug 以注册表为准，常与技能包名一致）：`clawhub run chanjing-one-click-video-creation`\n- **本仓库直连**：`python scripts/run_render.py --input workflow.json --output-dir ./outputs/run1`（在技能目录或配合 **`SKILLS_DIR`** / **`CHANJING_ONE_CLICK_VIDEO_SKILLS_ROOT`** / **`CHAN_SKILLS_DIR`** 使用）\n\n---\n\n## 速查\n\n| 内容 | 位置 |\n|------|------|\n| 工作流、`duration_sec`、`null`/合并、选题校验 | **§4.1** |\n| 切段、奇偶镜、`scenes[]`、`scene_count`/`video_type`；**首镜 `voiceover` ≤20 字（硬）** | **`storyboard_prompt.md`** 篇首「文本切段」；**`script_prompt.md`** 首镜口播；**`video_brief_plan.md`** |\n| 渲染技术、状态、`partial`/success、硬约束 | **`render_rules.md`** §1–§4；**§7**、**§8** |\n| **`ref_prompt` / 文生提示词** | **`storyboard_prompt.md`** + **`history_storyboard_prompt.md`**；**§4.2** 指针 |\n| 请求体字段与默认 | **§6** |\n| `run_render.py`、子进程 CLI | **§5** |\n| 安全、凭据、信任边界、策略 | **`manifest.yaml`** + **§3.1**（§3.1 不重复 manifest 表格） |\n| 环境变量、二进制、副作用、落盘 | **§3.2** |\n\n**冲突**：渲染实现以 **`render_rules.md`** 为准；**`ref_prompt`** 条文以 **`storyboard_prompt.md`** / **`history_storyboard_prompt.md`** 为准（**§4.2** 汇总指针）。`run_render.py` 只实现 **§5** + **`render_rules.md`**，不增业务规则。执行：手工编排子 skill、仅 `run_render`、或混用。\n\n---\n\n## 1. 做什么\n\n1. 选题或全文 → `video_plan`、口播全文、分镜  \n2. **TTS**：整段优先；超长按分镜少批合并（细则与字数见 **`render_rules.md` §3·C.4**）  \n3. 按镜切音频  \n4. **数字人分镜**：`chanjing-video-compose`（音频驱动）  \n5. **AI 分镜**：`ref_prompt` → `chanjing-ai-creation` → 与镜内音频合成  \n6. **封装**：对齐公共数字人轨 → **ffmpeg** concat → 本地 mp4  \n\n---\n\n## 2. 何时用 / 何时不用\n\n| | |\n|--|--|\n| **适合** | 要成片；口播与画面混剪；用户明确要生成短视频 |\n| **不适合** | 仅文案/标题；未要视频；只剪已有素材 |\n\n---\n\n## 3. 前置条件\n\n- **鉴权**：`chanjing-credentials-guard`；凭据路径与字段见 **`manifest.yaml`**、**§3.1**；无凭证时子进程可 `open_login_page.py`  \n- **Plan/Script/分镜**：本地 Agent 逻辑，**无需**外部 LLM API key（本 skill 必选路径不依赖外部 LLM）  \n- **本机二进制与仓库布局**：**§3.2**（`ffmpeg` / `ffprobe`、**`SKILLS_DIR`** 等）  \n- **数字人与音色**：**勿**用环境变量或仓库内缓存文件保存跨任务的「默认」`audio_man` / `person_id` / `figure_type`。每次任务在 **`workflow.json` 根级显式填写**；由 Agent 按 **`video_plan`**（如 `video_type`）、口播人设与选题语义，调用 **`list_voices.py`** 与 **`list_figures.py`**（`--source` 取 `common` / `customised` 等与本次任务一致）选型后写入；**`audio_man`** 宜与所选形象的 **`audio_man_id`** 一致。\n- **公共数字人选型（禁止「只取列表前几项」）**：须用 `list_figures.py --source common --json` 拉取候选（必要时增大 `--page-size` 或翻页，覆盖足够条目），在候选内**逐项对比**后再定稿：`name`、`figures[].type`（→ `figure_type`）、`figures[].width`/`height`（画幅与 **D.1c** 一致）、`audio_man_id`、`audio_name`（若有）与 **`video_plan`/口播人设**（性别、气质、行业、年龄感）是否匹配。**默认偏好年轻、有活力的形象**：名称或 `audio_name` 中含青年/少女/小哥哥/小姐姐/学生/元气/青春/年轻等正向信号时优先；仅当选题或用户明确要求成熟、权威、中老年等气质时，再选对应人设。定制源 `customised` 同样对比 `name`、`width`/`height`、`audio_man_id` 等，勿未经比较直接取页首。\n\n### 3.1 安全、凭据与信任边界\n\n环境变量与二进制以 **`manifest.yaml`** 与 **§3.2** 为据。审阅时可对照 **`description`** 与 **`manifest.yaml`**（含 **`agentPolicy`**）。\n\n- **能力与管道**：步骤级说明见 **§1**；`run_render` 职责与子进程见 **§5**（不在此重复链路）。\n- **主凭据 / 路径 / primaryEnv**：见 **`manifest.yaml`**；路径与写回行为另见 **§3.2** 持久性表「凭据状态」及 **`CHANJING_OPENAPI_CREDENTIALS_DIR`**（兼容 **`CHANJING_CONFIG_DIR`**）。\n- **敏感与合规**：勿回显完整密钥、**勿将 `credentials.json` 提交版本库**；权限建议 **`0700` / `0600`**（配置脚本尽量设置）。\n- **信任与出站行为**：HTTPS、按返回 URL 拉取媒体、**`--output-dir`** 落盘等细节见 **§3.2**「典型副作用」与持久性表；须自行判断是否信任蝉镜主机与链接。\n- **浏览器**：缺凭证时的 **`webbrowser.open` / `open_login_page.py`** 见 **§3.2** 同表。\n- **Agent 策略**：**`manifest.yaml`** 中 **`agentPolicy`**（非 always、不改其它 skill）。\n\n### 3.2 运行时契约（环境变量、二进制、副作用与落盘）\n\n与 **`scripts/run_render.py`** 及同仓库子 skill 行为对齐；与篇首 YAML、**`manifest.yaml`** 一致。若与其它产品文档并列，**以本仓库源码、`manifest.yaml` 与本文为准**。\n\n#### 环境变量（常见）\n\n命名以仓库根 **`合规规则.md` §3** 为准；下列**推荐名**在代码中生效，**旧名仍兼容**（见 **`manifest.yaml`** 与各子 skill 说明）。\n\n| 变量 | 必需性 | 默认 / 说明 |\n|------|--------|-------------|\n| **`CHANJING_OPENAPI_BASE_URL`** | 可选 | 默认 `https://open-api.chanjing.cc`；兼容 **`CHANJING_API_BASE`**。 |\n| **`CHANJING_OPENAPI_CREDENTIALS_DIR`** | 可选 | 默认 `~/.chanjing`；**`credentials.json`** 所在目录；兼容 **`CHANJING_CONFIG_DIR`**。 |\n| **`SKILLS_DIR`** | 视布局而定 | **平台保留**；含 **`skills/chanjing-tts`** 等的仓库根。未设时依次尝试 **`CHANJING_ONE_CLICK_VIDEO_SKILLS_ROOT`**、**`CHAN_SKILLS_DIR`**，再由 `run_render.py` 自脚本路径**向上四级**推断。 |\n| **`CHANJING_ONE_CLICK_VIDEO_REF_PROMPT_MAX_CHARS`** | 可选 | 默认 **`8000`**；整段 **`ref_prompt`** 上限；兼容 **`AI_VIDEO_PROMPT_MAX_CHARS`**。 |\n| **`CHANJING_ONE_CLICK_VIDEO_CREATION_MODEL_CODE`** | 可选 | 缺省文生视频 **`model_code`**；兼容 **`AI_VIDEO_MODEL`**。 |\n\n> **说明**：部分外部文档中的 **`FIRST_DIGITAL_HUMAN_MAX_CHARS`**（首个数字人分镜 `voiceover` 字数上限）等变量，**当前本仓库的 `run_render.py` 未读取**；以后若源码增加对应 `os.environ`，应同步更新本表。\n\n#### 外部二进制\n\n| 二进制 | 必需性 | 用途 |\n|--------|--------|------|\n| **`ffmpeg`** | **跑一键成片 `run_render.py` 时必需** | 拼接、转码、封装音视频等。仅编排纯 API、不执行本渲染脚本时可不装。 |\n| **`ffprobe`** | **同上** | 读取媒体分辨率、时长、旋转元数据等，用于与数字人轨对齐。 |\n\n#### 执行脚本时的典型副作用（按类）\n\n| 类型 | 说明 |\n|------|------|\n| **出站 HTTPS** | 蝉镜 Open API（**`CHANJING_OPENAPI_BASE_URL`** / 兼容 **`CHANJING_API_BASE`**）、以及接口/CDN 返回的 **`video_url` / 音频 URL** 等素材拉取。 |\n| **本地文件** | **`run_render.py --output-dir`** 下常见：**`final_one_click.mp4`**、**`workflow_result.json`**、**`work/`**（中间音频、分段视频、concat 列表等）；具体以当次命令与 **`templates/render_rules.md`** 为准。 |\n| **子进程** | **`ffmpeg` / `ffprobe`**；`run_render` 通过 **`subprocess`** 调用同仓库下 **`skills/chanjing-tts`**、**`chanjing-video-compose`**、**`chanjing-ai-creation`** 等目录中的 Python CLI。 |\n| **浏览器** | 凭据缺失或引导登录时，鉴权链可能 **`webbrowser.open`** 或执行 **`chanjing-credentials-guard`** 的 **`open_login_page.py`**（与各 skill 的 **`_auth.py`** 行为一致）。 |\n\n#### 持久性变更范围与用户可控性\n\n以下对本 skill 而言属**预期内副作用**；可通过路径与环境变量控制写入位置，而非隐式污染无关目录。\n\n| 类别 | 写入什么 | 典型位置 | 用户如何控制 |\n|------|----------|----------|----------------|\n| **凭据状态** | 经配置写入的 **`app_id` / `secret_key`**、刷新后的 **`access_token`、 `expire_in`** 等 | **`CHANJING_OPENAPI_CREDENTIALS_DIR/credentials.json`**（默认 **`~/.chanjing/credentials.json`**；兼容 **`CHANJING_CONFIG_DIR`**） | 设置推荐名或旧名；或迁移/删除该文件；**勿**将秘钥提交版本库。 |\n| **一键成片工件** | **`final_one_click.mp4`**、**`workflow_result.json`**、**`work/`** 等 | 由 **`run_render.py --output-dir`** 指定（常见为某次任务下的 **`outputs/<任务名>/`**） | 选用明确的 **`--output-dir`**；任务结束后按需保留或删除该目录。 |\n| **其它下载类脚本**（子 skill） | 合成结果等到本地 | 各 skill 的 **`download_result.py`** 等：默认多在当前工作目录下 **`outputs/<产品线>/`**，或 **`--output`** 绝对路径 | 在预期 cwd 下执行，或始终传 **`--output`**；详见对应 skill 的 **`SKILL.md`**。 |\n| **临时/过程文件** | TTS 合并、切段、上传前缓存等 | 多在上述 **`output-dir` 下的 `work/`** 或脚本约定子目录 | 随输出目录一并管理。 |\n\n**凭据文件**：路径与读写语义见上表 **凭据状态** 行；首次配置见 **`skills/chanjing-credentials-guard/SKILL.md`**。\n\n---\n\n## 4. 规则汇编\n\n### 4.1 工作流编排\n\n**合并**：`null` = 不覆盖。顺序：默认铺底 → 非 `null` 覆盖 → 布尔/整数校正。字段默认见 **§6**；未在表中展开的缺省由 **`run_render.py`**（及子进程）按实现与环境变量读取（**不含**音色/数字人：`audio_man`、`person_id`/`avatar_id`、`figure_type` 仅来自 **`workflow.json`**，见 **§3**）。\n\n**`duration_sec`**：策划参考，非 ffmpeg 上限。**成片时长**以 TTS+`ffprobe` 为准。`scene_count` 见 **`video_brief_plan.md`**；切段与 AI 条数依实测与字幕轴（**`render_rules.md` §3·C.5**）。禁止为凑时长裁已定稿口播（除非用户要求）。\n\n**选题**：去空白 <5 字、占位串（如「你好」「test」）拒收；可扩写；严格模式模糊则失败。\n\n**步骤**：1) Plan → `video_brief_plan`（败则全败；模板见 **`video_brief_plan.md`**）2) Script（**hook / 首段与首镜对齐**：**≤20 字硬上限**，见 **`script_prompt.md`**）3) Storyboard：语义切分；**`storyboard_prompt.md`**（**首个分镜 `voiceover` 同上硬上限**）；非当代 **`history_storyboard_prompt.md`**；DH **`chanjing-video-compose`**，AI **`chanjing-ai-creation`**；TTS/多段 AI/mux **`render_rules.md` §3**、**§5** 4) Render：**`render_rules.md` §3**（含 **§3·C.6**）、**§4**（表 4–6）；`ref_prompt` 质检见 **`storyboard_prompt.md`** / **`history_storyboard_prompt.md`**（**§4.2**）；重试/`partial` **`render_rules.md` §1** 5) 成功：**`render_rules.md` §1**  \n\n**仅渲染**：`run_render.py` + `full_script` + `scenes[]`。**顺序**：Plan → Script → Storyboard → Render（各阶段用哪份模板见上列步骤）。\n\n---\n\n### 4.2 文生视频提示词（`ref_prompt`）— 指针\n\n**唯一条文真值**（修订以模板为准，本文不重复 D.1–D.4 表文）：\n\n| 范围 | 模板 |\n|------|------|\n| 当代向、**D.0** 语境缺省与文明圈推断、D.1 长度、**D.1a**、**D.1b**（易幻觉，全 skill 共用）、D.2 当代、手工 `visual_prompt`、D.3、D.4 当代装配与 7 要素 / 题材簇 / 单镜拼装 / 自检 | **`templates/storyboard_prompt.md`** → **「文生视频提示词（当代向真值）」** |\n| **D.2 非当代**路由、历史**流程层**、**文明圈与国别自洽**、占位符纪律、与 D.3/D.4 衔接说明 | **`templates/history_storyboard_prompt.md`** |\n| 族裔、**历史/非当代中式造型**与出现人物时的英文短语 | **`templates/visual_prompt_people_constraint.md`**（显式族裔锚定、**历史 / 非当代**节；兼 **`render_rules.md` §4** 表 4–6） |\n\n**仍仅在此处索引**：长音频多段 **`render_rules.md` §3·C.6**；字数上限 **`CHANJING_ONE_CLICK_VIDEO_REF_PROMPT_MAX_CHARS`**（兼容 **`AI_VIDEO_PROMPT_MAX_CHARS`**）。模板与 **`render_rules.md`** 实现冲突时以 **`render_rules.md`** 为准。\n\n---\n\n## 5. 自动化编排（`run_render.py`）\n\n**依赖**：鉴权；**`SKILLS_DIR`** / **`CHANJING_ONE_CLICK_VIDEO_SKILLS_ROOT`** / **`CHAN_SKILLS_DIR`**（§3）；`chanjing-tts` / `chanjing-video-compose` / `chanjing-ai-creation`\n\n**职责**：① TTS+`audio_task_state`；批合并与单批字数上限见 **`render_rules.md` §3·C.4**（`TTS_BATCH_MAX`）② 切段（**`render_rules.md` §3·C.5**）③ **有 AI 镜时先完成首条数字人并 `ffprobe`（含 `rotate`）→ 再按映射提交文生 `aspect_ratio`/`clarity`**（见 **`render_rules.md` §3·C.6**、`debug.ai_video_submit_params`）④ 与其余 DH/AI 并行 poll ⑤ AI 轨对齐该参照 `ffprobe` ⑥ ffmpeg concat ⑦ 多段文生在 `ref_prompt` 后追加英文分层；总长由 **`CHANJING_ONE_CLICK_VIDEO_REF_PROMPT_MAX_CHARS`**（兼容 **`AI_VIDEO_PROMPT_MAX_CHARS`**）约束\n\n**不做**：不产 plan/script/storyboard；不自动非当代/当代；不用 `list_tasks.py` 当代次（**`render_rules.md` §4 表项 8**）\n\n**手工编排**：仍须满足 **`render_rules.md` §3、§4** 与 §5；§3 细化（如 `silencedetect`、`minterpolate`、参照轨码率、同套切段音频换形象、TTS 批间静音等）**全部保留**。\n\n**输入 MVP**\n\n| 字段 | 必填 | 说明 |\n|------|------|------|\n| `full_script` | 是 | 与各镜 `voiceover` 按 `scene_id` 拼，`norm` 一致 |\n| `scenes` | 是 | `scene_id`、`voiceover`、`use_avatar`；AI 镜 `ref_prompt`（**`storyboard_prompt.md`** / **`history_storyboard_prompt.md`**；§4.2）；可选 `subtitle` |\n| `audio_man` | 是 | 宜与所选数字人形象的 `audio_man_id` 一致 |\n| `person_id`/`avatar_id` | 条件 | 有 DH 镜必填 |\n| `figure_type` | 否 | 与当次 `list_figures.py` 所选形象行的 `figure_type` 一致（公共多形态时必填） |\n| `subtitle_required` | 否 | 默认 false；为 true 时数字人镜烧录字幕（`--subtitle show`） |\n| `speed`/`pitch` | 否 | 默认 1/1 |\n| `ai_video_duration_sec` | 否 | 5 或 10，默认 10 |\n| `model_code` | 否 | 默认 **`CHANJING_ONE_CLICK_VIDEO_CREATION_MODEL_CODE`**（兼容 **`AI_VIDEO_MODEL`**）或 `Doubao-Seedance-1.0-pro`；creation_type=4；不传 `ref_img_url` |\n| `max_retry_per_step` | 否 | 默认 1（§6） |\n\n```bash\npython scripts/run_render.py --input workflow.json --output-dir ./outputs/run1\n```\n\n**输出**：`final_one_click.mp4`；`workflow_result.json`；`work/`  \n\n---\n\n## 6. 输入（请求体）\n\n**norm**：去 `\\r`、首尾空白；空→空串；与 **`run_render.py`** 一致。口播：先 `full_script`，再 `script`→`copy_text`→`input_script`→`content` 首个非空。无 `topic`：首句代选题（40 字内遇句末标点截，否则 24 字）。`null`/合并 **§4.1**。\n\n| 字段 | 必填 | 说明 |\n|------|------|------|\n| `topic` | 条件 | 无则见首句规则；建议 ≥5 字 |\n| `industry`/`platform`/`style` | 否 | `industry` 空；platform/style：`DEFAULT_*` 或 `douyin`/`观点型口播` |\n| `duration_sec` | 否 | `DEFAULT_DURATION` 或 60；策划参考 |\n| `use_avatar` | 否 | 默认 true |\n| `avatar_id`/`voice_id` | 否 | 空；**不得**用环境变量兜底音色或数字人；须在 `workflow.json` 写明 `audio_man`/`person_id`（及有 DH 镜时的 `figure_type`），由 Agent 按当次任务调用 `list_voices.py` 与 `list_figures.py`（来源与 **`video_plan`** / 用户指定一致）**对比 `name`、形态、画幅、`audio_name` 等后**选型；**禁止**未比较即取列表最前几条；**默认偏好年轻数字人**（见 **§3**） |\n| `subtitle_required` | 否 | 默认 false（数字人成片不烧录字幕；`run_render` 传 `hide`） |\n| `cover_required` | 否 | 默认 true |\n| `strict_validation`/`allow_auto_expand_topic`/`max_retry_per_step` | 否 | true/false/1 |\n| `full_script` | 否 | 默认空 |\n| `script_title`/`script_hook`/`script_cta` | 否 | 默认空 |\n| `script`/… | 否 | 见上文口播顺序 |\n\n---\n\n## 7. 输出 JSON\n\n| 键 | 含义 |\n|----|------|\n| `status` | success / partial / failed |\n| `video_plan` | Plan |\n| `script_result` | title、hook、full_script、cta |\n| `storyboard_result.scenes[]` | scene_id、duration_sec、voiceover、subtitle、visual_prompt、use_avatar |\n| `render_result` | video_file、scene_video_urls、render_path、degrade_log |\n| 其它 | error、debug… |\n\n**渲染无降级**：任一步失败即中断，不自动改为仅 DH 或仅 AI 成片。**partial**：未成 success（如 `run_render` 异常仍写 `workflow_result.json`）；**不**表示允许上述降级，**不**免 **`storyboard_prompt.md`·D.1b** 类质检。成功 `degrade_log`=`[]`；失败尽量保留已产出文案与分镜。\n\n---\n\n## 8. 硬性约束\n\n表在 **`templates/render_rules.md` §4**；与 `ref_prompt` 交叉见 **`storyboard_prompt.md`** / **`history_storyboard_prompt.md`**（**§4.2** 指针）。本节为锚点。\n\n---\n\n## 9. 限制\n\n- 本地 mp4；不上传  \n- AI 单段常 5–10s；长口播多段  \n- 成片时长=TTS 总轨；可与 `duration_sec` 不符  \n- **TTS**：整轨优先、超长少批合并；单批上限与合并策略（含 `TTS_BATCH_MAX`）以 **`render_rules.md` §3·C.4** 为准  \n- 文生失败可能为平台/模型；试增 `max_retry_per_step`、短 `ref_prompt`、拆镜；查 `workflow_result.json`","tags":["chanjing","one","click","video","creation","chan","skills","chanjing-ai","agent-skills","claude-code-skills","openclaw-skills"],"capabilities":["skill","source-chanjing-ai","skill-chanjing-one-click-video-creation","topic-agent-skills","topic-claude-code-skills","topic-openclaw-skills","topic-skills"],"categories":["chan-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/chanjing-ai/chan-skills/chanjing-one-click-video-creation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add chanjing-ai/chan-skills","source_repo":"https://github.com/chanjing-ai/chan-skills","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 14 github stars · SKILL.md body (12,706 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T13:03:31.044Z","embedding":null,"createdAt":"2026-04-19T00:40:59.527Z","updatedAt":"2026-04-22T13:03:31.044Z","lastSeenAt":"2026-04-22T13:03:31.044Z","tsv":"'/.chanjing':544 '/.chanjing/credentials.json':753 '/cdn':664 '/outputs/run1':109,1313 '/success':154 '0600':458 '0700':457 '1':157,213,215,427,898,959,963,1303 '1.0':1288 '1/1':1258 '10':1266,1268 '10s':1565 '2':221,255,906 '20':142,910 '24':1350 '3':22,227,229,267,512,862,882,914,937,942,944,1044,1082,1101,1108,1122,1172,1176,1430,1584 '3.1':179,180,276,411 '3.2':78,188,294,417,439,469,478,489 '4':158,231,828,939,946,948,1037,1039,1166,1173,1292,1547 '4.1':132,830,1354 '4.2':166,199,955,975,1215,1554 '40':1347 '5':28,32,173,203,238,431,888,938,960,1066,1175,1264,1362,1564 '6':169,248,843,949,1040,1304,1320 '60':1381 '7':159,1007,1473 '8':23,160,1168,1543 '8000':583 '9':1557 'access':743 'agent':282,314,480,1409 'agentpolici':76,424,484 'ai':59,239,245,589,606,704,879,928,931,1056,1092,1111,1132,1151,1209,1259,1281,1522,1562 'ai/mux':935 'allow':1448 'alway':486 'api':11,287,536,638,654,661 'app':738 'aspect':1117 'audio':304,332,335,368,371,386,406,851,1096,1218,1222,1399,1422 'auth.py':723 'auto':1449 'avatar':855,1208,1228,1384,1388,1502 'base':529,537,657,662 'bash':1305 'batch':1104,1580 'brief':901 'c.4':228,1102,1585 'c.5':883,1109 'c.6':945,1045,1123 'chan':44,119,565,1079 'chan-skil':43 'chanj':2,10,51,54,58,96,113,234,244,271,443,448,527,535,538,548,559,573,594,655,660,699,703,715,748,755,925,930,1047,1073,1084,1087,1091,1142,1273 'chanjing-ai-cr':57,243,702,929,1090 'chanjing-credentials-guard':270,714 'chanjing-one-click-video-cr':1,95 'chanjing-tt':50,1083 'chanjing-video-compos':53,233,698,924,1086 'char':580,593,615,1054,1060,1149,1155 'clariti':1119 'clawhub':89,93 'cli':62,172,708 'click':4,98,115,561,575,596,1049,1075,1144,1275 'click.mp4':679,766,1317 'clientpermiss':75 'code':600,604,1270,1279 'common':328,345 'compos':56,236,701,927,1089 'concat':252,684,1136 'config':449,549,756 'content':1342 'copi':1338 'count':137,875 'cover':1441 'creation':6,60,100,246,598,705,932,1093,1277,1290 'credenti':272,445,540,716,750 'credentials.json':454,545 'cta':1467,1491 'customis':329,401 'cwd':800 'd.0':989 'd.1':983,991 'd.1a':993 'd.1b':994,1537 'd.1c':366 'd.2':999,1015 'd.3':1004 'd.3/d.4':1023 'd.4':984,1005 'debug':1516 'debug.ai':1124 'default':1371,1378 'degrad':1512,1540 'descript':420 'dh':923,1232,1404,1520 'dh/ai':1129 'digit':612 'dir':108,112,121,298,446,450,467,541,550,552,567,675,757,774,782,817,1072,1081,1312 'dir/credentials.json':751 'doubao':1286 'doubao-seed':1285 'douyin':1373 'download_result.py':791 'durat':127,863,1261,1375,1379,1495,1571 'environ':66 'error':1515 'expand':1450 'expir':745 'fail':1481 'fals':1248,1435 'ffmpeg':17,34,251,295,630,690,867,1135 'ffprobe':18,38,296,640,691,872,1113,1134 'figur':308,358,360,362,857,1234,1240,1406 'file':1506 'final':677,764,1315 'first':611 'full':966,1191,1334,1458,1489 'guard':273,717 'height':364,405 'hide':1440 'history_storyboard_prompt.md':165,197,922,954,1214,1553 'hook':908,1465,1488 'https':461,651 'human':613 'id':307,337,370,408,739,854,856,1198,1205,1224,1227,1229,1389,1391,1402,1494 'img':1295 'industri':1364,1368 'input':104,1308,1340 'json':346,1475 'key':288,741 'list_figures.py':325,343,1238,1413 'list_tasks.py':1163 'list_voices.py':323,1411 'llm':286,292 'log':1513,1541 'man':305,333,336,369,407,852,1219,1223,1400 'manifest':182 'manifest.yaml':65,77,83,86,178,275,415,422,437,482,501,505,519 'max':579,592,614,1053,1059,1105,1148,1154,1297,1452,1581,1590 'md':511 'minterpol':1180 'model':599,603,608,1269,1278,1283 'mp4':254,1560 'mvp':1187 'name':357,372,387,403,1419,1423 'norm':1200,1323 'null':129,833,838,1352 'one':3,97,114,560,574,595,678,765,1048,1074,1143,1274,1316 'open':653 'open-api.chanjing.cc':533 'open_login_page.py':278,476,719 'openapi':444,528,539,656,749 'os.environ':624 'output':107,466,674,773,777,781,794,797,803,816,1311 'output-dir':106,465,673,772,780,815,1310 'page':350 'page-s':349 'param':1127 'partial':153,957,1480,1524 'path':1511 'per':1299,1454,1592 'permiss':74 'person':306,853,1226,1401 'pitch':1255 'plan':218,317,376,899,902,970,1416,1483,1484 'plan/script':279 'plan/script/storyboard':1159 'platform':1365 'platform/style':1370 'poll':1131 'primaryenv':435 'pro':1289 'prompt':162,194,242,578,586,591,951,978,1003,1052,1058,1139,1147,1153,1212,1500,1550,1596 'python':47,102,707,1306 'r':1325 'ratio':1118 'ref':161,193,241,577,585,950,977,1051,1138,1146,1211,1294,1549,1595 'render':211,429,693,940,973,1438,1503,1510,1529 'render_rules.md':156,191,204,226,881,936,941,958,962,1036,1043,1062,1064,1100,1107,1121,1165,1171,1583 'requir':1245,1432,1442 'result':1486,1504 'retri':1298,1453,1591 'root':118,564,1078 'rotat':1115 'run':94,210,428,692,1437,1528 'run_render.py':33,80,170,201,569,621,632,672,771,845,965,1068,1330 'scene':135,136,874,968,1197,1202,1204,1493,1507 'script':907,967,971,1192,1335,1337,1341,1459,1462,1464,1466,1470,1485,1490 'script_prompt.md':148,913 'scripts/run_render.py':103,495,1307 'sec':128,864,1262,1376,1496,1572 'secret':740 'seedanc':1287 'show':1253 'silencedetect':1179 'size':351 'skill':45,111,117,120,208,290,297,488,497,521,551,563,566,721,727,786,789,805,997,1071,1077,1080 'skill-chanjing-one-click-video-creation' 'skill.md':807 'skills/chanjing-credentials-guard/skill.md':827 'skills/chanjing-tts':556,697 'slug':90 'sourc':326,344 'source-chanjing-ai' 'speed':1254 'state':1098 'status':1478 'step':1300,1455,1593 'storyboard':915,972 'storyboard_prompt.md':145,164,196,917,953,1213,1536,1552 'storyboard_result.scenes':1492 'strict':1446 'style':1366 'submit':1126 'subprocess':695 'subtitl':1217,1244,1252,1431,1498 'success':1479,1526 'task':1097 'templat':25 'templates/history_storyboard_prompt.md':1025 'templates/render_rules.md':687,1546 'templates/storyboard_prompt.md':1012 'templates/visual_prompt_people_constraint.md':1030 'test':893 'text':1339 'titl':1463,1487 'token':744 'topic':1345,1358,1451 'topic-agent-skills' 'topic-claude-code-skills' 'topic-openclaw-skills' 'topic-skills' 'true':1250,1387,1445 'true/false/1':1457 'tts':13,52,222,810,871,933,1085,1095,1103,1183,1568,1574,1579 'type':139,309,320,359,361,858,1235,1241,1291,1407 'url':463,530,658,667,669,1296,1509 'use':1207,1383,1501 'valid':1447 'video':5,55,99,116,138,217,235,316,319,375,562,576,590,597,607,666,700,900,926,1050,1057,1076,1088,1125,1145,1152,1260,1276,1282,1415,1482,1505,1508 'video_brief_plan.md':150,877,905 'visual':1002,1499 'voic':1390 'voiceov':141,617,919,1195,1206,1497 'webbrowser.open':475,712 'width':363,404 'work':681,768,819,1319 'workflow.json':105,311,860,1309,1397 'workflow_result.json':680,767,1318,1531,1599 'yaml':500 '一致':338,367,502,1201,1225,1242,1331 '一键式视频渲染器':7 '一键成片工件':763 '一键调用':9 '上传前缓存等':813 '上限':587,868 '下列':514 '下常见':676 '下执行':801 '下的':818 '不':1532,1534 '不上传':1561 '不产':1158 '不传':1293 '不做':1157 '不含':848 '不在此重复链路':432 '不增业务规则':205 '不得':1394 '不执行本渲染脚本时可不装':639 '不改其它':487 '不用':1162 '不符':1573 '不自动改为仅':1519 '不自动非当代':1160 '不覆盖':834 '不适合':262 '不重复':181 '与':24,324,374,416,421,494,1022,1174,1329,1412,1548 '与其余':1128 '与出现人物时的英文短语':1029 '与各':720 '与各子':520 '与各镜':1194 '与当次':1237 '与持久性表':471 '与数字人轨对齐':42 '与本文为准':506 '与篇首':499 '与镜内音频合成':247 '严格模式模糊则失败':896 '中':483 '中含青年':388 '中老年等气质时':398 '中间音频':682 '临时':808 '为':1249 '为准':87,192,198,513,688,873,1065,1586 '为据':418 '主凭据':433 '二进制':72,185,492,627 '交叉见':1551 '产品线':795 '仅':209 '仅当选题或用户明确要求成熟':396 '仅文案':263 '仅来自':859 '仅渲染':964 '仅编排纯':637 '仍仅在此处索引':1041 '仍须满足':1170 '以':85,870,1582 '以下对本':726 '以及接口':663 '以后若源码增加对应':623 '以本仓库源码':504 '以注册表为准':91 '任一步失败即中断':1518 '任务名':778 '任务结束后按需保留或删除该目录':783 '传':1439 '位置':125 '何时不用':257 '何时用':256 '你好':892 '使用':122 '使用命令':88 '依赖':1069 '信任与出站行为':460 '信任边界':176 '修订以模板为准':981 '做什么':214 '做拼接':19 '元气':393 '先':1333 '免':1535 '全':996 '全部保留':1185 '公共多形态时必填':1243 '公共数字人选型':339 '共用':998 '其它':1514 '其它下载类脚本':784 '具体以当次命令与':686 '具体调用方式见':31 '典型位置':734 '典型副作用':470 '兼':1035 '兼容':447,534,547,588,605,659,754,1055,1150,1280 '内容':124 '再':1336 '再按映射提交文生':1116 '再由':568 '再选对应人设':399 '写入什么':733 '写明':1398 '冲突':84,189 '凭据':175 '凭据与信任边界':413 '凭据文件':822 '凭据模型':71 '凭据状态':441,736,824 '凭据缺失或引导登录时':710 '凭据路径与字段见':274 '出站':650 '分段视频':683 '分辨率':40 '分镜':220,240,280 '切段':133,812,1106 '切段与':878 '列表等':685 '删除该文件':760 '刷新后的':742 '前置条件':268 '副作用':186 '副作用与落盘':493 '功能说明':8 '勿':301,761 '勿回显完整密钥':452 '勿将':453 '勿未经比较直接取页首':410 '单批上限与合并策略':1577 '单段常':1563 '单镜拼装':1010 '占位串':890 '占位符纪律':1021 '历史':1018,1027,1032 '去':1324 '去空白':887 '参照轨码率':1181 '及':442 '及同仓库子':496 '及子进程':846 '及有':1403 '及本文':68 '取':327 '变量':523 '口播':1332 '口播与画面混剪':260 '口播人设':377 '口播人设与选题语义':321 '口播全文':219 '只剪已有素材':266 '只取列表前几项':341 '只实现':202 '可与':1570 '可扩写':895 '可选':531,542,581,601,1216 '可通过路径与环境变量控制写入位置':730 '各':788 '各阶段用哪份模板见上列步骤':974 '合并':130,811,832,1353 '合成结果等到本地':787 '合规':73 '合规规则':510 '同上':641 '同上硬上限':920 '同套切段音频换形象':1182 '同样对比':402 '同表':479 '名称或':385 '后再定稿':356 '后追加英文分层':1140 '向上四级':571 '否':1236,1246,1256,1263,1271,1301,1367,1377,1385,1392,1433,1443,1456,1460,1468,1471 '否则':1349 '含':423,555,943,1114,1578 '含义':1477 '命名以仓库根':509 '唯一条文真值':980 '在代码中生效':516 '在候选内':354 '在技能目录或配合':110 '在预期':799 '外部':285 '外部二进制':626 '多在上述':814 '多段':934 '多段文生在':1137 '失败尽量保留已产出文案与分镜':1542 '奇偶镜':134 '如':318,891,1178,1527 '子':785 '子进程':171,689 '字':143,889,1351,1363 '字内遇句末标点截':1348 '字数上限':618,1046 '字段':1188,1355 '字段默认见':842 '字硬上限':911 '学生':392 '安全':174,412 '完成口播':12 '定制源':400 '宜与所选形象的':334 '宜与所选数字人形象的':1221 '实现冲突时以':1063 '审阅时可对照':419 '对比':1418 '对齐公共数字人轨':250 '封装':37,249 '封装音视频等':636 '将秘钥提交版本库':762 '小哥哥':390 '小姐姐':391 '少女':389 '工作流':126 '工作流编排':831 '布尔':840 '常与技能包名一致':92 '常见':508 '常见为某次任务下的':776 '平台保留':554 '年轻等正向信号时优先':395 '年龄感':381 '并行':1130 '应同步更新本表':625 '建议':1361 '异常仍写':1530 '当代':1000,1161 '当代向':988 '当代向真值':1014 '当代次':1164 '当代装配与':1006 '当前本仓库的':620 '形态':1420 '必填':1189,1356 '必要时增大':348 '必选路径不依赖外部':291 '必需性':524,628 '必须可用的二进制或等价封装':30 '性别':378 '总轨':1569 '总长由':1141 '成功':961,1539 '成片':1523 '成片命令':26 '成片时长':869,1567 '或':796,1265,1284,1372,1380 '或仅':1521 '或同仓库下直接':46 '或始终传':802 '或执行':713 '或混用':212 '或翻页':352 '或脚本约定子目录':820 '或迁移':759 '所在目录':546 '所选形象行的':1239 '手工':1001 '手工编排':1169 '手工编排子':207 '执行':206 '执行脚本时的典型副作用':646 '批合并与单批字数上限见':1099 '批间静音等':1184 '拆镜':1597 '拉取候选':347 '拉取媒体':464 '拒收':894 '拼':1199 '拼接':35,634 '持久性变更范围与用户可控性':725 '持久性表':440 '指定':775 '指针':167,979,1555 '按':315,1196 '按实现与环境变量读取':847 '按当次任务调用':1410 '按类':647 '按返回':462 '按镜切音频':230 '推断':572 '推荐名':515 '提交版本库':455 '敏感与合规':451 '数字人':850 '数字人与音色':300 '数字人分镜':232 '数字人合成':14 '数字人成片不烧录字幕':1436 '整数校正':841 '整段':584 '整段优先':223 '整轨优先':1575 '文明圈与国别自洽':1020 '文本切段':147 '文生失败可能为平台':1587 '文生提示词':163 '文生视频与本地封装':15 '文生视频提示词':976,1013 '旋转元数据等':644 '旋转等元数据':41 '族裔':1026 '无':1344 '无凭证时子进程可':277 '无则见首句规则':1360 '无需':284 '旧名仍兼容':517 '时必需':633 '时数字人镜烧录字幕':1251 '时长':39,643 '易幻觉':995 '是':1193,1203,1220 '是否匹配':382 '显式族裔锚定':1031 '有':1110,1231 '有活力的形象':384 '未在表中展开的缺省由':844 '未成':1525 '未比较即取列表最前几条':1427 '未要视频':265 '未设时依次尝试':558 '未读取':622 '本':289 '本仓库直连':101 '本地':253,281,1559 '本地文件':671 '本文不重复':982 '本机二进制与仓库布局':293 '本节为锚点':1556 '权威':397 '权限建议':456 '条件':1230,1359 '条数依实测与字幕轴':880 '条文以':195 '来源与':1414 '查':1598 '标题':264 '根级显式填写':312 '模型':1588 '模板':987 '模板与':1061 '模板见':904 '步骤':897 '步骤级说明见':426 '段':67 '每次任务在':310 '气质':379 '汇总指针':200 '流程层':1019 '浏览器':473,709 '渲染实现以':190 '渲染技术':151 '渲染无降级':1517 '状态':152 '环境变量':184,491,507 '环境变量与二进制以':414 '环境变量与机器可读声明':63 '环境变量键名与说明':64 '用于与数字人轨对齐':645 '用户如何控制':735 '用户指定一致':1417 '用户明确要生成短视频':261 '用环境变量兜底音色或数字人':1395 '用环境变量或仓库内缓存文件保存跨任务的':302 '用途':629 '由':313,770,1408 '画幅':1421 '画幅与':365 '的':718,722,790,806 '短':1594 '硬':144 '硬性约束':1544 '硬约束':155 '禁止':340,1426 '禁止为凑时长裁已定稿口播':884 '空':1327,1369,1393 '空串':1328 '等':61,299,409,747,769,792 '等与本次任务一致':330 '等变量':619 '等后':1424 '等的仓库根':557 '等目录中的':706 '等素材拉取':670 '策划参考':865,1382 '策略':177,481 '篇首':146 '类别':732 '类型':648 '类质检':1538 '约束':1156 '细则与字数见':225 '细化':1177 '经配置写入的':737 '绝对路径':798 '编排与安全细则见':21 '缺凭证时的':474 '缺省文生视频':602 '而言属':728 '而非隐式污染无关目录':731 '职责':1094 '职责与子进程见':430 '能力与管道':425 '自动化编排':1067 '自检':1011 '自脚本路径':570 '节':1034 '若与':82 '若与其它产品文档并列':503 '若有':373 '范围':986 '落盘':187 '落盘等细节见':468 '蝉镜':652 '行':825 '行业':380 '行为一致':724 '行为对齐':498 '衔接说明':1024 '表':947,1038 '表在':1545 '表文':985 '表格':183 '表格为配合':79 '表示允许上述降级':1533 '表项':1167 '要成片':259 '要素':1008 '覆盖':839 '覆盖足够条目':353 '见':27,436,477,518,861,876,912,1120,1429 '见上文口播顺序':1472 '观点型口播':1374 '规则汇编':829 '视布局而定':553 '设置推荐名或旧名':758 '试增':1589 '详见对应':804 '语义切分':916 '语境缺省与文明圈推断':990 '说明':522,526,609,649,1190,1357 '请求体':1322 '请求体字段与默认':168 '读取媒体分辨率':642 '调用':322 '调用同仓库下':696 '调用子技能脚本':48 '败则全败':903 '质检见':952 '超长少批合并':1576 '超长按分镜少批合并':224 '跑一键成片':631 '路径':434 '路径与写回行为另见':438 '路径与读写语义见上表':823 '路由':1017 '轨对齐该参照':1133 '转码':36,635 '转码与轨对齐':20 '输入':1186,1321 '输出':1314,1474 '过程文件':809 '运行依赖':29 '运行时契约':490 '返回的':665 '适合':258 '选型':1425 '选型后写入':331 '选用明确的':779 '选题':886 '选题或全文':216 '选题校验':131 '逐项对比':355 '通过':694 '速查':123 '逻辑':283 '部分外部文档中的':610 '配置脚本尽量设置':459 '重试':956 '鉴权':269,1070 '鉴权链可能':711 '键':1476 '键名':69 '镜':1210 '镜必填':1233 '镜时先完成首条数字人并':1112 '镜时的':1405 '长口播多段':1566 '长度':992 '长音频多段':1042 '阅读的说明':81 '限制':1558 '除非用户要求':885 '随输出目录一并管理':821 '集成':16 '青春':394 '非':485,837,866 '非当代':921,1016,1033 '非当代中式造型':1028 '音色':849 '音频':668 '音频驱动':237 '顺序':835,969 '须在':1396 '须用':342 '须自行判断是否信任蝉镜主机与链接':472 '预期内副作用':729 '题材簇':1009 '首个分镜':918 '首个数字人分镜':616 '首个非空':1343 '首句代选题':1346 '首尾空白':1326 '首次配置见':826 '首段与首镜对齐':909 '首镜':140 '首镜口播':149 '驱动':49 '默认':303,525,532,543,582,752,1247,1257,1267,1272,1302,1386,1434,1444 '默认值':70 '默认偏好年轻':383 '默认偏好年轻数字人':1428 '默认多在当前工作目录下':793 '默认空':1461,1469 '默认铺底':836","prices":[{"id":"5bcb0c92-0053-47ed-baf2-4c5824a3f442","listingId":"621f0550-e3e4-43e7-a3fa-3f7dddeffbaa","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"chanjing-ai","category":"chan-skills","install_from":"skills.sh"},"createdAt":"2026-04-19T00:40:59.527Z"}],"sources":[{"listingId":"621f0550-e3e4-43e7-a3fa-3f7dddeffbaa","source":"github","sourceId":"chanjing-ai/chan-skills/chanjing-one-click-video-creation","sourceUrl":"https://github.com/chanjing-ai/chan-skills/tree/main/skills/chanjing-one-click-video-creation","isPrimary":false,"firstSeenAt":"2026-04-19T00:40:59.527Z","lastSeenAt":"2026-04-22T13:03:31.044Z"}],"details":{"listingId":"621f0550-e3e4-43e7-a3fa-3f7dddeffbaa","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"chanjing-ai","slug":"chanjing-one-click-video-creation","github":{"repo":"chanjing-ai/chan-skills","stars":14,"topics":["agent-skills","claude-code-skills","openclaw-skills","skills"],"license":null,"html_url":"https://github.com/chanjing-ai/chan-skills","pushed_at":"2026-03-28T05:19:27Z","description":"蝉系openclaw 技能库，聚焦电商内容创作，提供实用的 AI 工具及技能包","skill_md_sha":"a36536f846d54a8de40d73734663bd5a5c1ec519","skill_md_path":"skills/chanjing-one-click-video-creation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/chanjing-ai/chan-skills/tree/main/skills/chanjing-one-click-video-creation"},"layout":"multi","source":"github","category":"chan-skills","frontmatter":{"name":"chanjing-one-click-video-creation","description":">-"},"skills_sh_url":"https://skills.sh/chanjing-ai/chan-skills/chanjing-one-click-video-creation"},"updatedAt":"2026-04-22T13:03:31.044Z"}}