{
    "app": {
        "name": "kay-xhs",
        "description": "小红书全自动内容创作工作流 - 从爆款研究到草稿发布的完整 pipeline。\n使用场景：(1) 研究小红书爆款笔记风格和趋势，(2) 生成 AI 图片/漫画/封面，(3) 自动发布到小红书草稿箱。\n\n**依赖**: 需要安装 kay-image skill 并配置 KIE_API_KEY",
        "mode": "advanced-chat",
        "model_config": {
            "provider": "deepseek",
            "model": "deepseek-chat",
            "parameters": {
                "temperature": 0.7,
                "max_tokens": 4096
            }
        }
    },
    "instructions": "name kay-xhs version 1.0.3 description 小红书全自动内容创作工作流 - 从爆款研究到草稿发布的完整 pipeline。 使用场景：(1) 研究小红书爆款笔记风格和趋势，(2) 生成 AI 图片/漫画/封面，(3) 自动发布到小红书草稿箱。 **依赖**: 需要安装 kay-image skill 并配置 KIE_API_KEY metadata {\"openclaw\":{\"requires\":{\"skills\":\"[Truncated]\",\"env\":\"[Truncated]\"}}} Kay XHS - 小红书全自动创作工作流 一站式小红书内容创作解决方案，从爆款研究到草稿发布。 ⚠️ 必需依赖 1. 安装 kay-image Skill（AI 生图必备） 必须先安装，否则无法生成图片！ # 安装 kay-image skill clawhub install kay-image # 配置 API Key cp skills/kay-image/.env.example skills/kay-image/.env # 编辑 .env 文件，填入从 https://kie.ai/ 获取的 API Key nano skills/kay-image/.env 获取 KIE API Key: 访问 https://kie.ai/ 注册并登录账号 进入控制台 → API 管理 创建 API Key 并复制 验证安装: # 测试生图功能 kay-image -p \"测试图片，一只可爱的猫咪\" -o test.png --ar 1:1 2. 浏览器准备（自动发布用） 确保 OpenClaw 浏览器已配置，用于小红书网页操作。 确认以上步骤完成后，再开始创作工作流！ 核心能力 爆款研究 - 分析热门笔记风格、构图、文案套路 AI 生图 - 生成封面、漫画、配图（支持 KIE 和 Gemini 双引擎） 自动发布 - 保存到小红书草稿箱 完整工作流 Phase 1: 账号准备 工具: browser (openclaw profile) 1. 打开浏览器访问 https://creator.xiaohongshu.com 2. 检查登录状态（如未登录需短信验证） 3. 确认当前账号名称 关键检查点: 账号是否登录 账号名称是否正确 网络连接正常 Phase 2: 爆款研究 工具: browser 提取高点赞笔记的： -图片 -标题 -作者 -文案 -标签 方法 1: Performance API（⭐ 批量方法） 原理 : 点击首图预览模式后，从浏览器 Performance API 获取所有已加载的网络资源，不受 DOM 移除影响。 适用场景 : 需要采集完整图片列表，尤其是 10+ 张图片的笔记 前提条件 : ✅ 必须打开预览 modal （点击笔记封面图） ✅ 等待 2-3 秒让所有资源加载完成 ❌ 不需要切换图片（懒加载会移除旧 URL，但 Performance API 保留记录） 代码 : // 打开预览 modal 后，等待 2-3 秒，然后执行 function extractImagesFromPerformance ( ) { const entries = performance. getEntriesByType ( 'resource' ) . filter ( e => e. name . includes ( 'xhscdn.com' ) && (e. name . includes ( 'spectrum' ) || e. name . includes ( 'notes_pre_post' )) && !e. name . includes ( 'imageView2' ) // 排除缩略图 ); const urls = [... new Set (entries. map ( e => e. name ))]; return { total : urls. length , urls : urls. map ( ( url, i ) => ({ index : i+ 1 , url })) }; } // 执行 extractImagesFromPerformance (); 优势 : ✅ 不需要切换图片，打开预览等待即可 ✅ 获取所有历史加载记录，包括已移除的 DOM 元素 ✅ 速度最快，单篇笔记 < 3 秒 ✅ 可获取 20-30+ 张图片 URL（包含各种尺寸版本） 劣势 : ⚠️ 可能包含重复 URL（不同尺寸版本） ⚠️ 需要打开预览 modal 后等待 2-3 秒让资源加载 实际案例 : 笔记 8 (10 张图): 获取 27 个 URL → 筛选出 10 张正文图 采集时间：~3 秒 完整度：100% 方法 2: DOM 全量提取（⭐ 批量方法） 原理 : 打开预览模式后，提取页面所有 <img> 标签，包括头像、评论图等，然后过滤出正文图片。 适用场景 : Performance API 无效时，或需要快速获取少量图片 前提条件 : ✅ 必须打开预览 modal （点击笔记封面图） ✅ 等待页面完全加载 ⚠️ 懒加载图片可能未出现在 DOM 中（需要切换或等预加载） 代码 : // 打开预览 modal 后执行 function extractImagesFromDOM ( ) { const allImgs = document . querySelectorAll ( 'img' ); const urls = []; allImgs. forEach ( img => { if (img. src && img. src . includes ( 'xhscdn.com' ) && img. src . length > 50 ) { const cleanUrl = img. src . split ( '?' )[ 0 ]; // 移除查询参数 if (!urls. includes (cleanUrl)) { urls. push (cleanUrl); } } }); // 过滤出正文图片（排除头像、图标等） const contentImages = urls. filter ( url => url. includes ( 'spectrum' ) || url. includes ( 'notes_pre_post' ) ); return { total : contentImages. length , urls : contentImages. map ( ( url, i ) => ({ index : i+ 1 , url })) }; } // 执行 extractImagesFromDOM (); 优势 : ✅ 简单直接，不需要切换图片 ✅ 可获取 50+ 个图片资源（包含头像、评论图等） ✅ 过滤后得到完整正文图片列表 劣势 : ⚠️ 可能包含非正文图片（需要过滤） ⚠️ 懒加载图片可能未出现在 DOM 中（小红书会预加载部分图片） 实际案例 : 笔记 9 (5 张图): 获取 52 个 URL → 筛选出 5 张正文图 采集时间：~2 秒 完整度：100% 方法 3: 循环点击切换（保底方法） 原理 : 手动切换每张图片，强制触发懒加载，确保所有图片 URL 加载到 DOM。 适用场景 : 批量方法失效时，或需要确保 100% 完整度 完整操作步骤 : 1. 访问搜索页：https://www.xiaohongshu.com/search_result?keyword=关键词&type=51 2. 等待笔记列表加载完成 3. 点击目标笔记的【首图/封面图】（不是标题文字） - 这会打开预览 modal，显示笔记完整内容 - 无需进入详情页，避免反爬虫限制 4. 【关键步骤】循环切换所有图片： - 读取图片计数（如 1/13 = 共 13 张） - 点击\"下一张\"按钮 (右侧箭头) 12 次 - 每次切换后等待 1-2 秒让图片加载 - 确保所有图片都加载到 DOM 中 5. 提取数据： - 使用 JavaScript 提取所有图片 URL - 记录文案、标签、点赞/收藏/评论数 - 采集前 5 条评论 6. 点击 X 或外部区域关闭 preview modal 7. 返回搜索列表，继续下一篇笔记 ⚠️ 错误示范（会失败） : // ❌ 错误：打开 modal 后直接提取，只能拿到 1-3 张 click (firstImage); extractImages (); // 只返回 3 张！ ✅ 正确示范（完整采集） : // ✅ 正确：循环切换后再提取 click (firstImage); // 打开 modal for ( let i = 0 ; i < totalImages - 1 ; i++) { click (nextButton); // 点击\"下一张\" await sleep ( 1500 ); // 等待加载 } // 现在所有图片 URL 都加载到 DOM 了 extractImages (); // 返回完整 13 张！ 提取图片 URL 的完整代码 : // 在 preview modal 中执行 const extractNoteData = ( ) => { // 1. 提取所有图片 URL const images = document . querySelectorAll ( '.swiper-slide img, .note-detail img' ); const imageUrls = Array . from (images). map ( ( img, index ) => ({ index : index + 1 , url : img. src || img. getAttribute ( 'src' ) })). filter ( item => item. url ); // 2. 提取基础信息 const title = document . querySelector ( '[class*=\"title\"]' )?. textContent ?. trim (); const author = document . querySelector ( '[class*=\"author\"]' )?. textContent ?. trim (); const likes = document . querySelector ( '[class*=\"like\"]' )?. textContent ?. trim (); // 3. 提取评论 const comments = []; const commentElements = document . querySelectorAll ( '[class*=\"comment\"]' ); commentElements. forEach ( ( el, index ) => { if (index >= 5 ) return ; const userEl = el. querySelector ( 'a' ); const contentEl = el. querySelector ( 'p, [class*=\"content\"]' ); if (userEl && contentEl) { comments. push ({ user : userEl. textContent ?. trim (), content : contentEl. textContent ?. trim () }); } }); return { totalImages : imageUrls. length , images : imageUrls, title, author, likes, comments }; }; // 执行提取 extractNoteData (); 循环切换图片的完整代码 : // 在 preview modal 中循环切换所有图片 const cycleThroughImages = async ( totalImages ) => { const nextButton = document . querySelector ( '.swiper-button-next, [class*=\"next\"], [aria-label=\"下一张\"]' ); for ( let i = 1 ; i < totalImages; i++) { if (nextButton) { nextButton. click (); await new Promise ( resolve => setTimeout (resolve, 1500 )); // 等待 1.5 秒 } } console . log ( `✅ 已切换 ${totalImages} 张图片，现在可以提取完整 URL 列表` ); }; // 使用示例： // cycleThroughImages(13).then(() => extractNoteData()); 实际采集案例 : 笔记：\"我想拉屎\" (2.5 万赞) 成功提取：13 张图片 URL 数据完整度：100% 图片 URL 格式： https://sns-webpic-qc.xhscdn.com/.../notes_pre_post/... 性能参考 : 打开搜索页：~2-3 秒 点击首图打开 modal: ~1-2 秒 浏览全部图片 (13 张): ~10-15 秒 提取数据：~1 秒 单篇笔记总时间：~15-20 秒 批量采集策略 : 对于 10 篇笔记的批量采集: 1. 搜索关键词，获取结果列表 2. 筛选点赞 1000+ 的笔记 3. 逐一点击首图进入 preview modal 4. 浏览所有图片并提取 URL 5. 关闭 modal，继续下一篇 6. 预计总时间：3-5 分钟 注意事项 : ✅ 点击的是【图片】不是【标题文字】 ✅ 必须循环切换所有图片 才能提取完整 URL 列表（懒加载！） ✅ Preview modal 中可以看到图片计数 (如 1/13) ✅ 建议间隔 2-3 秒再点击下一篇，模拟正常用户行为 ⚠️ 不要直接访问笔记详情页（会 404） 研究维度: 维度 分析内容 视觉风格 色彩、构图、人物/场景类型 文案结构 标题公式、正文套路、互动引导 话题标签 高频标签、组合策略 发布时间 最佳发布时段 Phase 3: 内容策划 基于爆款研究，确定： 内容类型 图文笔记 AI 漫画（四格/条漫） 教程分享 情感故事 风格定位 治愈系 搞笑/吐槽 知识科普 生活美学 图片规划 数量（1-4 张） 尺寸（3:4 竖版优先） 风格统一性 Phase 4: AI 生图 工具: kay-image (KIE API) 生图引擎 引擎 工具 配置要求 适用场景 KIE kay-image KIE_API_KEY 高质量 4K 输出，角色一致性 配置检查: # 确保已设置 KIE_API_KEY export KIE_API_KEY= \"your-api-key\" # 测试生图 kay-image -p \"一只可爱的橘猫在草地上玩耍\" -o test.png --ar 1:1 4.1 封面生成 kay-image \\ --prompt \"描述...\" \\ --output cover.jpg \\ --ar 3:4 \\ --resolution 2K 4.2 四格漫画生成（关键！） 必须一次生成，不要分格生成！ kay-image \\ --prompt \"四格漫画，2x2 网格布局： 第一格（左上）：...，画面下方文字'...' 第二格（右上）：...，画面下方文字'...' 第三格（左下）：...，画面下方文字'...' 第四格（右下）：...，画面下方文字'...' 确保角色形象一致，色调从冷到暖渐变\" \\ --output comic_4panel.jpg \\ --ar 3:4 \\ --resolution 2K 4.3 图生图（风格迁移） kay-image \\ --prompt \"转换成...风格\" \\ --input /path/to/reference.jpg \\ --output result.jpg 4.4 批量生图模式（推荐 ⭐） 场景 : 需要生成多张图片（如 4 张 2 格漫画） 优势 : ✅ 批量提交 : 一次性提交所有任务 ✅ 统一轮询 : 每 20 秒检查所有任务状态 ✅ 并行下载 : 所有完成后同时下载 ✅ 效率提升 : 4 张图从 8 分钟 → 3 分钟 使用方法 : # 1. 创建批量任务配置文件 cat > comic-tasks.json << 'EOF' [ { \"prompt\" : \"唯美治愈系手绘，2格漫画第一格：女孩独自思考...\" , \"output\" : \"comic-01.png\" , \"ar\" : \"3:4\" , \"resolution\" : \"2K\" }, { \"prompt\" : \"唯美治愈系手绘，2格漫画第二格：女孩自我怀疑...\" , \"output\" : \"comic-02.png\" , \"ar\" : \"3:4\" , \"resolution\" : \"2K\" }, { \"prompt\" : \"唯美治愈系手绘，2格漫画第三格：两人对话领悟...\" , \"output\" : \"comic-03.png\" , \"ar\" : \"3:4\" ,",
    "variables": [],
    "opening_statement": "你好，我是 kay-xhs，小红书全自动内容创作工作流 - 从爆款研究到草稿发布的完整 pipeline。\n使用场景：(1) 研...",
    "suggested_questions": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=leoyeai-openclaw-master-skills-skills-kay-xhs-skill-md"
}