自媒体 · 矩阵 · 批量 — 多平台视频矩阵发布与批量分发工具(Electron + CLI)
自媒体、自媒体矩阵、矩阵发布、矩阵运营、内容矩阵、视频矩阵、多平台矩阵、跨平台发布、批量发布、批量上传、批量分发、一键发布、多账号发布、多平台发布、本地视频发布、短视频矩阵、内容分发、账号矩阵、自动化发布、CLI 批量、命令行发布、无头发布、智能体编排、OpenClaw、MCP 发布、抖音矩阵、快手矩阵、小红书矩阵、百家号矩阵、哔哩哔哩矩阵、头条矩阵、视频号矩阵、番茄视频、番茄视频矩阵、MatrixMedia、矩媒、pubtw
📺 教程视频
自媒体矩阵发布工具(Electron)。支持图形界面与命令行(CLI)自动化,适合批量向多平台账号矩阵分发视频:
- 支持平台:Windows、macOS、CLI。
- CLI 登录:目前仅支持抖音(终端二维码 / puppeteer 无头)。
- CLI 发布:7 个平台已完整自动化——抖音、快手、百家号、哔哩哔哩、头条、视频号、小红书;番茄视频已接入配置与 GUI 登录,自动发布流程开发中。
- CLI 查询:
cli accounts实时检测登录态,cli history查看本机发布记录。
便于脚本与智能体编排。
本项目的 CLI 被刻意设计为 AI 工具无关 / 框架无关 的外部命令:只要你的工具能调用 shell、读取退出码或 JSON stdout,就能直接对接 —— 包括但不限于:
- OpenClaw
- Hermes
- Claude Code、Cursor、Cline、Aider 等编程智能体
- Dify、n8n、LangChain、CrewAI、AutoGen 等工作流 / 多智能体编排框架
- 任何支持「外部命令 + argv + 退出码」约定的自动化平台(含自研调度器)
统一约定:
| 约定项 | 内容 |
|---|---|
| 进入 CLI 模式 | argv 含子串 cli 即进入无 GUI 流程(如 matrixmedia cli publish ...) |
| 子命令 | cli login | publish | accounts | history,每个均支持 --help |
| 退出码 | 0 成功 / 1 异常 / 2 参数错误 / 3 业务失败(登录、上传等) |
| 机器可读输出 | cli accounts --json 与 cli history --json 产出稳定 JSON,便于上游消费 |
| 登录态共享 | CLI 与 GUI 共用 persist:<phone><平台> session partition,互不侵扰 |
仓库顶部的 <!-- openclaw-integrable ... --> HTML 注释以 OpenClaw 的 schema 示例上述约定;其它平台如需类似的仓库级可发现标记,可沿用同一 argv-marker=cli 语义,或加上自家的注释标签(例如 <!-- hermes-integrable ... -->),互不冲突。
典型用法:在 AI 平台/智能体侧将本应用配置为 外部命令(command + args):cli login 仅用于完成 抖音 的扫码登录;其它平台请先在 GUI 登录一次,CLI 会复用同一 session partition;cli publish 对已自动化 7 平台一致可用(番茄视频待完善)。终端二维码与无头模式等行为见各子命令 --help。
仓库内置 mcp/ 子包,实现了 Model Context Protocol Server,让支持 MCP 的 AI 工具无需 shell 调用即可直接操作 MatrixMedia。
第一步:构建 MCP Server
cd mcp && npm install && npm run build第二步:配置 AI 工具
以下配置适用于 Claude Desktop、Cursor、Cline 等支持 MCP stdio transport 的工具。
将 MATRIXMEDIA_DIR 设为本仓库根目录的绝对路径。
Claude Desktop(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"matrixmedia": {
"command": "node",
"args": ["<MATRIXMEDIA_DIR>/mcp/dist/index.js"],
"env": {
"MATRIXMEDIA_DIR": "<MATRIXMEDIA_DIR>"
}
}
}
}Cursor / Cline(.cursor/mcp.json 或全局 MCP 配置,格式相同):
{
"mcpServers": {
"matrixmedia": {
"command": "node",
"args": ["<MATRIXMEDIA_DIR>/mcp/dist/index.js"],
"env": {
"MATRIXMEDIA_DIR": "<MATRIXMEDIA_DIR>"
}
}
}
}重启 AI 工具后,以下 3 个 tool 即可在对话中直接调用:
| Tool | 说明 |
|---|---|
list_accounts |
列出本机已登录账号,支持按平台过滤 |
list_history |
查询本机发布记录,支持按平台 / 状态 / 天数过滤 |
publish_video |
发布视频到指定平台(最长 35 分钟,支持定时发布) |
登录说明:所有平台均需在 GUI 中完成登录后再通过 MCP 发布。MCP 运行在无头 stdio 环境,无法弹出扫码窗口。
- 抖音
- 快手
- 百家号
- 哔哩哔哩
- 头条号
- 视频号
- 小红书
番茄视频创作平台 已写入 URL 配置,GUI 可添加账号并通过独立 BrowserWindow 登录;自动上传、填表、点发布及审核状态查询尚未实现。
| 用途 | URL |
|---|---|
| 登录页 | https://pugc.yueduwuxian.com/fqvideo/login |
| 发布页 | https://pugc.yueduwuxian.com/fqvideo/home/publish-video |
| 能力 | 状态 |
|---|---|
| GUI 添加账号 / 登录窗口 | 可用 |
| GUI / CLI 自动发布 | 待完善(会提示「番茄视频自动发布流程待完善」) |
| 登录 Cookie 自动检测 | 待完善 |
| 发布审核状态回查 | 待完善 |
CLI / 配置别名:fqsp、fanqie、fq、番茄视频
主要代码位置(完善发布流程时改这些文件):
| 文件 | 说明 |
|---|---|
src/renderer/utils/configUrl.js |
渲染层 URL(与主进程保持一致) |
src/main/config/ptConfig.js |
主进程 / CLI 用 URL |
src/main/services/upLoad/fqsp.js |
自动发布逻辑(当前为占位) |
src/main/services/zt/fqsp.js |
审核状态查询(当前为占位) |
src/main/services/getCookie.js |
登录态 Cookie 规则(待补充) |
侧栏图标(可选):将 fqsp.png 放到 src/renderer/layout/components/Sidebar/ptcion/。
从项目根或已安装应用启动时,在参数中加入 cli 即进入 CLI(不打开主窗口)。子命令一览:
| 子命令 | 支持平台 | 作用 |
|---|---|---|
cli login |
仅抖音(-p dy) |
抖音扫码登录 / puppeteer 无头登录 |
cli publish |
7 个已自动化平台(dy | tt | ks | blbl | bjh | sph | xhs);fqsp 已注册但发布逻辑待完善 |
发布本地视频(与 GUI「本地视频发布」等价) |
cli accounts |
全平台(含 fqsp 番茄视频) |
列出所有账号并实时检测 cookie 登录态 |
cli history |
全平台(含 fqsp 番茄视频) |
读取本机发布记录(pushData),支持平台/手机号/状态/时间过滤 |
非抖音平台的登录怎么办? 当前 CLI 登录只实现了抖音一家;其它平台先在 GUI 完成一次登录即可——CLI 通过同一
persist:<phone><平台>session partition 读取 cookie,后续cli publish/cli accounts会自动复用登录态。登录态过期时cli accounts会报cookie 已过期,此时回到 GUI 重登一次即可。
开发态调用示例:
ELECTRON_RUN_AS_NODE= electron . cli login --help
ELECTRON_RUN_AS_NODE= electron . cli publish --help
ELECTRON_RUN_AS_NODE= electron . cli accounts --help
ELECTRON_RUN_AS_NODE= electron . cli history --helpWindows NSIS 安装包从 0.4.5 起会在安装时自动把应用安装目录加入当前用户 PATH,并固定 CLI 命令名为 matrixmedia。安装完成并重新打开终端后,可直接执行:
matrixmedia cli login --help
matrixmedia cli publish --help
matrixmedia cli accounts
matrixmedia cli history -d 7macOS 的 .dmg 只是磁盘镜像,无法像 NSIS 那样自动写 PATH。把 app 拖进 /Applications 后,执行一次下面的命令创建符号链接即可:
sudo ln -sf /Applications/matrixmedia.app/Contents/MacOS/matrixmedia /usr/local/bin/matrixmedia之后在任意终端都能直接用 matrixmedia cli ...。若后续升级 app 只是覆盖安装(app 路径不变),符号链接仍然有效,无需重复执行。卸载时删除链接:
sudo rm /usr/local/bin/matrixmedia若无需永久写入,也可临时 alias:
alias mm='/Applications/matrixmedia.app/Contents/MacOS/matrixmedia'如果 Apple Silicon(M1/M2/M3)设备安装 arm64 包后提示“已损坏,无法打开”,通常不是安装包真的损坏,而是 macOS Gatekeeper 对未签名 / 未公证应用的拦截。x64 包在 Apple Silicon 上会通过 Rosetta 运行,系统校验路径可能不同,所以会出现 x64 可打开、arm64 被拦截的情况。
临时处理方式:
sudo xattr -rd com.apple.quarantine /Applications/matrixmedia.app
open /Applications/matrixmedia.app正式分发给普通用户时,建议使用 Apple Developer 的 Developer ID 证书对 macOS 包进行签名和公证。
- 中英文可执行文件名已统一为
matrixmedia,无需区分。 - 若环境变量
ELECTRON_RUN_AS_NODE被误开启,请先按提示关闭后再启动。 cli accounts/cli history仅读取本机数据,不会触发任何登录或发布动作,适合在 pipeline 里做 preflight 检查。
- 核心维护:@hanliang97
- 集成协作:OpenClaw、Hermes 等智能体 / 编排生态 — 本仓库顶部以
openclaw-integrable注释示例地显式声明 CLI 入口;cli login/cli publish/cli accounts/cli history的参数与退出码约定面向所有「外部命令型」AI 工具设计,任何遵循同样契约的平台(含自研调度器)都可直接接入,欢迎围绕 CLI 契约反馈与共建。 - AI 协作声明:部分 CLI 子命令(
cli accounts/cli history)、skills 文档(.cursor/skills/matrixmedia-cli-publish/)以及 README 的 CLI 章节由 Anthropic Claude(通过 Claude Code)、DeepSeek、OpenAI Codex、GPT 等 AI 工具辅助设计、实现与撰写;人类维护者负责需求决策、代码评审与合入。所有产出遵循本仓库的 GPL-2.0-only 授权条款,不因 AI 参与而改变许可。
欢迎通过 Issue / PR 参与共建。
- 本项目仅用于合法合规的学习与效率提升场景,请严格遵守各平台服务协议与当地法律法规。
- 请勿将本项目用于批量作弊、恶意营销、侵权搬运、刷量等违规用途,由此产生的风险与责任由使用者自行承担。
- 涉及账号、Cookie、本地素材等敏感数据时,请妥善保管并自行评估安全风险。
- 部分平台(如哔哩哔哩)可能需要人工参与(例如手动上传封面),请以平台当前页面规则为准。
国内gitee下载地址 https://gitee.com/gzlingyi_0/pubtw/releases/
github下载地址为 https://github.com/hanliang97/MatrixMedia/releases
用 MatrixMedia 了?填 5 题告诉我(2分钟,帮助决定下一步功能优先级)
国内文档地址 https://gitee.com/gzlingyi_0/pubtw/wikis/pages?sort_id=14772656&doc_id=7335804
yarn
yarn dev
yarn build