把一条视频批量发到 8 个平台(MatrixMedia)

MatrixMedia(矩媒)是一个用 JavaScript 与 Vue 写的多平台视频矩阵发布工具,同时提供 Electron 图形界面、CLI 命令行、HTTP API 与 MCP Server 四种接入方式,面向需要把同一条视频分发到抖音、快手、小红书等多个账号的自媒体运营者。这篇文章帮你判断它的自动化边界在哪、哪些平台必须先在 GUI 登录、以及它在多账号发布这类需求里的真实限制。

手上同时运营抖音、快手、小红书、视频号几个账号的人,最耗时间的环节往往不在拍和剪,而在发。同一条视频要在每个平台的创作者后台上传一次,标题、封面、标签、合集都得重新填一遍。账号数量翻倍,这部分重复劳动就跟着翻倍。

MatrixMedia(矩媒)是用 JavaScript 与 Vue 开发的多平台视频发布工具,输入本地视频文件或 http(s) 链接,批量投递到抖音、快手、小红书等 8 个平台。

它的形态是一套 Electron 桌面应用,外加一条无 GUI 的命令行通道。账号登录在图形界面里完成,发布动作交给 puppeteer 驱动浏览器自动执行。图形界面之外还留了 HTTP 接口和 MCP Server,目的是让脚本、工作流引擎和 AI 智能体能直接调起发布。

MatrixMedia 矩媒的应用界面示意图

主要功能

  • 8 个平台的一键发布:抖音、快手、百家号、哔哩哔哩、头条号、视频号、小红书、番茄视频。GUI 与 CLI 都覆盖这 8 个平台,发布参数里的 file 既接受本地路径,也接受 http(s) 远程 URL,远程文件会先自动下载,上传完成后清理临时文件。
  • CLI 子命令体系:子命令为 cli login | publish | publish-article | accounts | history,每个子命令都支持 --help。判断逻辑很直接,只要启动参数里含子串 cli 就进入无 GUI 流程,例如 matrixmedia cli publish ...。
  • 机器可读的返回值:退出码约定为 0 成功、1 异常、2 参数错误、3 业务失败(登录、上传等)。cli accounts --json 和 cli history --json 输出稳定 JSON,供上游程序消费。
  • 本地 HTTP 接口:GUI 启动之后,其它程序可以 POST http://127.0.0.1:30088/publish 触发发布,适合已经有自己调度系统的团队。
  • MCP Server:仓库内置 mcp/ 子包,实现了 Model Context Protocol Server,提供 list_accounts、list_history、publish_video、publish_article、get_account_stats、sync_account_stats、get_work_stats 共 7 个 tool,支持 MCP 的 AI 工具不必走 shell 就能调用。
  • 小红书的真实浏览器发布模式:针对小红书对 Electron 内置窗口的自动化检测,可以切换到本机已安装的 Google Chrome / Chromium 发布。开启后自动从内置窗口同步登录态 Cookie,Chrome 路径为全局配置,保存在 userData/chrome-config.json;检测不到 Chrome 或启动失败时回退到内置窗口模式。
  • 账号数据统计:v0.11.8 新增了账号数据统计中心与三通道采集命令,配合 get_account_stats 这类 tool,可以按账号读取粉丝、播放、点赞、评论、收藏的快照数据。
  • 发布记录与失败排查:cli history 查询本机发布记录,v0.11.7 合并了历史记录 CSV 导出与失败截图相关的修复。

安装与依赖

官方推荐从发行包安装。国内走 Gitee 的 releases 页面,GitHub 上则是 github.com/hanliang97/MatrixMedia/releases。当前版本号已在 v0.11.x 序列,最近一次提交在 2026-10-07。

支持的系统为 Windows 与 macOS,CLI 另有独立入口。Release 记录里写明 Windows 只打包 x64 安装包。仓库里没有说明源码方式的完整构建步骤,这一点不要凭 package.json 推测。

只有 MCP Server 单独给了构建命令:

cd mcp && npm install && npm run build

MCP 依赖 Node 环境,通过 stdio 与 AI 工具通信,因此运行在无头环境里,弹不出扫码窗口。所有平台都必须先在 GUI 里登录一次,MCP 才能发得出去。

最短能跑通的用法

先确认 CLI 可用,把子命令的帮助信息调出来看参数:

matrixmedia cli login --help
matrixmedia cli publish --help

CLI 登录目前只覆盖抖音与视频号,走终端二维码,抖音另外支持 puppeteer 无头模式。其它平台先在 GUI 登录一次,CLI 会复用同一个 persist:<phone><平台> session partition。

发布视频时指定平台与媒体来源即可,远端地址会先下载再上传:

matrixmedia cli publish --file /path/to/video.mp4

如果用 MCP,配置长这样,把 MATRIXMEDIA_DIR 换成仓库根目录的绝对路径:

{
  "mcpServers": {
    "matrixmedia": {
      "command": "node",
      "args": ["/mcp/dist/index.js"],
      "env": {
        "MATRIXMEDIA_DIR": ""
      }
    }
  }
}

这份配置在 Claude Desktop、Cursor、Cline 之间格式一致,路径分别是 Claude Desktop 的 claude_desktop_config.json 与 Cursor / Cline 的 .cursor/mcp.json。

关键参数

  • cli:出现在启动参数中即进入无 GUI 流程,这是切换模式的唯一开关。
  • --json:作用在 cli accounts 与 cli history 上,输出稳定 JSON 而不是人类可读文本。
  • --help:每个子命令都支持,参数细节以它为准,仓库里的命令速查表在 README 中被截断了一部分。
  • file:本地路径或 http(s) 地址,远程地址会自动下载、上传后清理。
  • 平台别名:番茄视频可以用 fqsp、fanqie、fq 或者中文名「番茄视频」。
  • MATRIXMEDIA_DIR:MCP Server 的环境变量,指向仓库根目录的绝对路径。
  • 端口 30088:GUI 启动后的本地 HTTP 发布接口,请求体格式见仓库的 docs/http-api.md。

结果在哪里看

发布结果有三处出口。命令行侧用 cli history 查本机发布记录,用 cli accounts 实时检测登录态;GUI 侧打开后默认停在「项目详情」页,里面列着 HTTP、MCP、CLI 三种接入说明和数据统计中心。番茄视频另外支持作品列表的审核状态回查,登录态靠 sessionid 判断。

失败排查主要看日志与截图,v0.11.7 合并了失败截图与历史记录点击相关的修复。请求体、字段与返回结构的完整定义在 docs/http-api.md、docs/cli.md、docs/mcp.md 三份文档里。

实际使用中的坑

  • 视频号卡在「发布中」:已经登录,界面不报错也不成功,一直停在发布中状态,用户能从声音判断出发布页被调起了。这条 Issue 目前仍标记为待解决。
  • 小红书上传后自动刷新:视频传完之后页面自动刷新,导致发布流程断掉。这条已解决,也正是在这类平台上出现了「AI 托管」警告,才催生了后面用本机 Chrome 发布的模式。
  • Apple Silicon 上的 x64 包崩溃:有用户在 macOS 26.5、M4 芯片上运行 x64 版本,经 Rosetta 2 转译,正常操作大约 10 到 20 分钟崩溃一次,建议提供 arm64 原生包。该 Issue 已解决。
  • 哔哩哔哩创作声明未完成:上传失败并提示创作声明选择未完成,日志里能看到对应平台的发布页 URL。这条已解决。

8 个平台全部靠页面自动化驱动,平台前端改版会直接影响可用性,这是这类工具的固有风险,不是使用姿势问题。

和同类放在一起看

下面两个是能解决部分相同问题的项目,重合点在「本地视频文件 + 个人创作者 + 桌面端」,但它们不做多平台账号矩阵的自动发布,放在这里只是给选型的读者一个参照。

项目适合谁部署方式主要限制什么情况下选它更合适项目地址
MatrixMedia手上有多个国内短视频平台账号、要把同一条视频批量分发的矩阵运营者Electron 桌面应用,另有 CLI 与 MCP 子包CLI 登录只覆盖抖音与视频号,其余平台需先在 GUI 登录;发布依赖各平台页面结构需要一次把视频投到 8 个国内平台,并且希望用脚本或智能体调起发布MatrixMedia
ytDownloader需要从各站点批量抓取音视频素材到本地的用户桌面应用方向是下载,不做内容分发与账号矩阵管理素材采集环节,先把要用的视频存到本地aandrew-me/ytDownloader
Screenity需要在浏览器里直接录屏并简单标注的创作者浏览器扩展只负责录制,不涉及上传与多账号发布素材还在录制阶段,尚未进入分发环节alyssaxuu/screenity

如果你的需求里包含素材采集或录屏,MatrixMedia 帮不上忙,它不做下载也不做录制,这两步要交给别的工具完成。它覆盖的区间是从本地文件到各平台发布页这一段的自动化,把这段替掉之后,前面采集、录制、剪辑的环节仍要自己补齐。

授权与合规前提

这个项目通过模拟操作各平台创作者后台来完成发布,属于自动化发布工具的范畴。只应当把它用在自己拥有或已获授权的账号上。拿它去批量操作他人账号、绕过平台风控、刷量投放,会同时触碰平台服务条款和自动化访问相关的法律边界,账号封禁与法律责任都要自己承担。

小红书一侧已经出现「AI 托管」提示,说明平台在主动识别这类行为。切换到真实浏览器模式能降低被识别的概率,但不改变工具本身的自动化性质。开源许可证为 GPL-2.0,二次分发与修改需要遵循该许可证的条款。

适合谁

适合手上同时维护多个国内短视频平台账号、每天要把成批视频分发出去的自媒体矩阵运营者,也适合已经有自研调度系统、需要一个外部命令来完成最后一步上传的开发者——CLI 的退出码和 JSON 输出就是为这种对接准备的。

不适合只发单平台、偶尔发一两条的个人用户,手动上传反而更快。也不适合把它当成素材采集或剪辑工具的人:它从本地文件或视频 URL 起步,前面那些环节不在覆盖范围里。项目地址是 https://github.com/hanliang97/MatrixMedia,主要语言为 JavaScript,采用 GPL-2.0 许可证,当前 931 Star、123 Fork。

焚评:这个项目的量化评分

本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.3 分(满分 10)。下表是各维度的得分:

评分维度得分
热度动量(权重 25%)10.0 / 10
开发活跃(权重 25%)7.4 / 10
社区响应(权重 15%)10.0 / 10
文档质量(权重 15%)10.0 / 10
发布节奏(权重 10%)10.0 / 10
风险控制(权重 10%)10.0 / 10

评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。

内容核验说明

它把多平台分发的边界讲清楚了:8 个平台靠页面自动化驱动,CLI 登录只覆盖抖音和视频号,其余平台要先在 GUI 登录一次,MCP 跑在无头环境里发不出去。四种接入方式、退出码约定和 JSON 输出这些细节,对已有调度系统、只差最后一步上传的人能直接用。适合多账号矩阵运营者和做对接的开发者;只发单平台偶尔发一两条,或想找采集、剪辑工具的人不必看。

平台列表、CLI 子命令、端口与退出码来自项目 README 与 docs;星标、Fork、许可证等仓库指标及各条 Issue 来自 GitHub 公开页面,文中的数据来自原作者公开披露,诀.com 未独立验证。焚评评分由焚.com 按其公开公式给出,本站未复算。没有实际部署或发布测试证据,可用性以当前版本和各平台页面为准。

项目来源与说明

开源项目:hanliang97(hanliang97)

本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。

查看项目仓库