111 lines
4.5 KiB
Markdown
111 lines
4.5 KiB
Markdown
# 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。除第三方组件外,代码可在遵守许可证条款的前提下用于商业软件。
|