我用过多媒体分发 SaaS(小豆芽那类),点一下同步到十几个平台,方便,但账号 cookie 都上云、限流按月收费、平台一改版就等它修。今年我想转开源自托管——图的是账号攥在自己手里、能改代码、长期不付订阅费。也可能直接基于某个项目二开成自己的分发底座。
GitHub 上一搜,这类项目不少,star 从一万多到两百都有。但 star 高不等于能用,README 写得漂亮不等于代码实现了。所以我把 7 个候选全部 clone 到 /tmp/survey/ 下,逐个读代码——不读 README 的承诺,读 find/ls/grep 看真实实现。本文记的是扒完代码后的实况。
7 个候选一览
按 star 排:
| 项目 | star | 语言 | README 自我介绍 |
|---|---|---|---|
| dreammis/social-auto-upload | 14.2k | Python | 视频自动上传,抖音/小红书/视频号/TikTok/YouTube/B站 |
| wechatsync/Wechatsync | 6.2k | TS | 文章同步插件,公众号/头条/知乎/掘金/CSDN |
| leaperone/MultiPost-Extension | 2.9k | TS | 浏览器插件,图文视频,10+ 平台 |
| brightbeanxyz/brightbean-studio | 2.1k | Python | Django+Docker 自托管面板,国际平台 |
| gitcoffee-os/postbot | 1.2k | TS | 全能,国内 12+ 平台 |
| 3441293738/creatorhub | 1.0k | Python | FastAPI 面板,抖音/小红书/快手 |
| xueyc1f/turbopush-website | 218 | TS | 发布+定时+数据分析 |
扒完代码第一感受:star 和能不能用基本没关系,README 和代码对不上的比想象中多。
横向对比表(扒代码后的实况)
| 维度 | social-auto-upload | creatorhub | brightbean-studio | MultiPost | postbot | Wechatsync | turbopush |
|---|---|---|---|---|---|---|---|
| 最近 push | 07-31 | 08-13 | 08-13 | 08-01 | 07-30 | 05-27 | 03-27 |
| 30天 commit | 11 | 61 | 21 | 3 | 2 | 0 | 0 |
| 贡献者 | 28 | 1 | 6 | 5 | 1 | 9 | 1 |
| License | README 声明 MIT,文件缺失 | 无 LICENSE | AGPL-3.0 | Apache-2.0 | Apache 变体(限多租户/留 LOGO) | GPL-3.0 | MIT |
| 自动化方式 | patchright 浏览器 | patchright+Chrome CDP | 官方 API | DOM 注入 | DOM 注入 | 浏览器 cookie+官方 Web API | 无(营销站) |
| 国内平台数 | 6 | 4 | 0 | 30+ | 15 | 18 | 0 |
| 内容类型 | 视频+图文 | 视频/图片/弹幕/评论 | 图文/视频/轮播/Story | 图文/视频/音频 | 文章/视频/音频 | 纯文章 | 无 |
| Web 面板 | Flask:5409 | FastAPI:8000 | Django | 无(插件) | 无(插件) | 无(插件) | 无 |
| 定时发布 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| AI 辅助 | ❌ | ✅(OpenAI 兼容) | ✅(MCP) | ❌ | ❌ | ✅(MCP) | ❌ |
| 账号隔离 | ❌(cookie 明文) | ✅(独立 profile+代理+指纹) | ✅(workspace+AES 加密) | ❌ | ❌ | ❌ | ❌ |
| 封号风险 | 中 | 中(有风控) | 低(官方 API) | 高 | 中 | 中 | 无 |
| Docker | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | N/A |
| WSL 无桌面 | ✅ | 部分(首登需 GUI) | ✅(纯 API) | ❌ | ❌ | 部分 | ✅ |
我的画像是:技术向全栈、WSL 无桌面、长期自托管、国内平台优先、图文+视频都要、有 AI 基建(本机 Go 多 provider 代理 + Anthropic 兼容中间件)。契合度按这个打分。
README 和代码对不上的地方(高价值打假)
这部分是我觉得最值的——谁都能读 README,没几个人 clone 下来逐文件核。核完发现四个项目有实锤的"说一套做一套"。
Wechatsync:声称 29+ 平台,代码里 20 个
README 大字写"一键同步到 29+ 平台"。我 ls packages/core/src/adapters/platforms/ 数了一下,实际 20 个适配器文件。README 平台列表里的小红书、抖音、网易号、什么值得买、大鱼号、一点号、X(Twitter)——代码里全没有。能用的主要是知乎/掘金/头条/CSDN/博客园这类文章站。另外文档说支持 WordPress/Typecho,实际走的是 MetaWeblog API 协议(兼容 Typecho),不是直连。
turbopush-website:根本不是产品,是营销官网
218 star,README 写着发布+定时+数据分析。我 clone 下来一看——Next.js 15 静态站,src/app/page.tsx 是个 landing page,src/components/sections/download-section.tsx 是下载按钮。整个仓库没有任何发布逻辑,grep Playwright/Selenium/puppeteer 全空。README 第一行才交代清楚:真正的发布逻辑在另一个仓库 turbopush-mcp(Tauri 桌面应用)。这个 turbopush-website 就是产品的官网本身。选错对象了。
social-auto-upload:README 说 MIT,LICENSE 文件不在
这是 14.2k star 的头号种子,README 第 314 行写"本项目暂时采用 MIT License"。但 ls LICENSE*——文件不存在,GitHub API 返回 license=null。法律上没 LICENSE 文件 = 默认"全保留权利",商用二开是有风险的。要用得先补一个 MIT LICENSE 文件上去。另外 TikTok 的 uploader 有 main.py(旧 firefox 实现)和 main_chrome.py(新 chrome 实现)双版本冲突,当前主线用 chrome 版;YouTube/TikTok 的功能也不如抖音/小红书完整。
creatorhub:连 LICENSE 文件都没有
1k star,功能看着最全(登录/监控/下载/发布/评论/私信/弹幕),但仓库没有 LICENSE 文件,README 只在第 298 行写"用于技术学习和个人内容管理"。30 天 61 个 commit、单人开发、bus factor 低。功能强归强,二开商用前必须联系作者补授权。
postbot:Apache-2.0 但加了两条限制
postbot 的 LICENSE 不是纯 Apache-2.0,是作者自创的"GitCoffee Open Source License"——在 Apache 基础上加了两条:① 未授权不能做多租户 SaaS;② 前端 LOGO/水印/作者/版权信息不能改。第 203-219 行白纸黑字。所以它不是"想怎么改就怎么改"的宽松 Apache,商用要掂量一下。另外 README 说"12+ 国内平台",实际代码里 20+。
brightbean-studio:0 个国内平台,且架构上没法加
这个架构最干净——Django 5.x + provider 抽象 + OAuth + AES-256-GCM 加密 + MCP server + 官方 API 直连。但 ls providers/ 数下来 13 个全是国际平台(Facebook/Instagram/LinkedIn/TikTok/YouTube/Pinterest/Threads/Bluesky/Google Business/Mastodon/DEV.to)。国内一个都没有。而且它走的是官方 API 路线——抖音、小红书、视频号根本没有公开发布 API,所以这个架构对国内视频平台天然不适用,要加国内平台等于要自写一整套浏览器自动化 provider,违背它的设计初衷。另外 AGPL-3.0 传染性,网络使用触发开源义务,做闭源商业 SaaS 不适用。
选型决策
光看表不够,得按场景分。
只想开箱即用分发视频 → social-auto-upload。Docker 一键,sau CLI 稳定跑抖音/小红书/B站/快手/视频号/百家号 6 个国内平台,patchright headless-shell 在 WSL 能跑。14.2k star 不是白来的,定时发布是它的核心场景(作者就是用来提前一天排定时发布的)。
想用 Web 面板统一管理图文+视频 → creatorhub。FastAPI 面板,登录/监控/下载/发布/评论/私信/弹幕全覆盖,国内 4 平台里风控最完善。但得先解决无 LICENSE + 无 Docker + 扫码首登需 GUI 三个坑。
想基于某项目二开成自己的分发平台 → 看你优先什么。只做国内视频分发,social-auto-upload 最宽松(补 LICENSE 后 MIT 可商用);要做完整多工作区 SaaS 面板(含国际平台),brightbean-studio 的 provider 抽象最干净,但要接受 AGPL + 自写国内浏览器 provider。
Top3(结合我的情况)
🥇 social-auto-upload — 主力
唯一同时满足"国内视频平台 + 宽松 License + Docker + WSL headless"的项目。6 个国内视频平台真实实现,sau CLI + Flask Web 面板(:5409)+ Vue3 前端,patchright headless 能跑,14.2k star 社区最成熟。
风险:LICENSE 文件缺失(第一步补)、无 AI hooks、无账号隔离、cookie 明文、stealth.min.js 是 2023 旧版、图文弱(主视频)。
🥈 creatorhub — 补位 / 风控+AI 移植源
国内视频面板功能最完备,企业级风控(统一闸门 + 代理 sticky + 指纹隔离 + 随机抖动),原生 AI 文案(ai_base_url 直接指向本机代理端口就能用)。但它无 LICENSE、单人、无 Docker、仅 4 平台。我的打算是不直接 fork 当主力,而是移植它的 app/risk.py 风控闸门和 app/engine/compose.py AI 模块到 social-auto-upload,补后者风控和 AI 两块短板。
🥉 brightbean-studio — 二开底座参考
架构最干净,适合二开成完整 SaaS 面板。官方 API 封号风险最低,完整 Docker + Caddy 自动 HTTPS,原生 MCP 可直连 Claude Code/Codex。但 AGPL 传染、0 国内平台、国内视频无官方 API 这三点决定它只能当国际平台面板的底座,和"国内优先"错位。
淘汰四个
- MultiPost-Extension:Chrome MV3 扩展,WSL 无桌面跑不了;无任何反检测 = 高封号。平台覆盖最广(100+ handler),但模型不对。
- postbot:同样扩展 GUI 依赖;License 有限制;单人。
- Wechatsync:GPL 传染 + 仅文章无视频 + 扩展需浏览器;30 天 0 commit 停更。
- turbopush-website:营销官网不是产品,发布逻辑在另一个仓库。
WSL 无桌面部署实况
这是最实际的部分——我的环境是 WSL2 无桌面,所以浏览器插件三兄弟直接出局(MultiPost/postbot/Wechatsync 的扩展形态必须有 Chrome/Edge GUI 跑着)。剩下的能 headless 的,也有各自的坑。
social-auto-upload 用 Docker 最省心:
| |
最大的坑是首次扫码登录需要 GUI。WSL 无桌面两个解法:一是用 Windows 浏览器登录后导 cookie,项目自带 export_douyin_cookie.sh;二是 WSL 跑 headed patchright 连 Windows 的 X server(export DISPLAY=:0),扫一次码后 cookie 持久化到本地 JSON,之后就能 headless。小红书还需要额外起一个外部签名服务(XHS_SERVER=127.0.0.1:11901)。
brightbean-studio 反而最省心——纯官方 API,不需要浏览器,Docker Compose 一把起,headless 完美。但前面说了,国内平台它一个都没有。
creatorhub 介于两者之间:扫码首登需 GUI,之后 headless 监控能跑;但无 Docker 要手动 venv,且必须先解决 LICENSE。
AI 基建对接
我本机有 Go 的多 provider 代理(OpenAI 兼容,多模型轮换)和一个 Anthropic 兼容中间件,都想接进来做内容生成。
- creatorhub 原生支持:配置
ai_base_url指向本机代理端口、填ai_api_key和ai_model就完了,app/engine/compose.py已经在调 OpenAI 兼容的chat/completions。这是 7 个里唯一开箱即用接 AI 的(brightbean 的 MCP 也算,但那是给 agent 用的协议,不是内容生成)。 - social-auto-upload 无预留 hooks:要接得自己改
sau_backend.py加生成入口,或者把 creatorhub 的compose.py抠出来移植过去。这也是我把 creatorhub 当"移植源"的原因。
结论
如果只能选一个,我选 social-auto-upload 当主力(补 LICENSE + 移植 creatorhub 的风控和 AI 模块),creatorhub 当风控/AI 移植源,brightbean-studio 当国际平台面板的二开底座参考。
一句话:这个赛道没有"一个项目全搞定国内图文+视频+自托管+低封号"的银弹。social-auto-upload 是国内视频分发最务实的起点,creatorhub 是风控设计最值得借鉴的样本,brightbean 是架构最值得学的底座——三个拼起来才接近我想要的东西。浏览器插件那三个平台覆盖虽广,但在 WSL 无桌面环境是死路,而且无反检测等于拿账号去送。
完整版的六维评估卡片和部署路线图我存了本地,这篇是浓缩版。
