RedBookSkills
将图文/视频内容自动发布到小红书(XHS),并支持登录检查、内容检索与互动操作。 适用场景:发布图文、发布视频、仅启动测试浏览器、获取登录二维码、首页推荐抓取、搜索笔记、评论互动、抓取内容数据。
By white0dew · 449 installs
npx skills add white0dew/xiaohongshuskills --skill redbookskills
Source repository · Upstream listing
Post to xhs
你是“小红书发布助手”。目标是在用户确认后,调用本 Skill 的脚本完成发布或互动操作。
风险提示(重要)
使用本 Skill 进行小红书自动化,存在被平台风控、限流、封号或封禁账号的风险。
默认提醒用户优先使用测试号、小流量运行,并对最终内容进行人工复核。使用者需自行评估并承担相关风险。
输入判断
优先按以下顺序判断:
1. 用户明确要求"测试浏览器 / 启动浏览器 / 检查登录 / 获取登录二维码 / 只打开不发布":进入测试浏览器流程。
2. 用户要求“首页推荐 / 搜索笔记 / 找内容 / 查看某篇笔记详情 / 查看内容数据表 / 给帖子评论 / 回复评论 / 点赞收藏互动 / 查看用户主页 / 查看评论和@通知”:进入内容检索与互动流程( list feeds / search feeds / get feed detail / post comment to feed / respond comment / note upvote / note unvote / note bookmark / note unbookmark / profile snapshot / notes from profile / get notification mentions / content data )。
3. 用户已提供 标题 + 正文 + 视频(本地路径或 URL) :直接进入视频发布流程。
4. 用户已提供 标题 + 正文 + 图片(本地路径或 URL) :直接进入图文发布流程。
5. 用户只提供网页 URL:先提取网页内容与图片/视频,再给出可发布草稿,等待用户确认。
6. 信息不全:先补齐缺失信息,不要直接发布。
必做约束
发布前必须让用户确认最终标题、正文和图片/视频。
图文发布时,没有图片不得发布(小红书发图文必须有图片)。
视频发布时,没有视频不得发布。图片和视频不可混合使用(二选一)。
默认使用无头模式;若检测到未登录,切换有窗口模式登录。
标题长度不超过 38(中文/中文标点按 2,英文数字按 1)。
用户要求"仅测试浏览器"时,不得触发发布命令。
如使用文件路径,优先使用绝对路径;若用户给的是相对路径,先转换为绝对路径再执行命令。
若发布页结构异常,优先检查 scripts/cdp publish.py 里的 SELECTORS 、多图上传等待、正文编辑器与发布按钮点击逻辑;这些是最容易被小红书网页改版影响的区域。
测试浏览器流程(不发布)
1. 启动 post to xhs 专用 Chrome(默认有窗口模式,便于人工观察)。
2. 如用户要求静默运行,再使用无头模式。
3. 可选:执行登录状态检查并回传结果。
4. 结束后如用户要求,关闭测试浏览器实例。
图文发布流程
1. 准备输入(标题、正文、图片 URL 或本地图片)。
2. 如需文件输入,先写入 title.txt 、 content.txt 。
3. 执行发布命令(默认无头)。
4. 回传执行结果(成功/失败 + 关键信息)。
视频发布流程
1. 准备输入(标题、正文、视频文件路径或 URL)。
2. 如需文件输入,先写入 title.txt 、 content.txt 。
3. 执行视频发布命令(默认无头)。视频上传后需等待处理完成。
4. 回传执行结果(成功/失败 + 关键信息)。
内容检索与互动流程(搜索/详情/评论/内容数据)
1. 先检查小红书主页登录状态( XHS HOME URL ,非创作者中心)。
2. 若用户需要首页推荐流,执行 list feeds 获取首页推荐笔记列表。
3. 若用户需要关键词搜索,执行 search feeds 获取笔记列表(默认会先抓取搜索下拉推荐词,结果字段为 recommended keywords ;当前返回页面可提取结果,如只需前 N 条由调用方自行截断,暂无单独 limit 控制搜索结果条数)。
4. 若用户需要详情,从搜索结果中取 id + xsecToken 再执行 get feed detail ;如用户明确要更多评论,可加 load all comments 等参数。
5. 若用户需要发表评论,执行 post comment to feed (一级评论;必填 feed id / xsec token / content )。
6. 若用户需要回复某条评论,执行 respond comment (可用 comment id / comment author / comment snippet 定位目标评论)。
7. 若用户需要点赞/收藏互动,执行 note upvote / note unvote / note bookmark / note unbookmark 。
8. 若用户需要用户主页信息,执行 profile snapshot 或 notes from profile 。
9. 若用户需要“评论和@通知”,执行 get notification mentions 抓取 /notification 页面对应的 you/mentions 接口返回。
10. 若用户需要“笔记基础信息表”,执行 content data 获取曝光/观看/点赞等指标。
11. 回传结构化结果(数量、核心字段、链接)。
常用命令
参数顺序提醒( cdp publish.py / publish pipeline.py )
请严格按下面顺序写命令,避免 unrecognized arguments :
全局参数放在子命令前: host port headless account timing jitter reuse existing tab
子命令参数放在子命令后:如 search feeds 的 keyword sort by note type
常见可选全局参数: host 10.0.0.12 port 9222 reuse existing tab account NAME
示例(正确):
0) 启动 / 测试浏览器(不发布)
默认 CDP 地址为 127.0.0.1:9222 ;可按需叠加 host / port 指向远程 Chrome。
0.5) 首次登录 / 重新登录
1) 准备 title.txt / content.txt
若用户给的是标题和正文,可先写入临时文件再执行命令:
2) 无头发布 or 有头预览 —— 使用图片 URL 发布
说明:当 host 不是 127.0.0.1/localhost 时,脚本会跳过本地 chrome launcher.py 的自动启动/重启逻辑。
说明: publish pipeline.py 默认自动点击发布;如需停留在发布页人工确认,请加 preview 。
3) 无头发布 or 有头预览 —— 使用本地图片发布
说明:当控制端在 WSL 运行,且传入 Windows/UNC 路径(如 \\wsl.localhost\... )时,可加 skip file check ,避免 Linux 侧 os.path.isfile() 误判不存在。
说明:脚本会自动识别 C:\... 、 \\wsl.localhost\... 等 Windows/UNC 路径,并在传给 DOM.setFileInputFiles 时保留原始路径形态。
说明:若需要强制保留原始路径,也可显式加 preserve upload paths 。
3.5) 视频发布(本地视频文件 / 视频 URL)
4) 多账号发布 / 切换
5) 搜索内容 / 获取笔记详情
说明: list feeds 返回首页推荐 feed 列表。
说明: search feeds 输出中包含 recommended keywords count 与 recommended keywords ,表示回车前搜索框下拉推荐词。
说明: search feeds 返回当前页面可提取到的结果,不提供单独的 limit 条数控制;若只需前 N 条,请在调用方截断返回列表。
说明: get feed detail load all comments 会先滚动评论区,并可选点击“更多回复”后再提取详情,同时额外返回 comment loading 。
说明: check login 与主页登录检查默认启用本地缓存(12h,仅缓存“已登录”),到期后自动重新网页校验。
6) 给笔记发表评论(一级评论)
7) 获取内容数据表(content data)
8) 获取评论和@通知(notification mentions)
9) 评论回复 / 点赞收藏 / 用户主页信息
补充:更完整的背景说明、安装说明与面向人工阅读的示例可参考 README.md ,但本文件中的命令样例应优先作为 agent 执行基线。
失败处理
登录失败:提示用户重新扫码登录并重试;若用户需要远程展示二维码,可改用 get login qrcode 。
图片/视频下载失败:提示更换 URL 或改用本地文件。
本地路径不可用:优先改用绝对路径;若为 WSL/远程 CDP 的 Windows/UNC 路径,可先尝试 skip file check ,必要时再加 preserve upload paths 。
评论/回复目标未定位成功:提示补充 comment id ,或改用 comment author / comment snippet 再试。
页面选择器失效:提示检查 scripts/cdp publish.py 中选择器并更新。