social-auto-upload 深度解析:11K Stars 的 Python 脚本,一键发布视频到抖音/快手/视频号
做自媒体的人都懂这个痛:一条视频要发到抖音、快手、视频号、小红书、B站五个平台,每个平台的创作者中心都要单独登录,标题、描述、封面、话题、位置全部要手动填一遍。发完一条视频,半小时没了。
更痛苦的是矩阵运营——10个账号,每个账号要发5条视频,一天光上传就要花掉大半天。
social-auto-upload 就是为了解决这个痛点而生的:一个 Python 脚本,一次配置,自动把视频发布到抖音、快手、视频号、小红书、B站、TikTok、YouTube 等多个平台。支持多账号、支持定时发布、支持矩阵化运营。
11,038 Stars,1,975 Forks,GitHub 上最火的自媒体自动化工具之一。
一、项目核心数据
| 指标 | 数据 |
|---|---|
| GitHub Stars | 11,038 |
| Forks | 1,975 |
| 语言 | Python |
| 创建时间 | 2023-12-04 |
| 最后活跃 | 2026-05-07 |
| 开源协议 | 未标注 |
| 官方文档 | sap-doc.nasdaddy.com |
| 技术栈 | Playwright |
一句话概括: 用 Playwright 模拟真实用户操作,自动上传视频到各大平台,解放双手。
二、支持平台矩阵
国内平台
| 平台 | 状态 | 功能 |
|---|---|---|
| 抖音 | ✅ 完整支持 | 视频上传、图文发布、定时发布 |
| 小红书 | ✅ 完整支持 | 视频上传、定时发布 |
| 视频号 | ✅ 完整支持 | 视频上传、定时发布 |
| B站 | ✅ 完整支持 | 视频上传、定时发布 |
| 快手 | ✅ 完整支持 | 视频上传、定时发布 |
| 百家号 | ✅ 完整支持 | 视频上传 |
国际平台
| 平台 | 状态 | 功能 |
|---|---|---|
| TikTok | ✅ 完整支持 | 视频上传、定时发布 |
| YouTube | 🚧 开发中 | 视频上传 |
总计:国内6平台 + 国际2平台 = 8个平台一键分发。
三、技术架构:Playwright 浏览器自动化
3.1 为什么用 Playwright 而不是 API?
这是很多人会问的问题。各平台都有官方 API,为什么要用浏览器自动化?
答案很简单:API 门槛高,浏览器自动化门槛低。
| 对比维度 | 官方 API | Playwright 自动化 |
|---|---|---|
| 申请门槛 | 高(企业资质、审核) | 低(有账号即可) |
| 功能完整性 | 受限(部分功能不开放) | 完整(模拟真实用户) |
| 费用 | 部分平台收费 | 免费 |
| 稳定性 | 高(官方维护) | 中(界面变化需适配) |
| 合规性 | 高 | 需注意平台规则 |
对于个人创作者和小团队来说,Playwright 方案的性价比远高于 API 方案。你不需要申请开发者资质,不需要过审核,只要有账号就能用。
3.2 核心架构
social-auto-upload/
├── uploader/ # 各平台上传模块
│ ├── douyin/ # 抖音上传器
│ ├── xiaohongshu/ # 小红书上传器
│ ├── tencent/ # 视频号上传器
│ ├── bilibili/ # B站上传器
│ ├── kuaishou/ # 快手上传器
│ └── tiktok/ # TikTok 上传器
├── utils/ # 工具函数
├── db/ # 数据库(账号、任务管理)
├── sau_backend.py # Flask 后端
├── sau_cli.py # 命令行工具
└── examples/ # 示例脚本
每个平台的上传器是一个独立模块,实现了:
- 登录态管理:保存 cookies,复用登录状态
- 页面导航:自动打开创作者中心
- 视频上传:模拟文件选择和上传
- 表单填写:标题、描述、话题、位置
- 封面设置:上传自定义封面
- 发布确认:点击发布按钮
3.3 反检测机制
Playwright 自动化最大的风险是被平台检测到。social-auto-upload 做了几个关键优化:
- 真实浏览器指纹:使用真实 Chrome 而非 headless 模式
- 随机延迟:操作间加入随机等待,模拟人类行为
- cookies 复用:减少重复登录,降低异常检测
- 用户代理伪装:模拟正常浏览器 UA
四、核心功能详解
4.1 多账号矩阵管理
自媒体矩阵运营的核心需求:一个工具管多个账号。
social-auto-upload 通过 accounts.ini 配置文件管理多账号:
[account_1]
platform = douyin
username = 账号1
cookies_path = ./cookies/douyin_1.json
[account_2]
platform = douyin
username = 账号2
cookies_path = ./cookies/douyin_2.json
[account_3]
platform = xiaohongshu
username = 小红书账号
cookies_path = ./cookies/xhs_1.json
每个账号独立存储登录态,互不干扰。执行任务时,脚本会依次登录每个账号,完成各自的上传任务。
4.2 定时发布
平台算法喜欢"黄金时段"发布——早8点、午12点、晚8点。但你不可能24小时守在电脑前。
social-auto-upload 支持两种定时方式:
方式一:任务队列 + Cron
# 添加任务到队列
python sau_cli.py add-task \
--platform douyin \
--video ./videos/demo.mp4 \
--title "测试视频" \
--schedule "2026-05-15 20:00:00"
方式二:Flask 后端 + Web UI
启动后端服务后,可以通过 Web 界面管理任务:
python sau_backend.py
# 访问 http://localhost:5000
Web 界面支持:
- 任务列表查看
- 新增/编辑/删除任务
- 执行状态监控
- 账号管理
4.3 批量上传
一个脚本上传多个视频:
import os
from uploader.douyin import DouyinUploader
uploader = DouyinUploader()
videos = os.listdir('./videos')
for video in videos:
uploader.upload(
video_path=f'./videos/{video}',
title=f'视频 {video}',
tags=['科技', '编程'],
publish_time='20:00'
)
结合定时任务,可以实现"一次配置,一周自动发布"。
五、快速上手
5.1 环境准备
# Python 3.10+
python --version
# 克隆仓库
git clone https://github.com/dreammis/social-auto-upload.git
cd social-auto-upload
# 安装依赖
pip install -r requirements.txt
# 安装 Playwright 浏览器
playwright install chromium
5.2 首次登录
# 登录抖音(会打开浏览器,扫码登录)
python -m uploader.douyin --login
# 登录小红书
python -m uploader.xiaohongshu --login
# 登录视频号
python -m uploader.tencent --login
登录成功后,cookies 会保存到本地,下次无需再次登录。
5.3 上传视频
# 单平台上传
python -m uploader.douyin \
--video ./demo.mp4 \
--title "测试视频标题" \
--tags "科技,编程" \
--cover ./cover.jpg
# 多平台一键分发
python sau_cli.py publish \
--platforms douyin,xiaohongshu,bilibili \
--video ./demo.mp4 \
--title "一键分发测试"
六、进阶用法
6.1 Docker 部署
项目提供了 Dockerfile,适合服务器部署:
# 构建镜像
docker build -t sau .
# 运行容器
docker run -d \
-v $(pwd)/videos:/app/videos \
-v $(pwd)/cookies:/app/cookies \
-p 5000:5000 \
sau
Docker 部署的优势:
- 环境隔离,避免依赖冲突
- 适合多服务器部署
- 便于 CI/CD 集成
6.2 Web 后端 API
social-auto-upload 提供了 Flask 后端,支持 API 调用:
# 添加任务
POST /api/tasks
{
"platform": "douyin",
"video_path": "/videos/demo.mp4",
"title": "API 上传测试",
"schedule": "2026-05-15 20:00:00"
}
# 查询任务状态
GET /api/tasks/{task_id}
# 获取账号列表
GET /api/accounts
这意味着你可以把它集成到自己的内容管理系统里:
- 你的 CMS 生成视频 → 调用 SAU API → 自动分发到各平台
6.3 矩阵化运营脚本
import time
from uploader.douyin import DouyinUploader
from uploader.xiaohongshu import XhsUploader
# 10个抖音账号
douyin_accounts = [f'account_{i}' for i in range(1, 11)]
# 批量上传
for account in douyin_accounts:
uploader = DouyinUploader(account=account)
uploader.upload(
video_path='./videos/matrix_video.mp4',
title='矩阵视频',
# 每个账号错开时间,避免被判定为批量操作
publish_time=f'{8 + accounts.index(account)}:00'
)
time.sleep(300) # 间隔5分钟
七、与同类项目对比
| 项目 | Stars | 支持平台 | 技术栈 | 特点 |
|---|---|---|---|---|
| social-auto-upload | 11K | 抖音/小红书/视频号/B站/快手/TikTok/百家号 | Playwright | 最活跃、平台最多 |
| MoneyPrinterPlus | 6K+ | 抖音/快手/小红书/视频号 | Playwright + Streamlit | AI生成+自动发布一体化 |
| matrix | 1K+ | 抖音/快手/视频号/小红书 | Playwright | 轻量级、专注分发 |
social-auto-upload 的优势:
- 社区最活跃:223 次提交,持续更新
- 平台最全:8个平台,覆盖国内外主流
- 文档完善:官方文档站 + 社区教程丰富
- 架构清晰:模块化设计,易于扩展
八、风险与注意事项
8.1 平台规则风险
这是最重要的一点:自动化上传可能违反平台用户协议。
各平台的态度:
- 抖音:明确禁止自动化工具,检测到可能封号
- 小红书:审核较严,批量上传容易被限流
- B站:相对宽松,但也可能触发风控
- 视频号:微信生态,风险较高
降低风险的策略:
- 不要批量大量上传:每天每个账号控制在 3-5 条
- 使用真实内容:避免搬运、重复内容
- 错开发布时间:模拟正常用户的发布节奏
- 使用独立 IP:多账号尽量用不同网络
- 准备备用账号:矩阵运营必须有容错机制
8.2 技术风险
- 界面变化:平台更新创作者中心界面,脚本需要适配
- 登录态过期:cookies 有时效,需要定期重新登录
- 反爬升级:平台可能加强检测,导致脚本失效
应对策略:
- 关注项目 GitHub Issue,及时更新
- 测试环境验证后再生产使用
- 保留手动上传作为备份方案
九、适用场景
最适合
- 自媒体矩阵运营者:多账号、多平台、高频发布
- MCN 机构:批量管理达人账号,自动化分发
- 内容工作室:视频生产后自动分发,节省人力
不适合
- 单账号个人创作者:手动上传成本不高,没必要冒险
- 高价值账号:一旦封号损失巨大,不值得
- 对平台规则敏感的场景:品牌官方账号、企业号
十、总结
social-auto-upload 的价值可以用一个数字概括:11,038 Stars。
这个数字说明了一个事实:自媒体人对"多平台一键分发"的需求是真实且迫切的。
从技术角度看,它没有特别高深的创新——Playwright 浏览器自动化是成熟技术,模拟登录和表单提交也是常规操作。但它把这些技术整合成了一个完整的、可用的、社区活跃的解决方案。
从商业角度看,它切中的是一个"高频刚需"——每天成千上万的自媒体人需要重复执行上传操作,这个工具帮他们省下的时间价值远超代码本身。
从风险角度看,它走的是灰色地带——平台不允许,但创作者需要。每个使用者都需要在"效率提升"和"账号风险"之间做出权衡。
如果你是矩阵运营者,它可能是你今年的效率神器;如果你是单账号创作者,手动上传可能是更安全的选择。
GitHub: dreammis/social-auto-upload(11,038★, 1,975 Forks)| Python + Playwright | 支持抖音/小红书/视频号/B站/快手/TikTok/百家号 | 官方文档: sap-doc.nasdaddy.com