From 80607c0411f2cfd7c939c73ac6158cd9150f54f6 Mon Sep 17 00:00:00 2001 From: Qiufeng Date: Fri, 21 Aug 2026 15:07:09 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=85=A8=E9=87=8F=E9=87=8D=E5=86=99=20?= =?UTF-8?q?README=20=E4=B8=BA=20EveryPublish=20=E9=A1=B9=E7=9B=AE=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 406 +++++++++++------------------------------------------- 1 file changed, 82 insertions(+), 324 deletions(-) diff --git a/README.md b/README.md index eee0742..ef4346c 100644 --- a/README.md +++ b/README.md @@ -1,352 +1,110 @@ -# social-auto-upload +# EveryPublish -`social-auto-upload` 是一个强大的自动化工具,旨在帮助内容创作者和运营者高效地将视频内容一键发布到多个国内外主流社交媒体平台。 -项目实现了对 `抖音`、`Bilibili`、`小红书`、`快手`、`视频号`、`百家号`、`支付宝生活号`、`微博`、`虎扑`、`TikTok` 以及 `YouTube` 等平台的视频上传、定时发布等功能。 -结合各平台 `uploader` 模块,您可以轻松配置和扩展支持的平台,并通过示例脚本快速上手。 +EveryPublish 是一个**多平台内容自动发布系统**,帮助内容创作者和运营者将视频/图文一键发布到多个国内外主流社交媒体平台。它由一个 Flask 后端(平台自动化)和一个 React + TDesign 管理端(Web 控制台)组成,支持扫码登录、素材管理、异步发布任务与实时进度监控,并通过 Open API 向外部内容创作系统开放接入能力。 -tiktok show +## 功能特性 -## 💎 赞助商 +- **11 个平台接入**:抖音、快手、小红书、视频号、B站、百家号、支付宝生活号、微博、虎扑、YouTube、TikTok +- **视频 + 图文发布**:小红书/抖音/快手/视频号支持图文,其余平台支持视频 +- **扫码登录 + Cookie 管理**:扫码登录、Cookie 导入导出、健康校验 +- **异步发布任务**:发布立即返回任务 ID,后台执行,前端实时显示步骤/百分比/日志 +- **发布日志**:历史任务记录与详细日志追踪 +- **Open API 开放体系**:API Key 鉴权 + 素材/发布/账号/平台查询等开放接口 + 内置 API 文档页 +- **全局配置**:登录方式(扫码/浏览器)、发布静默模式(headless 无感运行) +- **账号批量操作**:单账号/批量 Cookie 校验、批量删除 - - - - - - - - - - - - - - - - - -
- - DolOffer Sponsor - - - 感谢 DolOffer 对本项目的支持!对于做内容矩阵、多平台分发和 AI 自动化运营的创作者来说,ChatGPT、Claude、YouTube Premium、Spotify、Apple Music、Notion、Office 等数字工具往往是长期成本。DolOffer 提供 AI、视频、音乐和效率工具相关的订阅与充值服务,帮助用户更低成本地配置常用数字产品。更多说明可查看 DolOffer Guide。使用优惠码 AI8888 可额外享受 9 折优惠,具体价格和服务规则以官网为准。 -
- - chilltion Sponsor - - - 轻视AI:一句话生产MG动画,适合知识,科普,讲解,教程,介绍等类型视频的低成本制作,视频矩阵,养号等,成本只有seedance等1%。现在注册送1500积分 -
- - ClawPower Sponsor - - - ClawPower 是一家稳定可靠 AI 大模型中转服务商,提供 Claude、GPT、Gemini 60+ 大模型接入。无论是 OpenClaw、Hermes 智能体自动化场景,Claude Code、Codex 编程工具接入,还是公众号、小红书内容创作;都能获得稳定、顺滑、可长期使用的模型服务体验。低至官方价格的 30%,点击免费领取 5 刀现金体验券 -
- Sponsor Contact - - 成为赞助商
- 如果您有意赞助本项目,请扫描左侧微信二维码(添加时请注明来意:赞助)。 -
+## 技术架构 ---- - - -## 目录 - -- [💡 功能特性](#功能特性) -- [💾 安装指南](#安装指南) -- [🤖 AI Agent](#agent) -- [🏁 快速开始](#快速开始) -- [🗂️ 重构计划](#%EF%B8%8F重构计划) -- [📣 近况说明](#近况说明) -- [🐇 项目背景](#项目背景) -- [📃 详细文档](#详细文档) -- [🐾 交流与支持](#交流与支持) -- [🤝 贡献指南](#贡献指南) -- [📜 许可证](#许可证) -- [⭐ Star History](#star-history) - -## 💡功能特性 - -| 平台 | 登录/账号准备 | 视频上传 | 图文上传 | 定时发布 | CLI | Skill | 说明 | -| --- | --- | --- | --- | --- | --- | --- | --- | -| 抖音 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 当前主线重构最完整 | -| Bilibili | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | 运行时自动准备 `biliup` | -| 小红书(浏览器版) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 浏览器自动化,CLI/Skill 已接入 | -| 快手 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 浏览器自动化,CLI/Skill 初版已接入 | -| 视频号 | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | 浏览器自动化,对应 `tencent_uploader` | -| 百家号 | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 浏览器自动化 | -| 支付宝生活号 | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 浏览器自动化,支持生活号视频 | -| 微博 | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 浏览器自动化,标题最多 30 字 | -| 虎扑 | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 浏览器自动化,标题 4–40 字 | -| TikTok | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | 当前示例走 Chrome 版实现 | -| YouTube | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 浏览器自动化(Studio),支持加入播放列表/可见性 | - -### AI这么强,为什么还需要这个项目 -在你使用AI的能力,browser agent等等,每次都让 agent 重新解析网页、截图理解, 临场判断 -该项目经过大量验证,上传这种 高频,重复,无聊的工作交给脚本和程序去执行 - - -## 💾安装指南 - -### 自己上手使用 -如果你只是普通用户,不准备借助 agent 客户端,直接看 - -安装、更新、环境准备已经统一收敛到文档: - -- [安装说明](./docs/install.md) -- [更新说明](./docs/update.md) - - -### AGENT - -``` -AI的发展毋庸置疑,希望你遇到这种安装和使用,不要再怯场,而是交给各种AI Agent来协助你 +```text +浏览器 React 18 + TDesign + Redux Toolkit + Vite + │ REST / SSE / API + ▼ +Flask 后端 :5409 + ├─ SQLite(账号/素材/设置/API Key) + ├─ 平台 uploader(Playwright / Patchright 浏览器自动化) + └─ 异步任务队列(发布 / 校验) ``` -如果你准备把这个仓库直接交给 `OpenClaw`、`Codex`、`Claude Code` 来安装和使用 +## 支持平台 -先把仓库给 agent,再把这份启动提示词一起发给它: +| 平台 | 视频 | 图文 | 定时 | 登录方式 | +| --- | --- | --- | --- | --- | +| 抖音 | ✅ | ✅ | ✅ | 扫码 | +| 快手 | ✅ | ✅ | ✅ | 扫码 | +| 小红书 | ✅ | ✅ | ✅ | 扫码 | +| 视频号 | ✅ | ✅ | ✅ | 扫码 | +| B站 | ✅ | — | ✅ | 扫码(biliup) | +| 百家号 | ✅ | — | — | 扫码 | +| 支付宝生活号 | ✅ | — | — | 扫码 | +| 微博 | ✅ | — | — | 扫码 | +| 虎扑 | ✅ | — | — | QQ 扫码 | +| YouTube | ✅ | — | — | 浏览器交互 | +| TikTok | ✅ | — | ✅ | 浏览器交互 | -- [Agent Bootstrap Prompt](./docs/agent-bootstrap.md) +## 快速开始 -这份提示词会引导 agent: - -- 优先按当前主线安装项目 -- 优先使用 `uv`、`sau` CLI 和 `skills/` -- 先验证 `bilibili`、`douyin`、`kuaishou`、`xiaohongshu` 四个平台入口是否可用 - - -### 补充说明: - -- CLI 使用请看:[CLI 使用说明](./docs/CLI.md) -- 如果你准备在 `OpenClaw`、`Codex`、`Claude Code / cc` 里使用本项目,先看:[Agent Bootstrap Prompt](./docs/agent-bootstrap.md) -- agent / skill 请看:[Douyin Upload Skill](./skills/douyin-upload/SKILL.md) -- agent / skill 请看:[Kuaishou Upload Skill](./skills/kuaishou-upload/SKILL.md) -- agent / skill 请看:[Xiaohongshu Upload Skill](./skills/xiaohongshu-upload/SKILL.md) -- agent / skill 请看:[Bilibili Upload Skill](./skills/bilibili-upload/SKILL.md) -- 历史 Web 说明请看:[历史 Web 版本说明](./docs/legacy-web.md) -- 其他单平台 skill 与整合型 skill 仍在开发中 -- `requirements.txt` 目前主要用于历史兼容路径,普通用户不需要优先使用它 - - -## 📣近况说明 - -`2026.03.24` - -最近我的重心一直都在创业上,而且手里还有一些项目没完全跑通,所以这个仓库前面有很长一段时间,我确实没有办法投入特别多精力去持续维护。 - -这个项目不知不觉已经 `9k+ star` 了,社群里也已经有 `2000+` 小伙伴了。看到它真的在持续帮到大家,我心里还是挺开心的,也是真的很感谢大家一直以来的支持、反馈。 - -所以我想,决定先停一下,抽一段时间出来,把这个项目好好重构和优化一轮。 - -接下来这段时间,这个仓库应该会进入一个相对密集更新的阶段。我现在最想先做的事情主要有这几件: - -1. 使用更隐蔽、更稳定的自动化方案,尽量降低平台检测风险 -2. 补齐一些常用平台的图文能力,并逐步完成 CLI 化、Skill 化 -3. 陆续测试并上架到更多 skill 平台,让大家的龙虾、螃蟹、毛毛虫都能打通 AI 自媒体的最后一道关 - -所以如果你之前觉得这个项目更新有点慢,哈哈哈,后面大概率会快很多。也欢迎大家继续关注,最近应该会是一段持续修、持续更、持续重构的阶段。 - -## 🗂️重构计划 - -项目正在进行一轮整体重构,当前重构重点是: - -- 各平台 uploader 的结构收敛 -- CLI 统一接入 -- 面向 OpenClaw、Codex、 Claude Code 等工具的 skill 化 -- 更换为 `patchright` 驱动,提升兼容性与隐蔽性 -- 主线优先围绕无头模式推进 - -“无头模式(headless)”,指的是浏览器在后台运行,不弹出可见窗口,但自动化流程仍然会照常执行。这样更适合 CLI、服务端、自动任务和 agent 场景。 - -Web 端相关代码仍然保留,但已经不是当前主线,不保证可直接运行,也不保证与当前 uploader/CLI 完全同步。 - - -## 🏁快速开始 - -### 方式 1:使用 CLI - -当前抖音、快手、小红书、Bilibili、视频号、百家号、支付宝生活号、微博和虎扑已经接入 CLI: +### 后端(Flask,端口 5409) ```bash -sau douyin login --account -sau douyin check --account -sau douyin upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" -sau douyin upload-note --account --images videos/1.png videos/2.png --title "图文标题" --note "图文正文" - -sau kuaishou login --account -sau kuaishou check --account -sau kuaishou upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" -sau kuaishou upload-note --account --images videos/1.png videos/2.png videos/3.png --title "图文标题" --note "图文正文" - -sau xiaohongshu login --account -sau xiaohongshu check --account -sau xiaohongshu upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" -sau xiaohongshu upload-note --account --images videos/1.png videos/2.png videos/3.png --title "图文标题" --note "图文正文" - -sau bilibili login --account -sau bilibili check --account -sau bilibili upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" --tid 249 - -sau tencent login --account -sau tencent check --account -sau tencent upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" --tags tag1,tag2 - -sau baijiahao login --account -sau baijiahao check --account -sau baijiahao upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" --tags tag1,tag2 - -sau alipay login --account -sau alipay check --account -sau alipay upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" --tags tag1,tag2 - -sau weibo login --account -sau weibo check --account -sau weibo upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" --tags tag1,tag2 - -sau hupu login --account -sau hupu check --account -sau hupu upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" --tags tag1,tag2 - -sau youtube login --account -sau youtube check --account -sau youtube upload-video --account --file videos/demo.mp4 --title "示例标题" --desc "示例简介" --tags tag1,tag2 --playlist "我的系列" --visibility public +# 建议 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 ``` -> YouTube 说明:登录是交互式的(Google 账号,浏览器里完成,无二维码)。这里走浏览器自动化而不是官方 API, -> 是因为**未通过 Google 合规审核的 API 项目上传的视频会被强制锁为私享、无法改公开**,对个人/单频道不实用; -> 浏览器自动化没有此限制,可直接发布公开视频,也与本项目其它平台的 cookie 方案一致。 -> `--playlist` 适合连载/系列追更;`--visibility` 可选 `public`/`unlisted`/`private`。 -> 上传会**等进度到 100% 再点发布**(浏览器上传靠窗口开着传,传一半就发布会被掐断卡在中途)。 -> youtube.com 被墙的地区:在 `conf.py` 设 `YT_PROXY = "http://127.0.0.1:7890"`(chromium 不吃系统代理,需显式指定)。 +### 前端(React,端口 5174) -补充说明: +```bash +cd sau_web_react +npm install +npm run dev +``` -- `creator` 之类的名字只是示例值,真正含义是 `account_name` -- 一个 `account_name` 对应一个账号文件,可以准备多个账号,也可以按账号名并发执行任务 -- 抖音视频发布若触发短信二次验证,程序会优先读取项目根目录下的 `verify_code.txt`;如果你是在本地交互式终端手动运行 CLI,也可以直接按终端提示输入验证码 -- 浏览器平台统一约定: -- 视频使用 `title + desc + tags` -- 图文使用 `title + note + tags` -- Bilibili CLI 不要求用户手动安装 `biliup` -- 首次运行相关命令时,程序会自动下载 `biliup` -- 后续运行会自动检查上游 release 并更新 -- Bilibili 登录建议由用户自己在本地真实终端里执行;如果终端二维码显示不完整,可以直接打开当前目录下的 `qrcode.png` 扫码 +打开 http://127.0.0.1:5174/ ,开发环境通过 Vite 代理将 /api 转发到后端 5409。 -### 方式 2:使用 examples +## 页面与功能 -`examples/` 目录里同时存在两类脚本: +| 页面 | 路由 | 功能 | +| --- | --- | --- | +| 首页 | /dashboard | 账号/平台/素材统计、快捷操作 | +| 账号管理 | /account | 扫码登录、Cookie 导入导出、单/批量校验与删除 | +| 素材管理 | /material | 素材上传、缩略图预览、下载、删除 | +| 发布中心 | /publish | 按素材类型选渠道、多账号发布、进度监控 | +| 发布日志 | /publish-logs | 历史任务与日志 | +| API 文档 | /api-docs | Open API 说明、curl 示例、点击测试 | +| 系统设置 | /settings | 登录方式、发布静默开关 | +| 关于 | /about | 系统信息与平台能力矩阵 | -- 当前主线 CLI 包装示例 -- 历史直连 uploader 示例 +## Open API -对抖音、快手、小红书、Bilibili 来说,当前主线优先使用上面的 `sau ...` CLI。 -下面这些脚本主要是历史直连 uploader 示例或调试入口: +对外开放的接口统一以 `/open/v1` 为前缀,通过 `X-API-Key` 或 `Authorization: Bearer` 鉴权: -- `examples/upload_to_douyin.py` -- `examples/upload_video_to_bilibili.py` -- `examples/upload_to_kuaishou.py` -- `examples/upload_video_to_tencent.py` -- `examples/upload_video_to_baijiahao.py` -- `examples/get_alipay_cookie.py` -- `examples/test_alipay_upload.py` -- `examples/upload_video_to_tiktok.py` -- `examples/upload_video_to_xiaohongshu.py` +- `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 数据库 +``` -## 📃详细文档 +## 参考项目 -已落后,目前在快速重构该项目,当下,你需要做的是把这个仓库,发给你的AI agent:qwen code,codex cc,openclaw等等,让他们帮你安装和使用 +本项目基于 [dreammis/social-auto-upload](https://github.com/dreammis/social-auto-upload)(MIT License)的 uploader 与 CLI 能力进行接入与封装,保留其 MIT 版权说明。依赖的第三方组件(biliup、Playwright、Patchright 等)受各自许可证约束。 -更详细的文档和说明,请查看:[social-auto-upload 官方文档](https://sap-doc.nasdaddy.com/) +## 许可证 -## 🐾交流与支持 - -[☕ Donate as u like](https://www.buymeacoffee.com/hysn2001m) - 如果您觉得这个项目对您有帮助,可以考虑赞助。 - -如果您也是独立开发者、技术爱好者,对 #技术变现 #AI创业 #跨境电商 #自动化工具 #视频创作 等话题感兴趣,欢迎加入社群交流。 - -### Creator - - - - -
- - NasDaddy公众号 -
- 微信公众号 -
-
- 💻 -
- 关注公众号,后台回复 `上传` 获取加群方式 -
- - 赞赏码/入群引导 -
- 交流群 (通过公众号获取) -
-
- 📖 -
- 如果您觉得项目有用,可以考虑打赏支持一下 -
- - - - -## 🤝贡献指南 - -欢迎各种形式的贡献,包括但不限于: - -- 提交 Bug报告 和 Feature请求。 -- 改进代码、文档。 -- 分享使用经验和教程。 - -如果您希望贡献代码,请遵循以下步骤: - -1. Fork 本仓库。 -2. 创建一个新的分支 (`git checkout -b feature/YourFeature` 或 `bugfix/YourBugfix`)。 -3. 提交您的更改 (`git commit -m 'Add some feature'`)。 -4. Push到您的分支 (`git push origin feature/YourFeature`)。 -5. 创建一个 Pull Request。 - -提交代码或文档前,请确认您有权提交相关内容,并同意这些贡献按照本项目的 MIT License 发布。提交第三方代码时,请同时说明来源及其适用的许可证。 - -## 主要贡献者 - - - - - - -## 🙏致谢 - -本项目的 Bilibili 上传能力基于开源项目 `biliup` 的能力进行接入与封装。 -感谢 `biliup` 项目及其贡献者提供的基础能力: - -- https://github.com/biliup/biliup - -本项目依赖的第三方组件和运行时工具仍受其各自许可证约束。下游发行或集成本项目时,请同时检查并保留相关第三方组件要求的版权、许可证和 NOTICE 声明。 - -## 📜许可证 - -本项目采用 [MIT License](LICENSE) 开源许可证。除第三方组件外,本项目代码可以在遵守该许可证条款的前提下用于商业软件,包括闭源软件。 - -## ⭐Star-History - -> 如果这个项目对您有帮助,请给一个 ⭐ Star 以表示支持! - - - - -[![Star History Chart](https://star-history.dera.page/svg?repos=dreammis/social-auto-upload&type=Date)](https://star-history.dera.page/#dreammis/social-auto-upload&Date) +本项目采用 MIT License。除第三方组件外,代码可在遵守许可证条款的前提下用于商业软件。