baoyu-post-to-weibo实战:从短微博到头条文章的人工审阅发布流程
baoyu-post-to-weibo 通过真实 Chrome 的 CDP 会话,把文字、图片、视频或 Markdown 文章填入微博编辑器。它的默认交付物不是公开微博链接,而是等待用户审阅的编辑器内容。本文基于固定 commit 的源码核对,操作案例非付费或账号实测;本次仅编写教程,不安装、不登录、不上传、不发布。
场景与边界:先决定短微博还是头条文章
技能提供两条路线:普通微博由 weibo-post.ts 处理文字和媒体,头条文章由 weibo-article.ts 处理 Markdown。用户没有指定类型时,Markdown 文件默认走头条文章,纯文本或文字配图默认走普通微博。因此“把这份 Markdown 发微博”并不自动等于提炼成一条短微博;若需要摘要卡片,应在请求里明确内容形态与删减范围。
普通微博脚本的媒体数量上限是十八个文件,包含图片和视频合计。这是该版本的脚本限制,不是对任何账号、任何混合上传方式的平台承诺。头条文章按该版本校验标题不超过三十二字符,摘要不超过四十四字符;标题过长会截断并警告,摘要过长会从正文重新生成。涉及品牌名、活动名、数字或引用时,自动截断可能改变意思,最好提前人工写短。
两条脚本都只装配编辑器,最终公开发布由用户手动完成。浏览器窗口保持打开不等于微博已经保存为可靠草稿,更不等于已发布;必须根据页面状态报告,不要生成不存在的微博地址。
前置依赖与按需安装
需要 Google Chrome 或 Chromium、Bun 或可执行 npx -y bun 的环境,以及用户自己的微博账号。首次登录必须由用户完成,验证码、异常验证和平台提示不能由自动化绕过。会话可能保留在 Chrome profile 中,因此 profile 也属于敏感本地数据。
只安装本技能到 Codex 的命令如下;--skill、--agent 是 skills 安装器选项,不是微博发布脚本参数:
1 | npx skills add jimliu/baoyu-skills --skill baoyu-post-to-weibo --agent codex |
Claude Code 用户把 --agent codex 替换为 --agent claude-code。该安装命令通常安装仓库当前版本,本文结论固定于文末 commit;若版本不同,应重新核对脚本帮助和行为。缺少运行时时,才单独考虑:
1 | npm install -g bun |
也可不全局安装而用 npx -y bun。安装技能与准备运行时是两件事,二者都不意味着已授权登录或公开发帖。
输入输出与已核实入口
普通微博需要正文以及可选本地媒体:--image <path>、--video <path> 可以重复指定,--profile <dir> 用于明确的浏览器配置目录。输出主要是编辑器状态和控制台提示,不是平台接口的发布回执。
头条文章接受 Markdown 文件,frontmatter 支持 title、summary、cover_image;也可用 --title、--summary、--cover 覆盖一次性字段。--profile 指定会话目录。不要把其他技能的 --theme 参数移植到微博转换:SKILL.md 明确要求使用默认主题,不传主题参数。
文章装配会先填标题与导语,再通过富文本粘贴把 HTML 放入 ProseMirror 编辑器,然后逐张替换 WBIMGPH_ 图片占位符。末尾检查残留占位符和期望/实际图片数量,因此输出警告是需要处理的质量信号,不是可忽略的调试信息。
可复制的自然语言 Agent 请求
1 | 请使用 baoyu-post-to-weibo,为普通微博编辑器准备下面这段已审稿的文字以及两张本地图片。先核对目标账号、图片顺序和文件路径;只填写,不点击发布。完成后说明正文是否完整、媒体是否上传完成、当前账号是谁,并把浏览器留给我审阅。遇到登录或验证让我接手,不得绕过。 |
文章请求可以更具体:
1 | 请把 ./posts/tool-review/article.md 作为微博头条文章装入编辑器,不发成普通短微博,不公开发布。先检查 title 不超过32字符、summary 不超过44字符;过长请给出候选文案让我确认,不要静默截断。转换时不传主题参数,逐张核对正文图,确认没有 WBIMGPH_ 残留后停止,等待我手动发布。 |
操作案例:一篇产品更新的两种分发形态
准备一份长文和两张演示图。想发短微博时,先由编辑明确摘取三条更新点,不直接把整个 Markdown 文件传给默认路由。已核实的普通微博入口示例如下,${BUN_X} 替换为 bun 或 npx -y bun,{baseDir} 替换成实际技能目录:
1 | ${BUN_X} {baseDir}/scripts/weibo-post.ts "本次更新包含搜索、导出和快捷键改进,详情见正式发布说明。" --image ./images/search.png --image ./images/export.png |
这一步会启动或复用匹配 profile 的 Chrome 并装配内容。用户检查账号、措辞、图片顺序、敏感信息和媒体上传进度,再自行决定是否公开提交。
需要保留完整技术说明时,使用头条文章入口:
1 | ${BUN_X} {baseDir}/scripts/weibo-article.ts ./posts/tool-review/article.md |
编辑器地址是 https://card.weibo.com/article/v3/editor。流程包括进入可编辑状态、填标题、填导语、插入 HTML、替换正文图片,再检查图片数量。真实任务中应逐项记录“已经完成”与“仍待用户处理”,例如“正文已填,第二张图上传失败,未发布”;不能只因脚本退出便报告成功。
如果网页显示没有头条文章入口或账号权限不足,停止并说明限制。不要把问题处理成“换选择器多点几次”,更不要未经允许改发普通微博。
配置与会话管理
偏好按项目 .baoyu-skills/baoyu-post-to-weibo/EXTEND.md、XDG 配置目录对应位置、用户 ~/.baoyu-skills/baoyu-post-to-weibo/EXTEND.md 的顺序查找,第一个命中为准。文档只明确支持默认 Chrome profile,未给出可靠的扩展键格式时,优先让 Agent读取现有配置,不要凭空创造 auto_publish 一类字段。
需要明确会话目录时,脚本已核实支持 --profile。底层工具也读取 WEIBO_BROWSER_CHROME_PATH 作为 Chrome 可执行文件位置,并支持 BAOYU_CHROME_PROFILE_DIR、WEIBO_BROWSER_PROFILE_DIR 等 profile 环境入口。独立 profile 有助于账号隔离,但不代表可以复制其他人的登录状态。多账号操作要在每次装配前核对页面身份,不仅检查目录名称。
验收清单
- 内容类型与用户目标一致,没有把短帖误发成头条文章。
- 页面显示的账号身份正确。
- 标题和导语满足该版本长度校验,未因截断改变含义。
- 普通微博媒体总数没有超过脚本限制,上传状态已完成。
- 头条文章没有
WBIMGPH_残留,正文图片数量和顺序正确。 - 富文本中的列表、链接、中文标点和段落抽查通过。
- 没有把“编辑器已填好”称为“已发布”。
- 最终报告明确由用户手动点击发布,保留尚未完成事项。
排错
Chrome 找不到:确认安装路径,必要时设置 WEIBO_BROWSER_CHROME_PATH。调试端口未准备好:检查本次技能创建的 CDP 实例与 profile 冲突,不要结束所有 Chrome 进程;普通工作窗口可能有未保存内容。登录失效或风控提示:让用户接手,真实浏览器也不保证永远通过平台检测。粘贴没反应:确认编辑器获得焦点,以及系统剪贴板、macOS 辅助功能等权限。图片数量不足:依据占位符和文件路径逐张检查,不应在校验失败时继续发布。重试可能重复正文:先检查现有编辑器状态,再决定清理指定内容还是新开文章,不要无差别重跑。标题被截断:主动提供短标题,不能把“脚本接受”当成“文案正确”。
相关技能及固定来源
文章准备见格式化 Markdown,媒体压缩见图片压缩,跨平台分发见公众号草稿和X 发布流程。
固定 commit 1567581c26ec29f4216c6e6835415bf30343b0e3 的核对来源包括 SKILL.md、普通微博脚本、头条文章脚本及浏览器工具。安装器参数另见 skills 安装器说明。





