| name | xiaohongshu-publisher |
| description | 小红书自动发布工具 - 通过 Mac mini Playwright 自动化发布图文内容 |
| trigger | 发布小红书、xiaohongshu、xhs、小红书发布 |
| version | 1.2.0 |
| created | "2026-03-08T00:00:00.000Z" |
| updated | "2026-03-10T00:00:00.000Z" |
| changelog | [{"1.2.0":"更新为 Node.js/CDP 实现(替换旧 Python/Playwright 方案)"},{"1.0.0":"初始版本 - 支持图文发布,通过 N8N flow 调度"}] |
Xiaohongshu Publisher
小红书自动发布工具 - 图文内容,N8N → SSH → Mac mini → CDP → Windows PC Chrome。
架构
N8N Webhook (美国 VPS)
↓ platform === 'xiaohongshu'
SSH 到 Mac mini (100.108.7.63)
↓ publish-xiaohongshu-image.cjs --content {contentDir}
Mac mini CDP WebSocket (Tailscale 内网直连)
↓ CDP WebSocket
Windows PC (100.97.242.124:19225)
↓ 浏览器自动化
小红书发布成功 → 飞书通知
关键路径:
- N8N (美国 VPS) → SSH → Mac mini (100.108.7.63) → CDP → Windows PC (100.97.242.124:19225)
- Mac mini 脚本位置:
~/perfect21/cecelia/packages/workflows/skills/xiaohongshu-publisher/scripts/publish-xiaohongshu-image.cjs
调用方式
通过 N8N Webhook(推荐)
curl -X POST https://n8n.zenjoymedia.media/webhook/content-publish \
-H "Content-Type: application/json" \
-d '{
"taskId": "task-001",
"title": "文章标题(用于飞书通知)",
"content": "正文摘要(用于飞书通知)",
"contentDir": "/Users/administrator/.xiaohongshu-queue/2026-03-10/image-1",
"targetPlatforms": ["xiaohongshu"]
}'
注意: contentDir 是 Mac mini 上的内容目录路径,必须:
- 已存在且包含至少一张图片(
.jpg/.jpeg/.png/.gif/.webp)
- 可选包含
title.txt(标题)和 content.txt(正文)
直接运行脚本(开发/测试)
NODE_PATH=/Users/administrator/perfect21/cecelia/node_modules \
node ~/perfect21/cecelia/packages/workflows/skills/xiaohongshu-publisher/scripts/publish-xiaohongshu-image.cjs \
--content ~/.xiaohongshu-queue/2026-03-10/image-1/
NODE_PATH=/Users/administrator/perfect21/cecelia/node_modules \
node ~/perfect21/cecelia/packages/workflows/skills/xiaohongshu-publisher/scripts/publish-xiaohongshu-image.cjs \
--content ~/.xiaohongshu-queue/2026-03-10/image-1/ --dry-run
批量发布
bash ~/perfect21/cecelia/packages/workflows/skills/xiaohongshu-publisher/scripts/batch-publish-xiaohongshu.sh 2026-03-10
内容目录结构
~/.xiaohongshu-queue/{date}/
├── image-{id}/
│ ├── title.txt → 标题(可选,不超过 20 字;无则从正文前 20 字生成)
│ ├── content.txt → 正文(可选,支持 #话题# 格式)
│ └── image.jpg → 图片(必需,最多 9 张:image1.jpg, image2.jpg...)
└── image-{id}/done.txt → 发布成功后自动创建,批量发布时跳过
配置
| 参数 | 值 |
|---|
| Mac mini IP (Tailscale) | 100.108.7.63 |
| Windows PC IP | 100.97.242.124 |
| CDP 端口 | 19225 |
| 发布页面 | https://creator.xiaohongshu.com/publish/publish |
| Windows 图片目录 | C:\Users\xuxia\xiaohongshu-media\{date}\{dir}\ |
| 截图目录(调试) | /tmp/xiaohongshu-publish-screenshots/ |
| NODE_PATH | /Users/administrator/perfect21/cecelia/node_modules |
| N8N SSH Credential | VPS SSH Key (ID: vvJsQOZ95sqzemla) |
N8N Flow 节点说明
| 节点 ID | 名称 | 说明 |
|---|
| n2 | 准备 | 解析请求,提取 contentDir,supported 包含 xiaohongshu |
| n3 | 是否跳过 | IF 判断 skip |
| n10 | 平台路由 | Switch 节点,xiaohongshu → output[1] → n9 |
| n9 | SSH-小红书 | SSH 到 Mac mini (100.108.7.63),执行 publish-xiaohongshu-image.cjs |
| n11 | 解析-小红书 | 优先 JSON 解析,降级关键词匹配,构建飞书通知 |
| n12 | 飞书-小红书 | 发送发布结果通知 |
故障排查
CDP 连接失败
curl http://100.97.242.124:19225/json
常见原因:
- Windows PC Chrome(19225)未以调试模式启动
- Tailscale 网络断开(
tailscale status 检查)
登录失效
在 Windows PC 的 Chrome(19225)上重新登录小红书账号(creator.xiaohongshu.com)。
查看调试截图
ls -la /tmp/xiaohongshu-publish-screenshots/
版本: 1.2.0
状态: 生产就绪
架构: N8N → SSH → Mac mini Node.js/CDP → Windows PC Chrome → 小红书