baoyu-post-to-weibo
- 信任分
- 92/100
- 兼容 Agent
- 1
- 领域
- 文档
- 兼容 Agent
- Claude Code
- 信任分
- 92 / 100 · 已通过审计
- 作者 / 版本 / 许可
- @JimLiu · v1.56.1 · 未声明 license
- 安装命令数
- 1 条
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗
baoyu-post-to-weibo 自动把内容发到微博——支持普通博文、含图含视频、长文(头条文章)。它走「真实 Chrome 浏览器」路径,绕开微博的反爬检测。
设计思路
微博的 API 对个人开发者基本不开放,能拿到的接口受限严重。作者选了「用真实 Chrome + 你的登录态发布」这条路:从你的 Chrome 借登录 cookie,模拟人在网页上点发布按钮,避免 anti-bot 检测。
支持的发布形式
按 SKILL.md:
- Regular Posts(普通博文):纯文 / 图文 / 视频
- Headline Articles(头条文章):长文,可加封面、加阅读后投票
Post Type Selection
每篇内容自动选合适的发布类型:短(≤140 字)→ 普通博文;长(>140 字)→ 头条文章;带 1+ 视频 → 视频博文。
前置条件
你需要先在 Chrome 里登录微博账号;技能通过 CDP(Chrome DevTools Protocol)借用登录态。这要求你的 Chrome 是普通用户版,不是 headless。
工作流
① 读输入(Markdown / 纯文本 + 媒体附件);② 决定发布类型;③ 启动 CDP 连接到 Chrome;④ 模拟操作发布;⑤ 返回 weibo URL / 状态。
排错指南
专门一节,常见问题:cookie 过期、视频上传卡住、违禁词、限流。对应修复步骤。
备注
作者强调:脚本路径是 {baseDir}/scripts/<script-name>.ts,启动器走 ${BUN_X}(bun 优先,npx -y bun 备选)。
适合谁
- 微博自媒体,固定频次发文
- 多平台运营,一稿多发(公众号 + 微博 + X)
- 想把博客 RSS 自动同步到微博的人
- 公司账号需要批量发活动公告
何时不该用
- 商业代运营、营销自动化(违反微博条款)
- 高频次(每分钟多条)发布——会被风控
- 需要纯 API 路径(写大流量产品)——用不了这个
风险
微博反爬一直在变,技能可能某天突然挂掉,作者会通过更新 SKILL.md 修复。
Post to Weibo
Posts text, images, videos, and long-form articles to Weibo via real Chrome browser (bypasses anti-bot detection).
Script Directory
Important: All scripts are located in the scripts/ subdirectory of this skill.
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
{baseDir} - Script path =
{baseDir}/scripts/<script-name>.ts - Replace all
{baseDir}in this document with the actual path - Resolve
${BUN_X}runtime: ifbuninstalled →bun; ifnpxavailable →npx -y bun; else suggest installing bun
Script Reference:
| Script | Purpose |
|---|---|
scripts/weibo-post.ts |
Regular posts (text + images) |
scripts/weibo-article.ts |
Headline article publishing (Markdown) |
scripts/copy-to-clipboard.ts |
Copy content to clipboard |
scripts/paste-from-clipboard.ts |
Send real paste keystroke |
Preferences (EXTEND.md)
Check EXTEND.md in priority order — the first one found wins:
| Priority | Path | Scope |
|---|---|---|
| 1 | .baoyu-skills/baoyu-post-to-weibo/EXTEND.md |
Project |
| 2 | ${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-post-to-weibo/EXTEND.md |
XDG |
| 3 | $HOME/.baoyu-skills/baoyu-post-to-weibo/EXTEND.md |
User home |
If none found, use defaults.
EXTEND.md supports: Default Chrome profile
Prerequisites
- Google Chrome or Chromium
bunruntime- First run: log in to Weibo manually (session saved)
Regular Posts
Text + images/videos (max 18 files total). Posted on Weibo homepage.
${BUN_X} {baseDir}/scripts/weibo-post.ts "Hello Weibo!" --image ./photo.png
${BUN_X} {baseDir}/scripts/weibo-post.ts "Watch this" --video ./clip.mp4
Parameters:
| Parameter | Description |
|---|---|
<text> |
Post content (positional) |
--image <path> |
Image file (repeatable) |
--video <path> |
Video file (repeatable) |
--profile <dir> |
Custom Chrome profile |
Note: Script opens browser with content filled in. User reviews and publishes manually.
Headline Articles (头条文章)
Long-form Markdown articles published at https://card.weibo.com/article/v3/editor.
${BUN_X} {baseDir}/scripts/weibo-article.ts article.md
${BUN_X} {baseDir}/scripts/weibo-article.ts article.md --cover ./cover.jpg
Parameters:
| Parameter | Description |
|---|---|
<markdown> |
Markdown file (positional) |
--cover <path> |
Cover image |
--title <text> |
Override title (max 32 chars, truncated if longer) |
--summary <text> |
Override summary (max 44 chars, auto-regenerated if longer) |
--profile <dir> |
Custom Chrome profile |
Frontmatter: title, summary, cover_image supported in YAML front matter.
Character Limits:
- Title: 32 characters max (truncated with warning if longer)
- Summary/导语: 44 characters max (auto-regenerated from content if longer)
Markdown-to-HTML: Do NOT pass any --theme parameter when converting markdown to HTML. Use the default theme (no theme argument).
Article Workflow:
- Opens
https://card.weibo.com/article/v3/editor - Clicks "写文章" button, waits for editor to become editable
- Fills title (validated for 32-char limit)
- Fills summary/导语 (validated for 44-char limit)
- Inserts HTML content into ProseMirror editor via paste
- Replaces image placeholders one by one (copy image → select placeholder → paste)
Post-Composition Check: The script automatically verifies after all images are inserted:
- Remaining
WBIMGPH_placeholders in editor content - Expected vs actual image count
If the check fails (warnings in output), alert the user with the specific issues before they publish.
Post Type Selection
Unless the user explicitly specifies the post type:
- Markdown file (
.md) → Headline Article (头条文章) - Plain text / text with images → Regular Post
Troubleshooting
Chrome debug port not ready
If a script fails with Chrome debug port not ready or Unable to connect, kill only the CDP Chrome instances (those with --remote-debugging-port AND the baoyu-skills profile), then retry:
pkill -f "remote-debugging-port.*baoyu-skills/chrome-profile" 2>/dev/null; sleep 2
CRITICAL: Never kill all Chrome processes (pkill -f "Google Chrome"). Only kill Chrome instances launched by CDP with the baoyu-skills profile directory. The user may have regular Chrome windows open.
Important: This should be done automatically -- when encountering this error, kill the CDP Chrome instances and retry the command without asking the user.
Notes
- First run: manual login required (session persists)
- All scripts only fill content into the browser, user must review and publish manually
- Cross-platform: macOS, Linux, Windows
Extension Support
Custom configurations via EXTEND.md. See Preferences section for paths and supported options.