# EveryPublish EveryPublish 是一个**多平台内容自动发布系统**,帮助内容创作者和运营者将视频/图文一键发布到多个国内外主流社交媒体平台。它由一个 Flask 后端(平台自动化)和一个 React + TDesign 管理端(Web 控制台)组成,支持扫码登录、素材管理、异步发布任务与实时进度监控,并通过 Open API 向外部内容创作系统开放接入能力。 ## 功能特性 - **11 个平台接入**:抖音、快手、小红书、视频号、B站、百家号、支付宝生活号、微博、虎扑、YouTube、TikTok - **视频 + 图文发布**:小红书/抖音/快手/视频号支持图文,其余平台支持视频 - **扫码登录 + Cookie 管理**:扫码登录、Cookie 导入导出、健康校验 - **异步发布任务**:发布立即返回任务 ID,后台执行,前端实时显示步骤/百分比/日志 - **发布日志**:历史任务记录与详细日志追踪 - **Open API 开放体系**:API Key 鉴权 + 素材/发布/账号/平台查询等开放接口 + 内置 API 文档页 - **全局配置**:登录方式(扫码/浏览器)、发布静默模式(headless 无感运行) - **账号批量操作**:单账号/批量 Cookie 校验、批量删除 ## 技术架构 ```text 浏览器 React 18 + TDesign + Redux Toolkit + Vite │ REST / SSE / API ▼ Flask 后端 :5409 ├─ SQLite(账号/素材/设置/API Key) ├─ 平台 uploader(Playwright / Patchright 浏览器自动化) └─ 异步任务队列(发布 / 校验) ``` ## 支持平台 | 平台 | 视频 | 图文 | 定时 | 登录方式 | | --- | --- | --- | --- | --- | | 抖音 | ✅ | ✅ | ✅ | 扫码 | | 快手 | ✅ | ✅ | ✅ | 扫码 | | 小红书 | ✅ | ✅ | ✅ | 扫码 | | 视频号 | ✅ | ✅ | ✅ | 扫码 | | B站 | ✅ | — | ✅ | 扫码(biliup) | | 百家号 | ✅ | — | — | 扫码 | | 支付宝生活号 | ✅ | — | — | 扫码 | | 微博 | ✅ | — | — | 扫码 | | 虎扑 | ✅ | — | — | QQ 扫码 | | YouTube | ✅ | — | — | 浏览器交互 | | TikTok | ✅ | — | ✅ | 浏览器交互 | ## 快速开始 ### 后端(Flask,端口 5409) ```bash # 建议 Python 3.12 uv venv --python 3.12 .venv && source .venv/bin/activate uv pip install -e ".[web]" pip install playwright==1.52.0 xhs pillow playwright install chromium cp conf.example.py conf.py # 配置本地 Chrome 路径 python sau_backend.py ``` ### 前端(React,端口 5174) ```bash cd sau_web_react npm install npm run dev ``` 打开 http://127.0.0.1:5174/ ,开发环境通过 Vite 代理将 /api 转发到后端 5409。 ## 页面与功能 | 页面 | 路由 | 功能 | | --- | --- | --- | | 首页 | /dashboard | 账号/平台/素材统计、快捷操作 | | 账号管理 | /account | 扫码登录、Cookie 导入导出、单/批量校验与删除 | | 素材管理 | /material | 素材上传、缩略图预览、下载、删除 | | 发布中心 | /publish | 按素材类型选渠道、多账号发布、进度监控 | | 发布日志 | /publish-logs | 历史任务与日志 | | API 文档 | /api-docs | Open API 说明、curl 示例、点击测试 | | 系统设置 | /settings | 登录方式、发布静默开关 | | 关于 | /about | 系统信息与平台能力矩阵 | ## Open API 对外开放的接口统一以 `/open/v1` 为前缀,通过 `X-API-Key` 或 `Authorization: Bearer` 鉴权: - `GET /open/v1/platforms` — 平台能力 - `GET /open/v1/accounts` — 账号列表 - `GET/POST/DELETE /open/v1/materials` — 素材管理 - `POST /open/v1/publish` — 提交发布任务 - `GET /open/v1/publish/{taskId}` — 查询任务状态 API Key 在系统设置/API 文档页生成与管理,详见内置「API 文档」页面。 ## 目录结构 ```text ├── sau_backend.py # Flask 后端主入口 ├── myUtils/ # 账号登录/发布封装 ├── uploader/ # 各平台自动化(Playwright/Patchright) ├── utils/ # 配置/日志/二维码等工具 ├── sau_web_react/ # React + TDesign 管理端 └── db/ # SQLite 数据库 ``` ## 参考项目 本项目基于 [dreammis/social-auto-upload](https://github.com/dreammis/social-auto-upload)(MIT License)的 uploader 与 CLI 能力进行接入与封装,保留其 MIT 版权说明。依赖的第三方组件(biliup、Playwright、Patchright 等)受各自许可证约束。 ## 许可证 本项目采用 MIT License。除第三方组件外,代码可在遵守许可证条款的前提下用于商业软件。