mcpField
R
redbook-creator-publish

redbook-creator-publish

github.com/yanquankunマーケティング・グロース173 回インストール29 週間前に更新
リポジトリ

redbook-creator-publish について

小紅書の投稿を作成・公開するスキルです。話題の検索、本文やタグ、画像の準備に加え、画像を検証し、ログイン状態を確認してから Playwright で投稿します。

主な機能

  1. 01最新の話題情報を検索
  2. 02タイトル・本文・タグの生成
  3. 03投稿画像の取得と検証
  4. 04preview.html と config.json の作成
  5. 05Playwright による投稿

活用シーン

  1. 01話題をもとに小紅書の投稿を準備
  2. 02画像付き投稿プレビューの作成
  3. 03アカウントへのログイン後に投稿を公開

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yanquankun/redbook-creator-publish --skill redbook-creator-publish

インストール後、Claude Code で/redbook-creator-publishを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
.env.example
README.md
requirements.txt
LICENSE
assets/
preview-template.html
references/
style-guide.md
scripts/
auto_upload_playwright.py
generate_preview.py

詳細

小红書の投稿作成・公開スキル

概要

タイトル、本文、タグ、画像を含む小紅書の投稿をすばやく作成して公開し、小紅書プラットフォームに自動でアップロードします。

主な特徴(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文字以内。フックとなる言葉を含め、簡潔で力強い表現にします
  • 本文: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. 英語のキーワードを中心にする:画像素材サイトでは英語で検索したほうが効果的です

    • 中国語のテーマは、対応する英語の固有名詞に翻訳します
    • ゲーム:ゲームの正式な英語名を使います
    • ブランド:ブランドの英語名を使います

テーマ別のキーワード作成:

テーマの種類一般的な語句(❌避ける)正確な語句(✅使う)
ゲーム『Minecraft』game, gaming, ゲームMinecraft, Minecraft blocks, Minecraft world, pixel art cube
ゲーム『原神』game, RPGGenshin Impact, Genshin character, anime game
ゲーム『Honor of Kings』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」:

封面图: "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 を1枚目にします)
  4. タイトルを入力します
  5. 本文を入力します
  6. タグを1つずつ入力します(1秒間隔で Enter を押します)
  7. 公開をクリックします
  8. ブラウザーは開いたままにします(自動では閉じません)

注意事項

コンテンツ作成
  • タイトル:絵文字を含めて20文字以内
  • 本文の文字数:300~500文字
  • 画像の枚数:5~6枚(カバー1枚+本文用画像4~5枚)
  • タグ:5個(5個を超えないようにします)
  • 画像のソース:無料で公開されている画像素材サイト、または AI 生成
  • 画像の検証:ダウンロード後は有効性を必ず検証し、無効な画像を削除して追加分をダウンロードします
自動アップロード(v5.1)
  • アップロードスクリプトを必ず実行します
  • 初回使用時:20秒の案内時間内に小紅書のアカウントにログインします
  • 2回目以降:ログイン状態は自動で維持されるため、再ログインは不要です
  • タグは1秒間隔で入力し、Enter を押します
  • ブラウザーは自動で閉じません。引き続き確認または編集できます
  • 20秒以内にログインできない場合は、手動でアップロードするか、再度実行してください
技術設定
  • Python 3.7+
  • Playwright(インストールは一度だけで十分、グローバルで検出)
  • config.json 内の中国語の記号は正しくエスケープする必要があります

手動アップロードの代替手順

自動アップロードに失敗した場合:

  1. 開きます:https://creator.xiaohongshu.com/publish/publish
  2. 画像を順番にアップロードします(cover.png を1枚目にします)
  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

コメント