DEV Community

wxfwxf911
wxfwxf911

Posted on

让 9 个平台的内容发布从 30 分钟变成 30 秒

痛点

每次写完技术文章,发布才是最痛苦的环节。我有 9 个平台的账号要维护:掘金、知乎、CSDN、博客园、思否、小红书、抖音、B站、微信视频号。

过去的标准操作:

  1. 打开掘金 → 粘贴标题 → 粘贴正文 → 选标签 → 发布
  2. 打开知乎 → 粘贴标题 → 粘贴正文 → 调格式(Draft.js 各种吞换行)→ 发布
  3. 打开 CSDN → 粘贴标题 → 粘贴正文 → 设分类 → 发布
  4. ...重复 ×6

写文章 40 分钟,发布 30 分钟。而且每次都要忍受不同平台编辑器的怪癖——有的不认 Markdown、有的吃空格、有的代码块语法高亮全丢。

于是我写了个工具:PolyPost。一次编辑,9 平台同步发布。开源。

GitHub: https://github.com/wxfwxf911/polypost

效果

在 PolyPost 的编辑器里写好文章(支持 Markdown + 富文本),勾选要发布的平台,点一下「发布」按钮。后端自动完成格式转换和推送。

对于不需要复杂交互的平台(掘金、CSDN、博客园、思否),直接调用 API 发布,秒级完成。对于需要浏览器操作的平台(知乎、小红书、抖音等),用 Playwright 模拟操作,但也比手动快得多——关键是你不用守着

同时附带一个 Chrome 浏览器插件,一键提取各平台 Cookie,告别手工配置的麻烦。

技术实现

后端:Python FastAPI + SQLite。前端:原生 HTML/CSS/JS(无框架依赖,体积极小)。

支持平台及实现方式:

平台 类型 实现方式
掘金 文章 HTTP API(Markdown 原生支持)
CSDN 文章 HTTP API
思否 文章 HTTP API
博客园 文章 MetaWeblog API
知乎 文章 Playwright 浏览器自动化
小红书 图文 Playwright 浏览器自动化
抖音 视频 Playwright 浏览器自动化
B站 视频 Playwright 浏览器自动化
微信视频号 视频 Playwright + 微前端集成

一些有意思的技术细节

  • 知乎 使用 Draft.js 富文本编辑器,不能直接设 innerHTML,必须用 keyboard.insertText() 触发 React 合成事件
  • 小红书 是 Vue SPA,编辑器路由切换要走 Vue Router 内部导航
  • 视频号 用 wujie 微前端框架,DOM 藏在 <wujie-app> 的 Shadow DOM 里,普通的 CSS 选择器全部失效
  • 抖音 登录页直接内嵌在发布页 URL 里,需要靠 body text 实时检测扫码状态
  • B站 视频上传有独立的分片上传组件,要等「重新上传」按钮出现才算上传完毕,期间还需要等待转码

每个平台都是独立的小工程,做完之后再回头看,这些"脏活累活"才是自动化最能发挥价值的地方。

其他功能

除了核心的一键多发,还陆续加了:

  • 定时发布 — 可以预约发布时间,全自动
  • 📊 数据看板 — 实时统计发布成功率、各平台阅读量/点赞数
  • 👥 多账号管理 — 支持多个同平台账号切换
  • 🔍 文章管理 — 已发布文章列表、重发、删除

为什么开源

这个工具一开始只是为了解决自己的痛点。但后来发现很多做自媒体的朋友都有类似的困扰——内容分发是所有创作者绕不开的时间黑洞,但又不是每个人的核心业务,不值得花精力去优化。

开源出来,希望更多的人能用上。也欢迎提 Issue 和 PR。

GitHub 地址:https://github.com/wxfwxf911/polypost

觉得有用的话,给个 Star ⭐️ 就是最大的鼓励

后续计划

  • 海外平台接入(Medium / Dev.to / Hashnode / Reddit)
  • 文章翻译(中英互译,方便发海外平台)
  • AI 辅助优化标题和摘要

Top comments (0)