Publishes {{PERSONA_NAME}} short-form videos to all 5 social platforms (Instagram Reels, TikTok, YouTube Shorts, Facebook, Twitter/X) via the Late API.
How It Works
Reads the sidecar .json metadata from ~/{{PersonaDir}}/videos/ (produced by short-video)
Generates platform-optimized captions via Gemini (different length/style per platform)
Publishes to all platforms in a single Late API call
Marks the sidecar as published (published_at, late_post_id)
Usage
node skills/short-publish/scripts/short-publish.js [options]
Options:
--video "path/to/sidecar.json" # Specific video (default: latest unpublished)
--platforms "instagram,tiktok,youtube" # Filter platforms (default: all 5)
--schedule "2026-03-05T09:00:00" # Schedule post (default: publish now)
--dry-run # Show what would be posted, skip publish
Prerequisites
LATE_API_KEY in .env
GEMINI_API_KEY in .env
Video must have a media_url (cloud URL from Late upload in short-video pipeline)
All 5 platform accounts connected in Late (see SOCIALS.md)
Platform Caption Strategy
Platform
Style
Limit
Instagram
Storytelling caption + hashtags
2200 chars
TikTok
Short punchy + trending hashtags
2200 chars
YouTube Shorts
Title + description + tags
100 char title
Facebook
Warm caption + {{SKIP_ACCOUNT}}.ws link
63,206 chars
Twitter/X
Punchy one-liner
280 chars
Output
Updates sidecar JSON with published_at and late_post_id
Logs post IDs for each platform
1---2name: short-publish3description: short-publish4---5# short-publish67Publishes {{PERSONA_NAME}} short-form videos to all 5 social platforms (Instagram Reels, TikTok, YouTube Shorts, Facebook, Twitter/X) via the Late API.89## How It Works10111. Reads the sidecar `.json` metadata from `~/{{PersonaDir}}/videos/` (produced by `short-video`)122. Generates platform-optimized captions via Gemini (different length/style per platform)133. Publishes to all platforms in a single Late API call144. Marks the sidecar as published (`published_at`, `late_post_id`)1516## Usage1718```bash19node skills/short-publish/scripts/short-publish.js [options]2021Options:22 --video "path/to/sidecar.json" # Specific video (default: latest unpublished)23 --platforms "instagram,tiktok,youtube" # Filter platforms (default: all 5)24 --schedule "2026-03-05T09:00:00" # Schedule post (default: publish now)25 --dry-run # Show what would be posted, skip publish26```2728## Prerequisites2930- `LATE_API_KEY` in `.env`31- `GEMINI_API_KEY` in `.env`32- Video must have a `media_url` (cloud URL from Late upload in `short-video` pipeline)33- All 5 platform accounts connected in Late (see SOCIALS.md)3435## Platform Caption Strategy3637| Platform | Style | Limit |38|----------|-------|-------|39| Instagram | Storytelling caption + hashtags | 2200 chars |40| TikTok | Short punchy + trending hashtags | 2200 chars |41| YouTube Shorts | Title + description + tags | 100 char title |42| Facebook | Warm caption + {{SKIP_ACCOUNT}}.ws link | 63,206 chars |43| Twitter/X | Punchy one-liner | 280 chars |4445## Output4647- Updates sidecar JSON with `published_at` and `late_post_id`48- Logs post IDs for each platform
Run npx skillmds@latest add kevinbadi/short-publish in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
short-publish It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
kevinbadi (@kevinbadi) published this skill. Their other Agent Skills are listed on their SkillMD profile.