Files
EveryPublish/README.md
T

111 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。除第三方组件外,代码可在遵守许可证条款的前提下用于商业软件。