中文资讯 掘金 AI Sat, 22 Aug 2026 正文 ok 486 words

手把手:将 Remotion 封装为 DeepSeek Harness 插件,一句话让 AI 生成视频

英文标题:手把手:把 Remotion 封装成 DeepSeek Harness 插件,一句话让 AI 出视频

本文介绍如何从零开始将 React 视频渲染框架 Remotion 封装为 DeepSeek Harness 插件,并注册 `render_video` 工具,让 AI 通过自然语言指令调用 Remotion CLI 渲染 MP4 视频。核心实现路径是 Harness 插件调用 Node.js 的 `execSync`,再通过 `npx remotion render` 执行视频渲染。文章梳理了插件开发中的具名导出、Schema 约束、工具注入顺序及 Windows PowerShell 路径解析等关键兼容性问题。对于开发者而言,这种方式可将文本生成、脚本编排和视频渲染串联,进一步构建自动化内容生产工作流。
打开原文相关 2 · 机会 0
media3.2 KB media589 B media20.9 KB media13.2 KB media19.2 KB media15.4 KB media13.4 KB media74.3 KB

中文

导语

DeepSeek Harness 的口号是“一切皆插件”。昨天我写了一篇教程,教大家为 Harness 编写文字插件;随后有朋友问:能不能让 AI 直接生成视频?

答案是可以。本文将从零开始,把 Remotion(React 视频渲染框架)封装为一个 Harness 插件,注册 render_video 工具,让 AI 在对话中通过一句话就能渲染出 MP4 视频。

读完后你将掌握:Harness 插件开发的完整流程、Remotion 命令行渲染调用、插件打包发布,以及 Windows 环境下的兼容性问题。

作者配图

一、原理:为什么 Remotion 能接入 Harness

两个工具能够对接,关键在于它们都对命令行非常友好:

组件 定位 关键能力
Remotion React 视频框架 每一帧都是 React 组件,支持通过 npx remotion render 命令行渲染
DeepSeek Harness 模型执行层 基于 Cordis 框架,“一切皆插件”;工具完成注册后可由 AI 调用

对接路径为:编写一个插件 → 注册 render_video 工具 → 在工具内部通过 execSync 调用 Remotion CLI → 将 MP4 输出到本地。

一切皆插件

一句话出片流程

目前 GitHub 上还没有现成的 dsh-remotion 官方插件,因为 Harness 直到 8 月 13 日才开源。社区当前的主流方案是 Claude Code / Codex + Remotion,而官方 remotion-dev/skills 已有超过 20 万次安装。本文教你自己实现一个,而不是推荐现成工具。

二、环境准备

2.1 Harness 工作台

npx @deepseek-ai/dsh web

在浏览器中访问 http://127.0.0.1:3080。

2.2 Remotion 项目

npx create-video@latest --yes --blank my-video
cd my-video
npm i

注意:Remotion 在渲染时会下载无头浏览器,国内网络环境下可能不稳定。可多尝试几次,或使用代理。

三、核心:插件代码

import { defineTool } from '@deepseek-ai/dsh-tools'
import { execSync } from 'child_process'
export const name = 'dsh-remotion'
export const inject = ['tools']
export function apply(ctx) {
  ctx.tools.register(defineTool({
    name: 'render_video',
    description: '根据传入的标题和文案,调用 Remotion 渲染一条短视频',
    parameters: {
      title: { type: 'string', required: true, description: '视频主标题' },
      caption: { type: 'string', required: true, description: '视频正文文案' },
      projectDir: { type: 'string', required: true, description: 'Remotion 项目绝对路径' }
    },
    output: { schema: { type: 'object', additionalProperties: false, properties: { path: { type: 'string', required: true } } },
    render: (_a, v) => [{ type: 'text', text: `视频已生成,${v.path}` }] },
    async execute(args) {
      const data = JSON.stringify({ title: args.title, caption: args.caption })
      const out = `${args.projectDir}/out/${Date.now()}.mp4`
      execSync(
        `npx remotion render src/index.ts Main out/video.mp4 --props='${data}'`,
        { cwd: args.projectDir, stdio: 'inherit' }
      )
      return { path: out }
    }
  }))
}

踩坑清单

  1. 具名导出:必须使用 export const name。如果写成 export default,注入声明会被静默忽略,插件会出现“看起来加载了,实际上不工作”的情况。
  2. Schema 约束:对象类型的输出必须包含 additionalProperties: false,否则注册时会直接报错。
  3. 注入顺序:inject: ['tools'] 表示等待工具注册表准备完成后再执行。
  4. Windows 专属问题:PowerShell 会预解析 ${Date.now()}。解决方式:
    • 改用 PowerShell 语法。
    • 或直接写死输出路径,例如 out/video.mp4。

路径配置

四、配置挂载

创建 cordis.yml:

- insert:
  - id: dsh-remotion
    name: '/绝对路径/你的目录/dsh-remotion.ts'

路径必须使用绝对路径,Cordis 不识别相对路径。

通过补丁方式启动:

pnpm dsh web --patch ./cordis.yml

随后可在对话中触发工具,例如:“用 render_video 做一条视频,标题写 AI 周报,文案写本周五个重要进展”。

五、提升视频质量:接入 Remocn 组件库

npx shadcn@latest add @remocn/blur-reveal

Remocn 是一个面向 solo 开发者和一人公司的组件库。通过一条命令即可引入现成的标题动画、转场和背景效果,避免从零开始编写弹簧动画。

金句配图

六、打包发布

在 package.json 中声明插件:

{
  "name": "dsh-remotion",
  "type": "module",
  "main": "dsh-remotion.ts",
  "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
}

发布后可通过以下命令安装:

dsh plugin --profile web add github:你的账号/你的仓库

Vibe Coding 提示:DSH 插件的结构采用“单文件 + apply 入口 + YAML”,天生适合由 AI 生成。可以直接将规范交给 Cursor 等工具,实现秒级产出。

七、局限与安全

维度 说明
版本 Harness 0.1.0 是预发布版本,接口可能变化;可尝鲜,但不建议直接用于生产环境
性能 Remotion 渲染消耗 CPU 和内存,旧设备需谨慎;批量生成视频建议使用官方 Lambda 方案
安全 插件等同于可在本机执行的代码,只应安装官方或高星评价插件
门槛 需要具备 TypeScript 和 React 基础,但相较学习剪辑软件仍更简单

总结

  • 核心链路:Harness 插件 → render_video 工具 → Remotion CLI → MP4。
  • 关键问题:具名导出、additionalProperties: false、Windows 路径解析。
  • 下一步:将日报插件与视频插件串联,实现从文字草稿到视频成片的自动化转换。

金句:真正的自动化,不是你学会了剪辑,而是你只需要说一句话,视频引擎就会自己把片子渲染出来。

English / 原文

导语

DeepSeek Harness 的口号是"一切皆插件"。昨天我写了篇教程教大家给 Harness 写文字插件,有朋友问:能不能让 AI 直接出视频?

答案是可以。本文从零开始,把 Remotion (React 视频渲染框架)封装成一个 Harness 插件,注册 render_video 工具,让 AI 在对话里说一句话就能渲染出 MP4。

读完你将掌握:Harness 插件开发完整流程、Remotion 命令行渲染调用、插件打包发布,以及 Windows 环境下的兼容性坑。

作者配图

一、原理:为什么 Remotion 能接到 Harness 上

两个工具能对接,关键在于它们都"命令行友好":

组件 定位 关键能力
Remotion React 视频框架 每帧 = React 组件,支持 npx remotion render 命令行渲染
DeepSeek Harness 模型执行层 基于 Cordis 框架,一切皆插件,工具注册后 AI 可调用

对接路径:写一个插件 → 注册 render_video 工具 → 工具内部 execSync 调用 Remotion CLI → MP4 输出到本地。

一切皆插件

一句话出片流程

目前 GitHub 上还没有现成的 dsh-remotion 官方插件(Harness 于 8 月 13 日才开源)。社区主流是 Claude Code / Codex + Remotion,官方 remotion-dev/skills 已有 20 万+ 次安装。本文教你造一个,而不是安利现成货。

二、环境准备

2.1 Harness 工作台

npx @deepseek-ai/dsh web

浏览器访问 http://127.0.0.1:3080。

2.2 Remotion 项目

npx create-video@latest --yes --blank my-video
cd my-video
npm i

坑 :Remotion 渲染时会下载无头浏览器,国内网络可能不稳定,多试几次或挂代理。

三、核心:插件代码

import { defineTool } from '@deepseek-ai/dsh-tools'
import { execSync } from 'child_process'
export const name = 'dsh-remotion'
export const inject = ['tools']
export function apply(ctx) {
  ctx.tools.register(defineTool({
    name: 'render_video',
    description: '根据传入的标题和文案,调用 Remotion 渲染一条短视频',
    parameters: {
      title: { type: 'string', required: true, description: '视频主标题' },
      caption: { type: 'string', required: true, description: '视频正文文案' },
      projectDir: { type: 'string', required: true, description: 'Remotion 项目绝对路径' }
    },
    output: { schema: { type: 'object', additionalProperties: false, properties: { path: { type: 'string', required: true } } },
    render: (_a, v) => [{ type: 'text', text: `视频已生成,${v.path}` }] },
    async execute(args) {
      const data = JSON.stringify({ title: args.title, caption: args.caption })
      const out = `${args.projectDir}/out/${Date.now()}.mp4`
      execSync(
        `npx remotion render src/index.ts Main out/video.mp4 --props='${data}'`,
        { cwd: args.projectDir, stdio: 'inherit' }
      )
      return { path: out }
    }
  }))
}

踩坑清单

  1. 具名导出 :必须 export const name,写 export default 注入声明会被静默丢弃,插件"看着加载了其实不干活"。
  2. Schema 约束 :对象类型输出必须带 additionalProperties: false,否则注册直接报错。
  3. 注入顺序 :inject: ['tools'] 表示等工具注册表就绪再执行。
  4. Windows 专属坑 :PowerShell 会把 ${Date.now()} 预解析。解决方案:
    • 改用 PowerShell 语法
    • 或写死输出路径 out/video.mp4

路径配置

四、配置挂载

创建 cordis.yml:

- insert:
  - id: dsh-remotion
    name: '/绝对路径/你的目录/dsh-remotion.ts'

路径必须绝对路径,Cordis 不认相对路径。

带补丁启动:

pnpm dsh web --patch ./cordis.yml

对话中触发:「用 render_video 做一条视频,标题写 AI 周报,文案写本周五个重要进展」。

五、提升视频质量:接入 Remocn 组件库

npx shadcn@latest add @remocn/blur-reveal

Remocn 是面向 solo 开发者/一人公司的组件库,一条命令引入现成的标题动画、转场、背景,避免从零写弹簧效果。

金句配图

六、打包发布

package.json 声明插件:

{
  "name": "dsh-remotion",
  "type": "module",
  "main": "dsh-remotion.ts",
  "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
}

发布安装:

dsh plugin --profile web add github:你的账号/你的仓库

Vibe Coding 提示 :DSH 插件结构(单文件 + apply 入口 + YAML)天生适合 AI 生成,可直接把规范丢给 Cursor 等工具秒级产出。

七、局限与安全

维度 说明
版本 Harness 0.1.0 预发布版,接口会变,先尝鲜别上生产
性能 Remotion 渲染吃 CPU/内存,老机器谨慎;批量出片用官方 Lambda 方案
安全 插件 = 本机可执行代码,只装官方或高星插件
门槛 需 TypeScript + React 基础,比学剪辑软件简单

总结

  • 核心链路:Harness 插件 → render_video 工具 → Remotion CLI → MP4
  • 关键踩坑:具名导出、additionalProperties: false、Windows 路径解析
  • 下一步:把日报插件 + 视频插件串联,实现文字草稿自动转视频成片

金句 :真正的自动化不是你学会了剪辑,而是你只需要说一句话,视频引擎自己就把片子渲出来了。