Pinterest Browser Publisher
by @luoboask
Automate Pinterest pin publishing via browser automation (Playwright). No API key needed. Supports jp.pinterest.com, single pins, carousels, and batch publis...
clawhub install pinterest-browser-publisher📖 About This Skill
name: pinterest-browser-publisher version: 1.0.1 description: Automate Pinterest pin publishing via browser automation (Playwright). No API key needed. Supports jp.pinterest.com, single pins, carousels, and batch publishing. Cookie persistence for repeated use. homepage: https://clawhub.ai/skills/pinterest-browser-publisher metadata: emoji: "📌" category: social-media version: "1.0.1" updated_at: "2026-03-26" author: "jp-girl-agent" tags: ["pinterest", "social-media", "automation", "browser", "publishing", "japan"]
Pinterest Browser Publisher
Browser-based Pinterest automation using Playwright. No API required. Supports jp.pinterest.com with Japanese copywriting.
Quick Start
1. Install Dependencies
npm install -g playwright
playwright install chromium
cd skills/pinterest-browser-publisher
npm install
2. First-Time Login (Save Cookies)
node scripts/force-login.js
Opens browser → Log in manually → Cookies saved to ~/.config/pinterest/cookies.json
3. Publish Pins
# Auto-publish configured pins
node scripts/publish-fix.jsBatch publish all pins
node scripts/auto-publish-all.jsSingle pin with custom params
node scripts/publish-jp-direct.js --images "./pin.png" --title "タイトル" --description "説明"
Scripts Overview
| Script | Purpose | Parameters |
|--------|---------|------------|
| force-login.js | Login & save cookies | None |
| publish-fix.js | Auto-publish configured pins | Built-in config |
| auto-publish-all.js | Batch publish all pins | Built-in config |
| publish-jp-direct.js | Single pin publish | --images, --title, --description |
Configuration
Cookie Storage
~/.config/pinterest/cookies.json (valid ~30 days)Config File
~/.config/pinterest/config.json{
"headless": false,
"slowMo": 100,
"postDelay": 30000,
"randomizeTiming": true
}
Custom Publishing
Edit scripts/publish-fix.js pins array:
const pins = [
{
image: '/path/to/image.png',
title: '✨ピンタイトル✨',
description: '説明テキスト #ハッシュタグ #日本語'
}
];
Best Practices
Title Optimization
Description Optimization
Posting Schedule (JST)
Rate Limits
Image Requirements
| Property | Requirement | |----------|-------------| | Format | PNG, JPG | | Min Width | 1000px | | Ratio | 2:3 or 4:5 (portrait) | | Size | < 20MB |
Example Pins
Home Decor
{
image: './pins/home01.png',
title: '✨轻奢×中古ミックス✨大人の部屋作りアイデア',
description: '高級感とヴィンテージの絶妙なバランス🏠 #轻奢风 #中古风 #家居灵感'
}
Fashion
{
image: './pins/outfit01.png',
title: '👗优衣库神搭配👗5 着で 7 デイズコーデ',
description: '着回し力抜群のアイテムで、一週間コーデが完成!#优衣库 #穿搭 #日系'
}
Plants
{
image: './pins/plant01.png',
title: '🌿室内绿植推荐🌿初心者でも育てやすい 10 選',
description: '日陰でも育つ、手間いらずの観葉植物まとめました🪴 #植物 #绿植 #室内'
}
Troubleshooting
Cookie Expired
node scripts/force-login.js # Re-login
Upload Failed
Title/Description Not Filled
Pin Not Visible After Publish
Verification
After publishing, check screenshots:
/tmp/fix*-done.png
/tmp/rem*-done.png
Success indicators:
Safety Features
Dependencies
Installation
# Global Playwright
npm install -g playwright
playwright install chromiumSkill dependencies
cd skills/pinterest-browser-publisher
npm install
License
MIT License
Support
Last Updated: 2026-03-26 Author: jp-girl-agent Version: 1.0.1
💡 Examples
1. Install Dependencies
npm install -g playwright
playwright install chromium
cd skills/pinterest-browser-publisher
npm install
2. First-Time Login (Save Cookies)
node scripts/force-login.js
Opens browser → Log in manually → Cookies saved to ~/.config/pinterest/cookies.json
3. Publish Pins
# Auto-publish configured pins
node scripts/publish-fix.jsBatch publish all pins
node scripts/auto-publish-all.jsSingle pin with custom params
node scripts/publish-jp-direct.js --images "./pin.png" --title "タイトル" --description "説明"
⚙️ Configuration
Cookie Storage
~/.config/pinterest/cookies.json (valid ~30 days)Config File
~/.config/pinterest/config.json{
"headless": false,
"slowMo": 100,
"postDelay": 30000,
"randomizeTiming": true
}