
short-publish
by antoniolg
A collection of skills for AI agents
SKILL.md
name: short-publish
description: End-to-end workflow for turning a local video into transcripts, burned subtitles, and scheduled multi-network posts via Postiz MCP tools. Use when given a video path and publication date/time to transcribe, create copy for LinkedIn/X/IG/YouTube, upload the subtitled MP4, and schedule the content with postiz_mcp.
Short Publish
Overview
This skill automates the complete "video → subtitles → Postiz" pipeline: run Whisper-based transcription, burn subtitles with the bundled Python script, turn the transcript into a multi-platform copy block, and program four social channels (YouTube, LinkedIn, X, Instagram) through the Postiz MCP integration.
Inputs & Prerequisites
- Arguments:
PATH– absolute path to the source video (MOV/MP4/etc.).DATETIME– publication date/time (accepts natural language like "tomorrow 09:00"). Usedateto confirm the current timestamp if needed.
- Tooling: always use the MCP tools (
postiz-upload-file,postiz-create-post) exposed bypostiz_mcp. Never fall back to the Postiz CLI. - Script dependency:
scripts/transcribe_burn.pywraps Whisper, ffmpeg, and auto-gain. Requires Python 3.8+, ffmpeg, andopenai-whisperinstalled for the user; no extra configuration is needed inside this skill. - Timezone: default to Europe/Madrid. In winter assume UTC+01:00 (CET) when presenting final schedules if the
datecommand does not provide the offset.
Workflow
-
Collect inputs
- Confirm the provided
PATHexists; stop with a descriptive error if not. - Resolve
DATETIMEto an ISO timestamp. Usedate -j -for another deterministic macOS command when the input is natural language so Postiz receives an unambiguous value.
- Confirm the provided
-
Transcribe and burn subtitles
- Run the bundled helper:
python3 scripts/transcribe_burn.py "$PATH". - Outputs (all written next to the original video):
<stem>.srt,<stem>.ass,<stem>.txt,<stem>_caption.txt,<stem>_subtitled.mp4.
- The
_subtitled.mp4is the media you will upload; everything else is transient reference material. Remove the generated artifacts (srt/ass/txt/caption/mp4_subtitled/normalized wav) once they have been read and the upload succeeds—never delete the original video.
- Run the bundled helper:
-
Generate the social copy
-
Read
<stem>.txtfor the full transcript. -
Apply the exact copywriting prompt below to the transcript; do not improvise structure or tone beyond the template.
Act as an expert LinkedIn copywriter building authority content. Transform the TRANSCRIPT into a case-study or practical-lesson post with this structure: 1. Hook headline with a leading emoji. 2. 2-3 sentence context introducing the situation. 3. Structured core (use 1️⃣/2️⃣/3️⃣ or ✅ and bold keywords per line). 4. Closing takeaway line. 5. Optional P.S. only when the transcript mentions an offer/event. Style rules: short paragraphs (1-2 lines), intentional emoji usage, no invented facts, stay faithful to the transcript. -
Reuse the single output block verbatim for LinkedIn, X, and Instagram, and as the YouTube description (light line breaks allowed). Craft a YouTube title ≤100 characters from the same content.
-
-
Upload the subtitled video
- Use
postiz-upload-filewith the_subtitled.mp4path. Capture the returned public URL; Postiz expects this URL inside theimagesarray for all channel posts.
- Use
-
Schedule the four posts via
postiz-create-post- Integrations come from
~/.config/skills/config.jsonunderpostiz.groups.short_publish. - Use
x-esby default for X unless the user explicitly asks forx-en. - Payload guidelines:
content: the copy block described above.images:["<uploaded_mp4_url>"]so Postiz attaches the video.scheduledDate: resolved ISO timestamp based onDATETIME.
- YouTube requires an explicit
titleand defaults totype=public; ensure the MCP call includes the generated title field.
- Integrations come from
-
Report completion
- Confirm each scheduled post by echoing the returned IDs and their scheduled time in CET (UTC+01:00 during winter). Example:
YouTube cm... → 2025-01-11T10:00:00+01:00 (CET).
- Confirm each scheduled post by echoing the returned IDs and their scheduled time in CET (UTC+01:00 during winter). Example:
Resources
scripts/transcribe_burn.py: Whisper + ffmpeg pipeline used in Step 2. Copy-safe to reuse elsewhere but do not edit unless the video workflow changes. Running the script produces all intermediate assets and the burned MP4 referenced throughout the workflow.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です