easy-upload:AI 自动发布到多个平台
这是“我的 100 个开源项目”系列的一篇,今天只讲一个具体项目:easy-upload。
做内容时,最烦的经常不是写稿,而是同一份内容要在多个后台重复登录、传视频或图片、上传封面、填写标题标签。更麻烦的是,文件传完不代表草稿保存了,草稿保存也不代表文章已经公开。
easy-upload 的想法很简单:让 AI 复用已经登录的浏览器,把这些动作整理成一个多平台发布任务,让每一步都有输入、状态和结果。
它负责多平台发布,但不是无条件一键群发
easy-upload 通过 Easy WebBridge 连接已经登录的浏览器。任务开始前,需要明确选择目标browserId和账号别名,然后读取当前平台页面,再按平台字段执行上传、填写、保存和回读。
一个上传任务可以包含:
- 视频或按顺序排列的图文图片;
- 独立封面;
- 标题、描述和标签;
- 分类、原创声明、可见范围和定时字段;
- 草稿、提交和公开状态的证据。
这些字段不是写在一段长提示词里,而是放进 JSON job。这样换平台时,可以清楚知道哪些字段已经填了,哪些字段当前页面没有,哪些字段还需要人工处理。
一次多平台任务怎么走
easy-upload 的常规流程是:
准备本地素材 → validate 检查任务 → plan 生成操作计划 → 选择浏览器和账号 → 上传媒体与封面 → 填写标题、标签和平台字段 → 回读预览并保存草稿 → 记录真实状态B 站视频有明确的媒体适配流程。抖音和小红书采用页面自适应路线,每次都要重新读取创作中心页面;页面结构变了,就停下来处理,不拿旧选择器硬点。文章类任务目前是离线准备和证据记录分支,不应写成已经覆盖所有文章平台的全自动发布器。
为什么要把状态拆开
很多发布记录的问题,不是没有点按钮,而是把不同结果混成了一个“成功”:
- 文件上传完成,只能说明文件传到了页面;
- 草稿保存成功,说明编辑器保留了内容;
- 管理页看到提交记录,说明平台收到了一次提交;
- 稳定公开页和标题、正文回读一致,才可以写成公开。
easy-upload 的记录器只做证据结构检查,不替人猜平台状态。它要求每次运行使用独立的事件文件,失败后追加修复记录,而不是覆盖旧记录。
它和 Easy WebBridge 怎么分工
Easy WebBridge 是浏览器连接底座,负责把任务送进指定的已登录浏览器。easy-upload 是上层业务 Skill,负责内容包、字段和状态。
这样分开之后,问题比较容易定位:
- 浏览器没连上,查 Easy WebBridge;
- 图片顺序或字段缺失,查 easy-upload 任务;
- 平台审核或验证码拦截,保留
needs_user_action,不绕过。
适合谁
如果你经常在多个自媒体后台发布视频、图文或封面,想让重复填写更稳定,easy-upload 可以作为 AI 发布任务层。它尤其适合需要多个账号、多个平台,而且不希望把 Cookie、密码或 Token 写进脚本的场景。
它不承诺平台审核、推荐或流量,也不会把一次点击直接记成公开。文章类任务默认只做离线准备和证据记录;媒体任务则按目标平台当前页面执行。
项目地址:
- GitHub:https://github.com/xxjrq/easy-upload
- 浏览器底座:https://github.com/xxjrq/easy-webbridge
在“我的 100 个开源项目”里,easy-upload 负责的是上传这一小块。选题、写作、封面和发布回读继续由其他具体项目接手,组合起来才是一条完整内容流程。