Agent SkillsSamurAIGPT/Generative-Media-Skills › muapi-youtube-shorts

muapi-youtube-shorts

GitHub

自动从长视频生成适用于YouTube Shorts、TikTok等平台的9:16竖屏短视频。通过调用muapi.ai的AI剪辑接口,实现高光提取、去重和人脸追踪裁剪,简化社交媒体内容创作流程。

.opencode/skills/muapi-youtube-shorts/SKILL.md SamurAIGPT/Generative-Media-Skills

Trigger Scenarios

用户希望将长视频转换为短视频 需要为特定社交平台(如TikTok)优化视频格式

Install

npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-youtube-shorts -g -y
More Options

Non-standard path

npx skills add https://github.com/SamurAIGPT/Generative-Media-Skills/tree/main/.opencode/skills/muapi-youtube-shorts -g -y

Use without installing

npx skills use SamurAIGPT/Generative-Media-Skills@muapi-youtube-shorts

指定 Agent (Claude Code)

npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-youtube-shorts -a claude-code -g -y

安装 repo 全部 skill

npx skills add SamurAIGPT/Generative-Media-Skills --all -g -y

预览 repo 内 skill

npx skills add SamurAIGPT/Generative-Media-Skills --list

SKILL.md

Frontmatter
{
    "name": "muapi-youtube-shorts",
    "slug": "muapi-youtube-shorts",
    "version": "2.0.0",
    "description": "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.",
    "acceptLicenseTerms": true
}

YouTube Shorts Generator

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


When to Use This vs. 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

Agent Execution Protocol

Step 1 — Collect Inputs

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.


Step 2 — Verify Prerequisites

  • muapi-cli installed and authed (muapi auth configure)
  • MUAPI_API_KEY available

That's it. Transcription, highlight ranking, dedupe, and cropping all run server-side — no ffmpeg, no Python, no Whisper, no LLM keys needed locally.


Step 3 — Run the Pipeline

bash library/social/youtube-shorts/scripts/run-youtube-shorts.sh \
  --source "<YOUTUBE_URL>" \
  --platform shorts \
  --num-clips 5 \
  --view

The script:

  1. Resolves the source (uploads local files to muapi CDN if needed).
  2. Picks platform defaults if --aspect-ratio / --num-clips aren't passed.
  3. Calls muapi edit clipping (the /ai-clipping endpoint) with the chosen params.
  4. Polls until done, prints a ranked summary, optionally downloads / opens clips.

What Happens Server-Side

The /ai-clipping endpoint runs the full pipeline:

  • Transcribes the audio.
  • Ranks highlights through a virality framework — hook moments, emotional peaks, opinion bombs, revelation moments, conflict, quotable lines, story peaks, practical value.
  • Dedupes overlapping candidates by score.
  • Top-N selects and face-tracks vertical crops.

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


Platform Defaults

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.


Quick Invocation Patterns

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

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 reporting back, 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. The platform preset handles this; only override if you know why.
  2. Padding to hit --num-clips — if the API returns fewer survivors, return what you have. Don't ship low-score filler.
  3. Re-running on a 404'd clip URL — re-fetch the same request_id with muapi predict wait <id> rather than re-clipping.

Failure Modes

  • API key missing or rejected — surface the error; don't fabricate a key.
  • Job timed out — bump --poll-timeout and retry.
  • Source URL not reachable — upload the file via muapi upload file and pass the returned URL.
  • Fewer clips returned than requested — 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.
  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.

Version History

  • d4ce293 Current 2026-07-25 11:19

Same Skill Collection

.opencode/skills/muapi-ad-creative/SKILL.md
.opencode/skills/muapi-ai-clipping/SKILL.md
.opencode/skills/muapi-cinema-director/SKILL.md
.opencode/skills/muapi-instagram-post/SKILL.md
.opencode/skills/muapi-logo-creator/SKILL.md
.opencode/skills/muapi-nano-banana/SKILL.md
.opencode/skills/muapi-product-video-ad-maker/SKILL.md
.opencode/skills/muapi-seedance-2/SKILL.md
.opencode/skills/muapi-social-media-video/SKILL.md
.opencode/skills/muapi-ugc-video-factory/SKILL.md
.opencode/skills/muapi-ui-design/SKILL.md
.opencode/skills/muapi-youtube-thumbnail/SKILL.md
core/edit/SKILL.md
core/media/SKILL.md
core/platform/SKILL.md
library/edit/ai-clipping/SKILL.md
library/motion/3d-logo-animation/SKILL.md
library/motion/ai-fight-scene/SKILL.md
library/motion/animal-video-generator/SKILL.md
library/motion/award-ceremony-video/SKILL.md
library/motion/cartoon-dance-animation/SKILL.md
library/motion/character-story-video/SKILL.md
library/motion/cinema-director/SKILL.md
library/motion/drone-style-video/SKILL.md
library/motion/freeze-effect-video/SKILL.md
library/motion/giant-product-showcase/SKILL.md
library/motion/jewelry-product-video/SKILL.md
library/motion/music-video/SKILL.md
library/motion/one-shot-video/SKILL.md
library/motion/product-ad-cinematic/SKILL.md
library/motion/product-showcase-video/SKILL.md
library/motion/product-video-ad-maker/SKILL.md
library/motion/seedance-2/SKILL.md
library/motion/storyboard-to-cooking-video/SKILL.md
library/motion/talking-baby-video/SKILL.md
library/motion/ugc-lifestyle-try-on/SKILL.md
library/motion/ugc-video-factory/SKILL.md
library/social/instagram-post/SKILL.md
library/social/product-campaign/SKILL.md
library/social/rednote-cover/SKILL.md
library/social/social-media-video/SKILL.md
library/social/social-pack/SKILL.md
library/social/ugc-ads-workflow/SKILL.md
library/social/youtube-shorts/SKILL.md
library/visual/action-figure-generator/SKILL.md
library/visual/ad-creative/SKILL.md
library/visual/amazon-product-listing/SKILL.md
library/visual/blog-header/SKILL.md
library/visual/brand-kit/SKILL.md

Metadata

Files
0
Version
2e0ef66
Hash
4d8c3741
Indexed
2026-07-25 11:19

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-22 05:36
浙ICP备14020137号-1 $お客様$