Featured image of post 告别小豆芽:7 个开源社媒自动分发项目,我全 clone 下来扒了代码

告别小豆芽:7 个开源社媒自动分发项目,我全 clone 下来扒了代码

想自托管图文+视频多平台分发,从 14.2k 星的 social-auto-upload 到 218 星的 turbopush,7 个候选项目全部 clone 到本地逐个读代码(不只看 README)。横向对比表 + README 与代码不符的打假 + Top3 选型 + WSL 无桌面部署实况。

我用过多媒体分发 SaaS(小豆芽那类),点一下同步到十几个平台,方便,但账号 cookie 都上云、限流按月收费、平台一改版就等它修。今年我想转开源自托管——图的是账号攥在自己手里、能改代码、长期不付订阅费。也可能直接基于某个项目二开成自己的分发底座。

GitHub 上一搜,这类项目不少,star 从一万多到两百都有。但 star 高不等于能用,README 写得漂亮不等于代码实现了。所以我把 7 个候选全部 clone 到 /tmp/survey/ 下,逐个读代码——不读 README 的承诺,读 find/ls/grep 看真实实现。本文记的是扒完代码后的实况。

7 个候选一览

按 star 排:

项目star语言README 自我介绍
dreammis/social-auto-upload14.2kPython视频自动上传,抖音/小红书/视频号/TikTok/YouTube/B站
wechatsync/Wechatsync6.2kTS文章同步插件,公众号/头条/知乎/掘金/CSDN
leaperone/MultiPost-Extension2.9kTS浏览器插件,图文视频,10+ 平台
brightbeanxyz/brightbean-studio2.1kPythonDjango+Docker 自托管面板,国际平台
gitcoffee-os/postbot1.2kTS全能,国内 12+ 平台
3441293738/creatorhub1.0kPythonFastAPI 面板,抖音/小红书/快手
xueyc1f/turbopush-website218TS发布+定时+数据分析

扒完代码第一感受:star 和能不能用基本没关系,README 和代码对不上的比想象中多

横向对比表(扒代码后的实况)

维度social-auto-uploadcreatorhubbrightbean-studioMultiPostpostbotWechatsyncturbopush
最近 push07-3108-1308-1308-0107-3005-2703-27
30天 commit1161213200
贡献者28165191
LicenseREADME 声明 MIT,文件缺失无 LICENSEAGPL-3.0Apache-2.0Apache 变体(限多租户/留 LOGO)GPL-3.0MIT
自动化方式patchright 浏览器patchright+Chrome CDP官方 APIDOM 注入DOM 注入浏览器 cookie+官方 Web API无(营销站)
国内平台数64030+15180
内容类型视频+图文视频/图片/弹幕/评论图文/视频/轮播/Story图文/视频/音频文章/视频/音频纯文章
Web 面板Flask:5409FastAPI:8000Django无(插件)无(插件)无(插件)
定时发布
AI 辅助✅(OpenAI 兼容)✅(MCP)✅(MCP)
账号隔离❌(cookie 明文)✅(独立 profile+代理+指纹)✅(workspace+AES 加密)
封号风险中(有风控)(官方 API)
DockerN/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 最省心:

1
2
3
4
5
6
git clone https://github.com/dreammis/social-auto-upload.git
cd social-auto-upload
docker build -t sau .
docker run -d --name sau -p 5409:5409 -p 5173:5173 \
  -v $(pwd)/db:/app/db -v $(pwd)/videos:/app/videos sau
# 访问 http://localhost:5173

最大的坑是首次扫码登录需要 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_keyai_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 无桌面环境是死路,而且无反检测等于拿账号去送。

完整版的六维评估卡片和部署路线图我存了本地,这篇是浓缩版。