Auto-generate viral 9:16 YouTube Shorts (or TikTok / Reels clips) from a long-form video. Thin platform-aware wrapper around the AI Clipping skill — picks sensible defaults for short-form social platforms (9:16, 30–60s sweet spot) and delegates the actual highlight extraction + crop to muapi.ai's `/ai-clipping` endpoint.
npx skills add https://github.com/SamurAIGPT/Generative-Media-Skills --skill muapi-youtube-shorts
Long video → ranked vertical short clips, tuned for short-form social.
This skill is a platform-aware preset over the AI Clipping primitive. It picks the right aspect ratio and clip count for the target platform and delegates highlight extraction, dedupe, and face-tracked auto-crop to muapi.ai's managed /ai-clipping endpoint.
Reference implementation: https://github.com/SamurAIGPT/AI-Youtube-Shorts-Generator
Underlying API: https://muapi.ai/playground/ai-clipping
| Use this skill when… | Use AI Clipping directly when… |
|:---|:---|
| Target is YouTube Shorts / TikTok / Reels | You want full control over aspect / count |
| You want platform-tuned defaults | You want raw timestamps (--coords-only) |
| You'd rather pass --platform tiktok than think about ratios | You're integrating into a custom renderer |
| Input | Default | Notes |
|:---|:---|:---|
| --source | — | YouTube URL, hosted mp4 URL, or local file |
| --platform | shorts | shorts \| tiktok \| reels \| feed (sets ratio + count defaults) |
| --num-clips | platform default | Override clip count |
| --aspect-ratio | platform default | Override aspect ratio |
If the user gave only a URL, run with platform defaults — don't block.
muapi-cli installed and authed (muapi auth configure)MUAPI_API_KEY availableThat's it. Transcription, highlight ranking, dedupe, and cropping all run server-side — no ffmpeg, no Python, no Whisper, no LLM keys needed locally.
bash library/social/youtube-shorts/scripts/run-youtube-shorts.sh \
--source "<YOUTUBE_URL>" \
--platform shorts \
--num-clips 5 \
--view
The script:
--aspect-ratio / --num-clips aren't passed.muapi edit clipping (the /ai-clipping endpoint) with the chosen params.The /ai-clipping endpoint runs the full pipeline:
Each clip ships with score (0–100), opening hook line, and a one-sentence "why it works" reason.
| Platform | Flag | Aspect | Default clips | Notes |
|:---|:---|:---|:---|:---|
| YouTube Shorts | --platform shorts | 9:16 | 3 | Hook in first 1s |
| TikTok | --platform tiktok | 9:16 | 5 | Higher energy, longer ok |
| Instagram Reels | --platform reels | 9:16 | 3 | Hook in first 1s |
| Instagram Feed | --platform feed | 1:1 | 3 | Static-feel works well |
Override any default with --aspect-ratio / --num-clips.
Single video, defaults:
bash run-youtube-shorts.sh --source "https://youtube.com/watch?v=VIDEO_ID"
TikTok preset — 5 clips, view in player:
bash run-youtube-shorts.sh --source "<URL>" --platform tiktok --view
Square Instagram feed clips:
bash run-youtube-shorts.sh --source "<URL>" --platform feed --num-clips 3
Batch — urls.txt with one URL per line:
xargs -a urls.txt -I{} bash run-youtube-shorts.sh --source "{}"
Async submit (returns request_id, poll later):
REQUEST_ID=$(bash run-youtube-shorts.sh --source "<URL>" --async --output-json - | jq -r '.request_id')
muapi predict wait "$REQUEST_ID" --download ./outputs
{
"source_video_url": "...",
"shorts": [
{
"title": "The one mistake that cost me $50K",
"start_time": 124.3,
"end_time": 187.6,
"score": 92,
"hook_sentence": "Nobody talks about this, but it killed my first startup...",
"virality_reason": "Opens with a number + regret, peaks on a contrarian lesson",
"clip_url": "https://.../short_1.mp4"
}
]
}
When reporting back, surface for each clip: rank, score, time range, title, hook, and clip URL.
9:16. The platform preset handles this; only override if you know why.--num-clips — if the API returns fewer survivors, return what you have. Don't ship low-score filler.request_id with muapi predict wait <id> rather than re-clipping.--poll-timeout and retry.muapi upload file and pass the returned URL.The skill is done when:
result.shorts has up to num_clips entries, each with a working clip_url.--output-json was set, the file exists and parses.Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use when working with .canvas files, creating visual canvases, mind maps, flowcharts, or when the user mentions Canvas files in Obsidian.
Publish Markdown articles to X (Twitter) Articles editor with proper formatting. Use when user wants to publish a Markdown file/URL to X Articles, or mentions "publish to X", "post article to Twitter", "X article", or wants help with X Premium article publishing. Handles cover image upload and converts Markdown to rich text automatically.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
Teaches the AI to design like a high-end agency. Defines the exact fonts, spacing, shadows, card structures, and animations that make a website feel expensive. Blocks all the common defaults that make AI designs look cheap or generic.
Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
Take samuraigpt/muapi-youtube-shorts from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.