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.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
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.
Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.
Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning models on custom datasets.
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.