New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Turn a long video into N viral-ready short clips

Muapi AI clipping

by SamurAIGPT · MIT license · ★ 4,317 on GitHub · v1.0.0 · updated Sep 8

Muapi AI clipping cover

Turn a long video into N viral-ready short clips with a single managed API call. Wraps muapi.ai's `/ai-clipping` endpoint, which handles transcription, highlight ranking through a virality framework (hook / emotional peak / opinion bomb…

---
slug: muapi-ai-clipping
name: muapi-ai-clipping
version: "1.0.0"
description: Turn a long video into N viral-ready short clips with a single managed API call. Wraps muapi.ai's `/ai-clipping` endpoint, which handles transcription, highlight ranking through a virality framework (hook / emotional peak / opinion bomb / revelation / conflict / quotable / story peak / practical value), overlap dedupe, and vertical face-tracking auto-crop server-side. No local Whisper, no local LLM, no GPU.
acceptLicenseTerms: true
---

# AI Clipping

**One API call: long video in → ranked vertical short clips out.**

Each clip ships with a viral score (0–100), an opening hook line, a one-sentence "why it works" reason, and a hosted mp4 URL.

Underlying API: https://muapi.ai/playground/ai-clipping
Reference implementation (open source): https://github.com/SamurAIGPT/AI-Youtube-Shorts-Generator

---

Overview

One API call: long video in → ranked vertical short clips out.

The SKILL.md below is the copy AgentAlley read and checked. The repo has changed it since; the other files are from commit 5519622.

Manual install (npx, ZIP)
Claude Codenpx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ai-clipping -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/SamurAIGPT/Generative-Media-Skills/tar.gz/5519622e885a \ | tar -xz -C ~/.claude/skills --strip-components=3 Generative-Media-Skills-5519622e885a/.opencode/skills/muapi-ai-clipping
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/5749e0c983ec0f5a37b1/muapi-ai-clipping.zip" -OutFile "$env:TEMP\muapi-ai-clipping.zip"; Expand-Archive "$env:TEMP\muapi-ai-clipping.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md6.7 KB
Read the files here
SamurAIGPT/55196221 file
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text194 lines

AI Clipping

One API call: long video in → ranked vertical short clips out.

Each clip ships with a viral score (0–100), an opening hook line, a one-sentence "why it works" reason, and a hosted mp4 URL.

Underlying API: https://muapi.ai/playground/ai-clipping Reference implementation (open source): https://github.com/SamurAIGPT/AI-Youtube-Shorts-Generator


When to Use

  • Auto-clip a podcast, interview, lecture, vlog, or stream into TikTok / Reels / Shorts.
  • Extract the best 30–75s moments from any hosted video URL.
  • Get face-tracked vertical (9:16), square (1:1), or portrait (4:5) crops without running ffmpeg locally.

If you only need raw timestamps for your own renderer, set --coords-only to skip cropping and just get the highlight ranges.


Agent Execution Protocol

Step 1 — Collect Inputs
Input Required Default Notes
--video yes — Hosted mp4 URL, or local file path (auto-uploaded), or YouTube URL (if backend supports it)
--num-clips no 3 Number of highlights to extract
--aspect-ratio no 9:16 9:16 | 1:1 | 4:5
--coords-only no off Return just the highlight time ranges, skip cropping

If the user gave only a video URL, run with defaults — don't block on questions.


Step 2 — Verify Prerequisites
  • muapi-cli installed and authed (muapi auth configure)
  • MUAPI_API_KEY available (env var or muapi auth status passes)

That's it. No ffmpeg, no Python, no Whisper install, no LLM keys. Everything runs server-side.


Step 3 — Run the Skill
bash library/edit/ai-clipping/scripts/run-ai-clipping.sh \
  --video "https://example.com/podcast.mp4" \
  --num-clips 5 \
  --aspect-ratio 9:16 \
  --view

The script:

  1. Resolves --video to a hosted URL (uploads local files via muapi upload file if needed).
  2. Calls muapi edit clipping with the supported parameters.
  3. Polls until the job is done (or returns the request_id immediately under --async).
  4. Prints a ranked summary and, if --output-json is set, writes the full result.

What Happens Server-Side

The /ai-clipping endpoint internally runs the full pipeline so the agent doesn't have to:

  • Transcribe with Whisper.
  • Classify content type (podcast / interview / tutorial / vlog / lecture / monologue).
  • Rank highlights through the virality framework:
    • Hook moments — strong opening line that stops the scroll
    • Emotional peaks — laughter, anger, vulnerability, awe
    • Opinion bombs — spicy, contrarian, debate-bait takes
    • Revelation moments — "wait, what?" reframes
    • Conflict — disagreement, tension, callouts
    • Quotable lines — tight, screenshot-worthy phrasing
    • Story peaks — climax of a narrative arc
    • Practical value — actionable insight a viewer will save
  • Dedupe overlapping candidates by score.
  • Top-N select and face-track auto-crop to the requested aspect ratio.

This is why the skill is small: the heavy lifting is on the API.


Quick Invocation Patterns

Defaults — three 9:16 clips:

bash run-ai-clipping.sh --video "https://example.com/long.mp4"

Podcast — more clips, view in player:

bash run-ai-clipping.sh --video "<URL>" --num-clips 8 --view

Square clips for Instagram feed:

bash run-ai-clipping.sh --video "<URL>" --aspect-ratio 1:1 --num-clips 3

Just the timestamps (build your own renderer):

bash run-ai-clipping.sh --video "<URL>" --coords-only --output-json result.json

Async submit (returns request_id, poll later):

REQUEST_ID=$(bash run-ai-clipping.sh --video "<URL>" --async --output-json - | jq -r '.request_id')
muapi predict wait "$REQUEST_ID" --download ./outputs

Local file:

bash run-ai-clipping.sh --video ./recording.mp4 --num-clips 5 --view

Batch — urls.txt with one URL per line:

xargs -a urls.txt -I{} bash run-ai-clipping.sh --video "{}"

Aspect Ratio Picker

Platform Ratio Sweet-spot duration
TikTok / Reels / YouTube Shorts 9:16 30–75s
Instagram Feed 1:1 15–45s
Pinterest / portrait 4:5 30–60s

Default to 9:16 unless the platform is specified.


Output Schema

{
  "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 --coords-only is set, each entry has start_time/end_time but no clip_url — render locally with ffmpeg.

When reporting back to the user, surface for each clip: rank, score, time range, title, hook, and clip URL.


Common Mistakes to Avoid

  1. Wrong aspect ratio for the platform — Shorts / TikTok / Reels are 9:16. Default to that.
  2. Padding to hit num_clips — if the API returns fewer survivors than requested, return what you have. Don't pretend.
  3. Re-running on a 404'd clip URL — the same request_id can be re-fetched with muapi predict wait <id> rather than re-clipping.
  4. Trying to tune Whisper / chunk size / LLM prompts — those knobs aren't exposed; the endpoint handles them.

Failure Modes

  • API key missing or rejected — surface the exact error; never fabricate a key.
  • Job timed out — bump poll timeout (--poll-timeout) and retry.
  • Source URL not reachable from the backend — upload locally with muapi upload file <path> first, then pass the returned URL.
  • Fewer clips returned than requested — the source had fewer rankable highlights. Return what came back with a note.

Done Criteria

The skill is done when:

  1. result.shorts has up to num_clips entries, each with a working clip_url (or start_time/end_time under --coords-only).
  2. The user has been shown the ranked list (score, time range, title, hook, URL).
  3. If --output-json was set, the file exists and parses.
1---
2slug: muapi-ai-clipping
3name: muapi-ai-clipping
4version: "1.0.0"
5description: Turn a long video into N viral-ready short clips with a single managed API call. Wraps muapi.ai's `/ai-clipping` endpoint, which handles transcription, highlight ranking through a virality framework (hook / emotional peak / opinion bomb / revelation / conflict / quotable / story peak / practical value), overlap dedupe, and vertical face-tracking auto-crop server-side. No local Whisper, no local LLM, no GPU.
6acceptLicenseTerms: true
7---
8 
9# AI Clipping
10 
11**One API call: long video in → ranked vertical short clips out.**
12 
13Each clip ships with a viral score (0–100), an opening hook line, a one-sentence "why it works" reason, and a hosted mp4 URL.
14 
15Underlying API: https://muapi.ai/playground/ai-clipping
16Reference implementation (open source): https://github.com/SamurAIGPT/AI-Youtube-Shorts-Generator
17 
18---
19 
20## When to Use
21 
22- Auto-clip a podcast, interview, lecture, vlog, or stream into TikTok / Reels / Shorts.
23- Extract the best 30–75s moments from any hosted video URL.
24- Get face-tracked vertical (9:16), square (1:1), or portrait (4:5) crops without running ffmpeg locally.
25 
26If you only need raw timestamps for your own renderer, set `--coords-only` to skip cropping and just get the highlight ranges.
27 
28---
29 
30## Agent Execution Protocol
31 
32### Step 1 — Collect Inputs
33 
34| Input | Required | Default | Notes |
35|:---|:---|:---|:---|
36| `--video` | yes | — | Hosted mp4 URL, or local file path (auto-uploaded), or YouTube URL (if backend supports it) |
37| `--num-clips` | no | `3` | Number of highlights to extract |
38| `--aspect-ratio` | no | `9:16` | `9:16` \| `1:1` \| `4:5` |
39| `--coords-only` | no | off | Return just the highlight time ranges, skip cropping |
40 
41If the user gave only a video URL, run with defaults — don't block on questions.
42 
43---
44 
45### Step 2 — Verify Prerequisites
46 
47- `muapi-cli` installed and authed (`muapi auth configure`)
48- `MUAPI_API_KEY` available (env var or `muapi auth status` passes)
49 
50That's it. No `ffmpeg`, no Python, no Whisper install, no LLM keys. Everything runs server-side.
51 
52---
53 
54### Step 3 — Run the Skill
55 
56```bash
57bash library/edit/ai-clipping/scripts/run-ai-clipping.sh \
58 --video "https://example.com/podcast.mp4" \
59 --num-clips 5 \
60 --aspect-ratio 9:16 \
61 --view
62```
63 
64The script:
651. Resolves `--video` to a hosted URL (uploads local files via `muapi upload file` if needed).
662. Calls `muapi edit clipping` with the supported parameters.
673. Polls until the job is done (or returns the `request_id` immediately under `--async`).
684. Prints a ranked summary and, if `--output-json` is set, writes the full result.
69 
70---
71 
72## What Happens Server-Side
73 
74The `/ai-clipping` endpoint internally runs the full pipeline so the agent doesn't have to:
75 
76- **Transcribe** with Whisper.
77- **Classify content type** (podcast / interview / tutorial / vlog / lecture / monologue).
78- **Rank highlights** through the virality framework:
79 - **Hook moments** — strong opening line that stops the scroll
80 - **Emotional peaks** — laughter, anger, vulnerability, awe
81 - **Opinion bombs** — spicy, contrarian, debate-bait takes
82 - **Revelation moments** — "wait, what?" reframes
83 - **Conflict** — disagreement, tension, callouts
84 - **Quotable lines** — tight, screenshot-worthy phrasing
85 - **Story peaks** — climax of a narrative arc
86 - **Practical value** — actionable insight a viewer will save
87- **Dedupe** overlapping candidates by score.
88- **Top-N select** and **face-track auto-crop** to the requested aspect ratio.
89 
90This is why the skill is small: the heavy lifting is on the API.
91 
92---
93 
94## Quick Invocation Patterns
95 
96**Defaults — three 9:16 clips:**
97```bash
98bash run-ai-clipping.sh --video "https://example.com/long.mp4"
99```
100 
101**Podcast — more clips, view in player:**
102```bash
103bash run-ai-clipping.sh --video "<URL>" --num-clips 8 --view
104```
105 
106**Square clips for Instagram feed:**
107```bash
108bash run-ai-clipping.sh --video "<URL>" --aspect-ratio 1:1 --num-clips 3
109```
110 
111**Just the timestamps (build your own renderer):**
112```bash
113bash run-ai-clipping.sh --video "<URL>" --coords-only --output-json result.json
114```
115 
116**Async submit (returns request_id, poll later):**
117```bash
118REQUEST_ID=$(bash run-ai-clipping.sh --video "<URL>" --async --output-json - | jq -r '.request_id')
119muapi predict wait "$REQUEST_ID" --download ./outputs
120```
121 
122**Local file:**
123```bash
124bash run-ai-clipping.sh --video ./recording.mp4 --num-clips 5 --view
125```
126 
127**Batch — `urls.txt` with one URL per line:**
128```bash
129xargs -a urls.txt -I{} bash run-ai-clipping.sh --video "{}"
130```
131 
132---
133 
134## Aspect Ratio Picker
135 
136| Platform | Ratio | Sweet-spot duration |
137|:---|:---|:---|
138| TikTok / Reels / YouTube Shorts | `9:16` | 30–75s |
139| Instagram Feed | `1:1` | 15–45s |
140| Pinterest / portrait | `4:5` | 30–60s |
141 
142Default to `9:16` unless the platform is specified.
143 
144---
145 
146## Output Schema
147 
148```json
149{
150 "source_video_url": "...",
151 "shorts": [
152 {
153 "title": "The one mistake that cost me $50K",
154 "start_time": 124.3,
155 "end_time": 187.6,
156 "score": 92,
157 "hook_sentence": "Nobody talks about this, but it killed my first startup...",
158 "virality_reason": "Opens with a number + regret, peaks on a contrarian lesson",
159 "clip_url": "https://.../short_1.mp4"
160 }
161 ]
162}
163```
164 
165When `--coords-only` is set, each entry has `start_time`/`end_time` but no `clip_url` — render locally with ffmpeg.
166 
167When reporting back to the user, surface for each clip: rank, score, time range, title, hook, and clip URL.
168 
169---
170 
171## Common Mistakes to Avoid
172 
1731. **Wrong aspect ratio for the platform** — Shorts / TikTok / Reels are `9:16`. Default to that.
1742. **Padding to hit `num_clips`** — if the API returns fewer survivors than requested, return what you have. Don't pretend.
1753. **Re-running on a 404'd clip URL** — the same `request_id` can be re-fetched with `muapi predict wait <id>` rather than re-clipping.
1764. **Trying to tune Whisper / chunk size / LLM prompts** — those knobs aren't exposed; the endpoint handles them.
177 
178---
179 
180## Failure Modes
181 
182- **API key missing or rejected** — surface the exact error; never fabricate a key.
183- **Job timed out** — bump poll timeout (`--poll-timeout`) and retry.
184- **Source URL not reachable from the backend** — upload locally with `muapi upload file <path>` first, then pass the returned URL.
185- **Fewer clips returned than requested** — the source had fewer rankable highlights. Return what came back with a note.
186 
187---
188 
189## Done Criteria
190 
191The skill is done when:
1921. `result.shorts` has up to `num_clips` entries, each with a working `clip_url` (or `start_time`/`end_time` under `--coords-only`).
1932. The user has been shown the ranked list (score, time range, title, hook, URL).
1943. If `--output-json` was set, the file exists and parses.
View all files on GitHub →

Details

Version
1.0.0
Updated
Sep 8, 2026
License
MIT
Stars on the repo
★ 4,317
Checked
Source
SamurAIGPT/Generative-Media-Skills ↗
Creator
SamurAIGPT · 16 listings
View creator

Similar skills

See all →
SkillOverlays silent b-roll cutaway clips onto a finished baseBroll overlaynovoads/agent-skills · by novoadsOverlays silent b-roll cutaway clips onto a finished base video — the base audio keeps running underneath while the picture cuts away and returns, and the final duration always equals the base duration. Use when the user asks to add b-roll, add cutaways, or overlay clips on a video: "add b-roll to this", cut away to a product shot here", "overlay these clips on my UGC ad". Entered from an approved base video plus its transcript, which comes from POST /v1/transcripts and needs no local install; it never generates the base itself and it never extends a video.★ 23 GitHub starsSkillCrafts viral social media hook video prompts for TikTokHiggsfield Social Hook Skillpixelab-ch/higgsfield-skills · by pixelab-chCrafts viral social media hook video prompts for TikTok, Instagram Reels, and YouTube Shorts via Higgsfield. Routes to kling3_0 (primary) or grok_video (fallback). Use when the user wants scroll-stopping hooks, viral short-form video, attention-grabbing openers, TikTok content, Reels content, Shorts content, or any social-media-optimized video.★ 6 GitHub starsSkillGab, o editor de vídeo com IAGab, o editor (/ogab)gabrielxreis/ogab · by gabrielxreisGab, o editor de vídeo com IA (comando /ogab). Skill PRINCIPAL para qualquer trabalho de vídeo: criar um vídeo novo (Reels, YouTube Shorts/longo, Meta Ads, anúncio, institucional, vídeo de cliente) OU editar um vídeo/projeto/timeline no DaVinci Resolve (cortar, montar, legendar, colocar música, takes, lettering, motions, cor, áudio, exportar). Leva do roteiro até a timeline pronta no DaVinci: roteiro para aprovação, voz por IA, música, efeitos sonoros, takes de banco ou gerados, lettering animado, motions e gráficos com HyperFrames, legenda com métrica e conferência automática. Use SEMPRE que o usuário pedir para criar/fazer/editar um vídeo, mexer no DaVinci, reels, anúncio, pauta ou roteiro, mesmo sem citar a skill; as outras skills de vídeo (hyperframes, motion-graphics etc.) entram como ferramentas DENTRO deste fluxo. Comando: /ogab <pedido> ou /ogab <subcomando> (ajuda, config, update, pauta, cliente). Também cuida do Instagram: legenda do post, carrossel pronto em imagem (PNG/PDF na marca do cliente), gancho de Reel viral, hashtags, tirar cara de IA do texto, semana de conteúdo, perfil e dados do nicho.★ 1 GitHub starsSkillAuto-generate viral 9:16 YouTube Shorts from a long-formMuapi youtube shortsSamurAIGPT/Generative-Media-Skills · by SamurAIGPTAuto-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.★ 4.3k GitHub starsSkillTurn newly recorded talking-head footage into review-readyNet new video editorericosiu/ai-marketing-skills · by ericosiuTurn newly recorded talking-head footage into review-ready vertical video drafts with an explicit edit plan, deterministic FFmpeg rendering, captions, hook cards, audio normalization, and visual QA. Use for original Instagram Reels, TikTok videos, YouTube Shorts, LinkedIn videos, founder-led recordings, multiple takes of a new script or idea card, or requests to automate the first video-editing pass. Do not use to mine clips from long-form source videos.★ 3.6k GitHub starsSkillPython3 telemetry/versioncheck.py 2/dev/null || trueShort-Form Video Clip Pipeline — Skillericosiu/ai-marketing-skills · by ericosiupython3 telemetry/versioncheck.py 2>/dev/null || true★ 3.6k GitHub stars

More from SamurAIGPT

SkillGenerate a high-converting ad creative setMuapi ad creativeSamurAIGPT/Generative-Media-Skills · by SamurAIGPTGenerate a high-converting ad creative set — hero image, ad copy variations, and platform-optimized crops for Meta, Google Display, and LinkedIn.★ 4.3k GitHub starsSkillGenerate a high-cut-density action / fight scene by firstMuapi AI fight sceneSamurAIGPT/Generative-Media-Skills · by SamurAIGPTGenerate a high-cut-density action / fight scene by first composing a 16-cell storyboard image, then driving Seedance 2.0 image-to-video off that storyboard. Stacks GPT-Image-2 (character sheet + storyboard), Nano-Banana-2 (environment concept), and Seedance 2.0 i2v.★ 4.3k GitHub starsSkillTurn a real lifestyle photo into a polished chibi cloneMuapi chibi collage effectSamurAIGPT/Generative-Media-Skills · by SamurAIGPTTurn a real lifestyle photo into a polished "chibi clone sticker diary" image — the original person stays photorealistic, surrounded by 5–8 kawaii chibi mini-clones, scrapbook doodles, and handwritten-style captions that match the scene.★ 4.3k GitHub starsSkillDirect high-fidelity cinematic video with AIMuapi cinema directorSamurAIGPT/Generative-Media-Skills · by SamurAIGPTDirect high-fidelity cinematic video with AI — translates creative intent into technical cinematographic directives for Veo3, Kling, and Luma video models via muapi.ai★ 4.3k GitHub starsSkillCreate a polished, on-brand Instagram postMuapi instagram postSamurAIGPT/Generative-Media-Skills · by SamurAIGPTCreate a polished, on-brand Instagram post — square or portrait hero image with matching caption and hashtags.★ 4.3k GitHub starsSkillEngineer professional-grade brand logos using geometricMuapi logo creatorSamurAIGPT/Generative-Media-Skills · by SamurAIGPTEngineer professional-grade brand logos using geometric primitives and negative space — generates minimalist, scalable vector-style marks via muapi.ai★ 4.3k GitHub stars