Claude Code Plugins

Community-maintained marketplace

Feedback

This skill should be used when the user asks to schedule social media posts to Blotato, bulk upload content, schedule a month of posts, or mentions 'blotato-scheduler'. Handles uploading media and scheduling posts via the Blotato API.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name blotato-scheduler
description This skill should be used when the user asks to schedule social media posts to Blotato, bulk upload content, schedule a month of posts, or mentions 'blotato-scheduler'. Handles uploading media and scheduling posts via the Blotato API.
version 1.0.0
metadata [object Object]

Blotato Bulk Scheduler

Schedule up to a month of social media content to Blotato with a single command.

Usage

/blotato-scheduler <folder-path> [--dry-run]

Arguments:

  • <folder-path> - Path to folder containing posts.csv and media/ folder
  • --dry-run - Preview what would be scheduled without actually posting

Folder Structure Required

content-folder/
├── posts.csv           # All posts defined here
└── media/              # All media files go here
    ├── image1.jpg
    ├── video1.mp4
    └── ...

posts.csv Format

CSV file with these columns:

Column Required Format Description
date Yes YYYY-MM-DD Post date
time Yes HH:MM 24-hour time (America/Toronto timezone)
text Yes String Post caption (quote if contains commas)
media No file1.jpg;file2.mp4 Media filenames from media/ folder, semicolon-separated
platforms Yes twitter;instagram Target platforms, semicolon-separated

Valid platforms: twitter, instagram, linkedin, facebook, bluesky, youtube, threads, tiktok

Example posts.csv:

date,time,text,media,platforms
2026-02-10,09:00,"Excited to share our new product!",product.jpg,twitter;instagram;linkedin
2026-02-10,14:00,"Behind the scenes today",bts.mp4,instagram;tiktok
2026-02-11,10:00,"Happy Monday everyone!",,twitter;threads
2026-02-11,18:00,"New tutorial is live!",tutorial.mp4;thumb.jpg,youtube

Execution Steps

When this skill is invoked:

  1. Validate the folder path argument - Ensure it was provided and exists

  2. Check for required files:

    • Verify posts.csv exists in the folder
    • Verify media/ folder exists (can be empty for text-only posts)
  3. Parse posts.csv:

    • Read all rows
    • Validate date/time formats
    • Check all referenced media files exist in media/ folder
    • Report any validation errors before proceeding
  4. Run the scheduler script:

    python "C:\Users\eckme\.claude\skills\blotato-scheduler\scripts\blotato_scheduler.py" "<folder-path>" [--dry-run]
    
  5. Report results to the user showing:

    • Number of posts scheduled
    • Any errors encountered
    • Links to Blotato dashboard

Configuration (Hardcoded)

The following account configuration is embedded in the script:

  • API Key: Configured in script
  • Timezone: America/Toronto
  • Accounts:
    • twitter: 9102
    • linkedin: 8251
    • instagram: 19885
    • facebook: 12870 (page: 100224776504039)
    • bluesky: 12872
    • youtube: 17874
    • threads: 3560
    • tiktok: 20263

Rate Limits

The script handles Blotato API rate limits automatically:

  • Media uploads: 10 per minute (6 second delay between uploads)
  • Post scheduling: 30 per minute (2 second delay between posts)

Platform-Specific Notes

  • YouTube: Uses first 100 characters of text as title
  • TikTok: Posts appear as drafts in mobile app
  • Facebook: Posts to "Mike Eckmeier - A.I. Engineer" page

Error Handling

  • Invalid CSV format: Script stops and reports row with error
  • Missing media file: Script stops and reports missing file
  • API errors: Script continues, logs error, reports at end
  • Rate limit hit: Script waits and retries automatically

Example Session

User: /blotato-scheduler C:\Users\eckme\content\february-posts

Claude: I'll schedule your February posts to Blotato.

Found 28 posts in posts.csv
Uploading 15 media files...
  ✓ photo1.jpg uploaded
  ✓ video1.mp4 uploaded
  ...
Scheduling 28 posts...
  ✓ Post 1 scheduled for 2026-02-10 09:00
  ✓ Post 2 scheduled for 2026-02-10 14:00
  ...

Complete! 28 posts scheduled successfully.
View your queue: https://my.blotato.com/queue

Business CMS Integration

MANDATORY: After scheduling posts:

  1. Create CMS folder:

    BUSINESS_ROOT="C:/Users/eckme/OneDrive/Documents/New folder (2)/Business"
    DATE_PATH=$(date +"%Y/%m/%d")
    mkdir -p "$BUSINESS_ROOT/Social-Media/Multi-Platform/$DATE_PATH/scheduled-batch"
    
  2. Copy the input files:

    • posts.csv (the schedule)
    • media/ folder (all uploaded assets)
  3. Create metadata.md with type (Scheduled Batch), posts count, platforms, date range, created time, and file list

  4. Update all individual post metadata.md files (if they exist in platform-specific CMS folders) — change status from "Draft" to "Scheduled"

  5. Create/update _manifest.md in the date folder