‹ 首页

muapi-youtube-shorts

@samuraigpt · 收录于 1 周前 · 上游提交 3 周前

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.

适合你,如果你需要快速从长视频中提取精彩片段做成短视频。

/ 下载安装
muapi-youtube-shorts.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add samuraigpt/generative-media-skills/muapi-youtube-shorts
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- samuraigpt/generative-media-skills/muapi-youtube-shorts
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify samuraigpt/generative-media-skills/muapi-youtube-shorts
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
3754GitHub stars
~1.3K上下文体积 · 单文件
镜像托管

怎么用

商店整理自技能原文 · 版本 a1c4c98 · 表述以原文为准
它做什么

装上后,Claude 能根据你提供的长视频链接,自动生成多个 9:16 竖屏短视频片段,适合发到 YouTube Shorts、TikTok 或 Reels。它会提取高光时刻、自动裁剪并给出评分和推荐理由。

什么时候触发

当你给 Claude 一个 YouTube 视频链接或视频文件地址,并明确要求生成短视频片段时触发。

装好后可以这样说
使用默认平台(YouTube Shorts)和默认片段数。
指定平台为 TikTok,片段数为 5。
技能原文 SKILL.md作者撰写 · MIT · a1c4c98

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](../../edit/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](../../edit/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.
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。