把一条视频批量发到 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 智能体能直接调起发布。

主要功能
- 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 按其公开公式给出,本站未复算。没有实际部署或发布测试证据,可用性以当前版本和各平台页面为准。用户反馈摘要
根据仓库 Issue 来看,反馈集中在平台发布失败与运行稳定性:视频号一直卡在「发布中」,该问题状态为待解决。提交者报告小红书上传后自动刷新、哔哩哔哩提示创作声明未完成、启动时主进程 JS 报错、Windows 百家号和小红书发布异常,这些状态均为已解决。另有提交者反映 Apple Silicon 上 x64 版经 Rosetta 2 运行约 10 到 20 分钟崩溃一次,建议提供 arm64 原生包。也有人询问登录态能维持多久、是否支持 Linux 容器部署,以及视频号挂剧等新需求。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:hanliang97(hanliang97)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库