# Postey Video

> Turn one video into posts everywhere with Postey: transcribe it, write a caption per platform, upload with a cover frame, and leave drafts ready for approval. Handles local files and large uploads, which the MCP server cannot reach.

- Skill: `posteyai/postey-video` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add posteyai/postey-video`
- Raw SKILL.md: https://api.skillmd.com/api/skills/posteyai/postey-video/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: posteyai (https://skillmd.com/u/posteyai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/posteyai/postey-video

---


# Postey Video

One video becomes a caption per platform and a draft per account. Nothing publishes without the
user's explicit approval, and **scheduling counts as publishing**.

## Why this ships its own CLI

`scripts/postey.js` here is a **byte-identical copy** of the hub's, verified by
`scripts/check-script-parity.js`. A skill cannot rely on the path to another skill's directory —
no install layout guarantees one — so the copy travels with the pack. The consequence is that
this skill and the hub version-bump together whenever the CLI changes.

`capability-snapshot.json` sits beside it because `postey.js` requires it at runtime for the
platform list. A copy without it crashes on require.

## Routing

| Situation | Path |
|---|---|
| A local video or image path | **CLI**, unconditionally — MCP cannot see the user's disk |
| Transcription | **CLI** (`video transcribe`); `transcribe_video` when your client has no shell |
| Large or chunked upload | **CLI** — the MCP inline path is context-bound |
| Creating or updating the draft | **MCP** (`create_post` / `update_post`) — always, even after a CLI upload |

The CLI stops at the upload and hands back the fields for the MCP write. It never creates the
draft itself.

## Workflow

1. **Read the accounts** — `postey://accounts`, or `get_accounts` if your client cannot read
   resources. Never assume which platforms are connected.
2. **Transcribe** if there is no caption yet. Never paste a raw transcript as a caption.
3. **Write one caption per platform** from the transcript. Craft rules come from the hub:
   `caption-playbook.md`, `hook-formulas.md`, `platform-archetypes.md` and
   `thread-and-video-formats.md`. If a brand profile exists, its voice and banned lists apply.
4. **Upload** via the CLI, taking the cover frame with it.
5. **Create the draft** through MCP, then attach each additional platform with `update_post` on
   the same `post_id`.
6. **Validate** each platform with `validate_post_content`, fix, then present the share link.

## Reference

- Full transcription and cross-post workflow: [video-workflow.md](video-workflow.md)
- The video-everywhere content flow: [references/video-to-everywhere.md](references/video-to-everywhere.md)

