redbook-creator-publish

小红书帖子创作与发布技能。用于:(1) 生成小红书风格的帖子内容(标题+正文+标签)(2) 获取/生成帖子配图 (3) 自动上传到小红书创作者平台。触发词:小红书创作、create redbook、小红书、红书、笔记创作、帖子创作

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "redbook-creator-publish" with this command: npx skills add yanquankun/redbook-creator-publish/yanquankun-redbook-creator-publish-redbook-creator-publish

小红书帖子创作与发布技能

概述

快速创作并发布小红书帖子,包括标题、正文、标签、配图,自动上传到小红书平台。

核心特点(v5.3):

  • 🚀 极简流程:搜索 → 生成内容 → 获取配图 → 验证图片 → 自动上传
  • 🖼️ 智能配图:从网络下载公开图片或 AI 生成
  • 图片验证:自动检测无效图片并删除,确保5-6张有效图片
  • 📁 精简输出:只生成 preview.html、config.json、images/
  • 🤖 自动上传:直接触发,减少手动确认
  • 🔐 登录检测:智能检测登录状态,20秒等待提示
  • 🐍 零依赖:Python 原生能力为主

前置检查(第一步,自动执行)

检查 Python

python3 --version  # 要求 3.7+

全局检测并安装 Playwright

重要: 只在未安装时才安装,避免重复安装

# 检查 playwright 是否已安装(全局检测)
if python3 -c "import playwright" 2>/dev/null; then
    echo "✅ Playwright 已安装,跳过安装"
else
    echo "📦 正在安装 Playwright 到用户全局环境..."
    # 安装到用户全局环境
    pip3 install --user playwright
    # 安装 Chromium 浏览器
    python3 -m playwright install chromium
    echo "✅ Playwright 安装完成"
fi

检测逻辑:

  • 先检查系统是否已安装 playwright 模块
  • 如果已安装,跳过安装步骤
  • 如果未安装,安装到用户全局环境(--user)
  • 只需安装一次,后续使用无需重复安装

输出:✅ 环境检查完成


工作流程

步骤1:深度搜索话题

使用 WebSearch 工具搜索 2-3 个相关关键词,获取最新数据和案例。

步骤2:生成帖子内容

  • 标题:不超过20个字符(含emoji),包含钩子词,简洁有力
  • 正文:300-500字,开头钩子 → 核心内容 → 总结互动
  • 标签:5个(精选核心标签,不要超过5个)

步骤3:获取配图(5-6张)

优先级:

  1. 从网络下载公开图片(Unsplash/Pexels/Pixabay)
  2. AI 生成补充(可选,如果模型无法生成则跳过)

要求:

  • 数量:5-6张(1封面 + 4-5内容图)
  • 命名:cover.png, image_1.png, image_2.png, image_3.png, image_4.png...
  • 格式:PNG/JPG

🎯 精准配图关键词生成策略(重要!)

核心原则: 搜索关键词必须高度具体化,避免泛化词汇

关键词生成规则:

  1. 主体词必须具体化: 不用泛化词,用具体实体名

    • ❌ 错误: "游戏" "game" "gaming"
    • ✅ 正确: "Minecraft" "我的世界方块" "Minecraft Steve"
  2. 场景/画面词优先: 描述具体画面内容

    • ❌ 错误: "美食" "food"
    • ✅ 正确: "拉面特写" "ramen noodles closeup"
  3. 英文关键词为主: 图库用英文搜索效果更好

    • 将中文主题翻译成对应的英文专有名词
    • 游戏:用游戏官方英文名
    • 品牌:用品牌英文名

不同主题的关键词构建:

主题类型泛化词(❌避免)精准词(✅使用)
游戏《我的世界》game, gaming, 游戏Minecraft, Minecraft blocks, Minecraft world, pixel art cube
游戏《原神》game, RPGGenshin Impact, Genshin character, anime game
游戏《王者荣耀》MOBA, 手游Honor of Kings, MOBA hero
美食-火锅food, 美食hotpot, Chinese hotpot, spicy pot
旅行-日本travel, 旅行Tokyo tower, Japan temple, cherry blossom
科技-AItechnologyAI robot, artificial intelligence, neural network
穿搭-韩系fashion, 穿搭Korean outfit, OOTD, minimalist style

配图搜索执行步骤:

  1. 分析帖子主题,提取核心实体(游戏名/品牌名/地点名等)
  2. 将核心实体转换为英文专有名词
  3. 组合搜索词: [英文专有名词] + [画面描述词]
  4. 每张图使用不同角度的关键词组合

示例 - 主题"我的世界游戏":

封面图: "Minecraft world landscape" 或 "Minecraft building"
图1: "Minecraft blocks closeup"
图2: "Minecraft Steve character"
图3: "Minecraft castle build"
图4: "Minecraft pixel art"
图5: "Minecraft survival gameplay"

示例 - 主题"火锅推荐":

封面图: "Chinese hotpot restaurant"
图1: "hotpot ingredients fresh"
图2: "spicy hotpot soup"
图3: "hotpot meat slices"
图4: "hotpot dipping sauce"
mkdir -p ./redbook-article/[主题]-[日期]/images/
# 使用精准关键词下载图片到 images 目录

步骤3.5:验证图片有效性(重要!)

下载完成后必须验证每张图片,删除无效图片并补充下载,确保最终有5-6张有效图片。

import os
import struct

def is_valid_image(file_path):
    """验证图片文件是否有效"""
    if not os.path.exists(file_path):
        return False

    # 检查文件大小(至少1KB)
    if os.path.getsize(file_path) < 1024:
        return False

    try:
        with open(file_path, 'rb') as f:
            header = f.read(32)

            # PNG: 89 50 4E 47 0D 0A 1A 0A
            if header[:8] == b'\x89PNG\r\n\x1a\n':
                return True

            # JPEG: FF D8 FF
            if header[:3] == b'\xff\xd8\xff':
                return True

            # GIF: GIF87a 或 GIF89a
            if header[:6] in (b'GIF87a', b'GIF89a'):
                return True

            # WebP: RIFF....WEBP
            if header[:4] == b'RIFF' and header[8:12] == b'WEBP':
                return True

    except Exception:
        return False

    return False

def validate_and_clean_images(images_dir):
    """验证并清理无效图片,返回有效图片列表"""
    valid_images = []
    invalid_images = []

    for filename in sorted(os.listdir(images_dir)):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.webp')):
            file_path = os.path.join(images_dir, filename)
            if is_valid_image(file_path):
                valid_images.append(filename)
                print(f"✅ {filename} - 有效")
            else:
                invalid_images.append(filename)
                print(f"❌ {filename} - 无效,已删除")
                os.remove(file_path)

    return valid_images, invalid_images

# 使用示例
images_dir = '/path/to/images'
valid, invalid = validate_and_clean_images(images_dir)
print(f"\n有效图片: {len(valid)} 张")
print(f"已删除无效图片: {len(invalid)} 张")

# 如果有效图片不足5张,需要补充下载
if len(valid) < 5:
    print(f"⚠️ 图片不足,需要补充 {5 - len(valid)} 张")

验证流程:

  1. 下载所有图片后,运行验证脚本
  2. 删除无效图片(文件头不正确或大小过小)
  3. 统计有效图片数量
  4. 如果有效图片少于5张,必须补充下载新图片
  5. 重复验证直到有5-6张有效图片

步骤4:生成本地文件

目录结构:

redbook-article/
└── [主题]-[日期]/
    ├── preview.html
    ├── config.json
    └── images/
        ├── cover.png
        ├── image_1.png
        ├── image_2.png
        ├── image_3.png
        └── image_4.png

生成 config.json(重要:使用 json.dump 自动转义):

import json

config = {
  "title": title,
  "content": content,  # json.dump 会自动处理转义
  "tags": tags,
  "cover": "images/cover.png",
  "images": ["images/image_1.png", "images/image_2.png", "images/image_3.png", "images/image_4.png"]
}

with open('config.json', 'w', encoding='utf-8') as f:
    json.dump(config, f, ensure_ascii=False, indent=2)

生成 preview.html(使用 Newsprint 风格模板):

  1. 读取模板:/Users/a58/.claude/skills/redbook-creator-publish/assets/preview-template.html
  2. 替换变量:
    • {{TITLE}} → 标题
    • {{CONTENT}} → 正文
    • {{DATE}} → 日期
    • {{TAGS}} → 标签HTML(每个标签包裹在 <span class="tag"> 中)
  3. 添加封面图和配图的 <img> 标签
  4. 保存为 preview.html

步骤5:自动上传到小红书

重要:必须触发自动上传,即使前面有错误也要尝试。

python3 /Users/a58/.claude/skills/redbook-creator-publish/scripts/auto_upload_playwright.py \
  --config ./redbook-article/[主题]-[日期]/config.json

流程(v5.1 优化):

  1. 打开小红书创作者平台
  2. 智能登录检测:
    • 自动检测上传控件DOM是否存在
    • 如未登录,提示用户在 20 秒内登录
    • 每秒检测一次,登录成功后自动继续
    • 20 秒后仍未检测到控件,退出并提示手动上传
  3. 上传图片(cover.png 第一张)
  4. 填写标题
  5. 填写正文
  6. 逐个输入标签(间隔1秒+回车)
  7. 点击发布
  8. 浏览器保持打开(不自动关闭)

注意事项

内容创作

  • 标题:不超过20个字符(含emoji)
  • 正文字数:300-500字
  • 配图数量:5-6张(1封面+4-5副图)
  • 标签:5个(不要超过5个)
  • 图片来源:公开免费图库或 AI 生成
  • 图片验证:下载后必须验证有效性,删除无效图片并补充

自动上传(v5.1)

  • 必须触发上传脚本
  • 首次使用:在20秒提示期内登录小红书账号
  • 后续使用:自动保持登录,无需重复登录
  • 标签间隔 1 秒并回车
  • 浏览器不会自动关闭,可继续查看或编辑
  • 如 20 秒内未登录,请手动上传或重新执行

技术配置

  • Python 3.7+
  • Playwright(只需安装一次,全局检测)
  • config.json 中文符号需正确转义

手动上传备选方案

如果自动上传失败:

  1. 打开:https://creator.xiaohongshu.com/publish/publish
  2. 按顺序上传图片(cover.png 第一张)
  3. 从 preview.html 复制标题和正文
  4. 添加标签
  5. 点击发布

参考文档


更新日志

v5.4 (2026-01-27)

  • ✅ 新增精准配图关键词生成策略
  • ✅ 添加不同主题的关键词构建规则表
  • ✅ 强调使用英文专有名词搜索
  • ✅ 提供游戏/美食/旅行等主题的搜索关键词示例
  • ✅ 更新style-guide.md增加主题精准匹配原则

v5.3 (2026-01-27)

  • ✅ 新增图片有效性验证(检测文件头和大小)
  • ✅ 自动删除无效图片并提示补充下载
  • ✅ 配图数量调整为5-6张(1封面+4-5副图)
  • ✅ 添加 allowedCommands 配置,减少手动确认提示

v5.2 (2026-01-27)

  • ✅ 标题限制改为20个字符(含emoji)
  • ✅ 标签数量从8-10个改为5个
  • ✅ 配置自动批准权限,减少确认提示

v5.1 (2026-01-27)

  • ✅ 新增智能登录检测(检测上传控件DOM)
  • ✅ 20秒登录等待提示,每秒检测
  • ✅ 浏览器不自动关闭,保持打开状态
  • ✅ Playwright 全局安装检测,避免重复安装

v5.0 (2026-01-27)

  • 极简版发布

版本:v5.4(精准配图版) 更新日期:2026-01-27

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Neural Memory

Associative memory with spreading activation for persistent, intelligent recall. Use PROACTIVELY when: (1) You need to remember facts, decisions, errors, or...

Registry SourceRecently Updated
General

kai-slide-creator

Create beautiful, zero-dependency HTML presentations that run entirely in the browser — no npm, no build tools. 21 curated style presets with named layout va...

Registry SourceRecently Updated
General

Chronos

通用周期任务管理器 - 支持6种周期类型、每月N次配额、自动cron、统一视图,适用于所有定时任务场景

Registry SourceRecently Updated
General

AIN - AI Node Plugin

Integrates AIN providers into OpenClaw with intelligent model routing and tools for prompt execution and task classification.

Registry SourceRecently Updated