muapi-youtube-shorts について
長い動画から評価順の短尺クリップを作るスキルです。YouTube Shorts、TikTok、Reels、Instagram Feed向けの設定を備え、文字起こしやハイライト選定、顔追跡クロップはmuapi.aiに委ねます。
主な機能
- 01プラットフォーム別の比率と本数設定
- 02ハイライトの採点と順位付け
- 03重複候補の除外
- 04顔追跡クロップ
- 05クリップのダウンロードとプレビュー
活用シーン
- 01長いYouTube動画からShortsを作成
- 02TikTokやReels向けのクリップを作成
- 03Instagram Feed向けの正方形クリップを生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ samuraigpt/ generative-media-skills --skill muapi-youtube-shortsインストール後、Claude Code で/muapi-youtube-shortsを入力して読み込まれたか確認します。
詳細
YouTube Shorts ジェネレーター
長尺動画 → 縦型のショートクリップをランキングし、ショート動画向けに調整します。
このスキルは、AI Clipping の基本機能をプラットフォームに合わせたプリセットで利用します。対象プラットフォームに適したアスペクト比とクリップ数を選び、ハイライト抽出、重複排除、顔追跡による自動クロップを muapi.ai のマネージド /ai-clipping エンドポイントに委任します。
リファレンス実装:https://github.com/SamurAIGPT/AI-Youtube-Shorts-Generator 基盤となる API:https://muapi.ai/playground/ai-clipping
このスキルと AI Clipping の使い分け
| 次の場合はこのスキルを使用します… | 次の場合は AI Clipping を直接使用します… |
|---|---|
| 対象が YouTube Shorts/TikTok/Reels の場合 | アスペクト比やクリップ数を完全に制御したい場合 |
| プラットフォームに合わせたデフォルト設定を使いたい場合 | 生のタイムスタンプ(--coords-only)が必要な場合 |
アスペクト比を考えるより --platform tiktok を渡したい場合 | カスタムレンダラーに統合する場合 |
エージェント実行プロトコル
ステップ 1 — 入力を収集する
| 入力 | デフォルト | 備考 |
|---|---|---|
--source | — | YouTube の URL、ホストされた mp4 の URL、またはローカルファイル |
--platform | shorts | shorts | tiktok | reels | feed(アスペクト比とクリップ数のデフォルトを設定) |
--num-clips | プラットフォームのデフォルト | クリップ数を上書きします |
--aspect-ratio | プラットフォームのデフォルト | アスペクト比を上書きします |
ユーザーが URL だけを指定した場合は、プラットフォームのデフォルト設定で実行し、追加情報を求めて処理を止めないでください。
ステップ 2 — 前提条件を確認する
muapi-cliがインストールされ、認証済みであること(muapi auth configure)MUAPI_API_KEYが利用可能であること
必要なのはこれだけです。文字起こし、ハイライトのランキング、重複排除、クロップはすべてサーバー側で実行されます。ローカルに ffmpeg、Python、Whisper、LLM キーは必要ありません。
ステップ 3 — パイプラインを実行する
bash library/social/youtube-shorts/scripts/run-youtube-shorts.sh \
--source "<YOUTUBE_URL>" \
--platform shorts \
--num-clips 5 \
--view
このスクリプトは次の処理を行います。
- ソースを解決します(必要に応じてローカルファイルを muapi CDN にアップロードします)。
--aspect-ratio/--num-clipsが渡されていない場合は、プラットフォームのデフォルト設定を選択します。- 選択したパラメーターを指定して
muapi edit clipping(/ai-clippingエンドポイント)を呼び出します。 - 完了するまでポーリングし、ランキング付きの概要を表示し、必要に応じてクリップをダウンロード/開きます。
サーバー側で実行される処理
/ai-clipping エンドポイントは、パイプライン全体を実行します。
- 音声を文字起こしします。
- バイラリティのフレームワークに基づいてハイライトをランキングします。対象となるのは、フックとなる場面、感情の高まり、強い意見、発見の瞬間、対立、引用に適した発言、ストーリーの山場、実用的な価値です。
- スコアに基づいて、重複する候補を重複排除します。
- 上位 N 件を選び出し、縦型クロップの顔追跡を行います。
各クリップには、スコア(0~100)、冒頭のフックとなるセリフ、そして「効果がある理由」を示す一文が付属します。
プラットフォーム別のデフォルト設定
| プラットフォーム | フラグ | アスペクト比 | デフォルトのクリップ数 | 備考 |
|---|---|---|---|---|
| YouTube Shorts | --platform shorts | 9:16 | 3 | 最初の 1 秒でフックを入れます |
| TikTok | --platform tiktok | 9:16 | 5 | エネルギー重視で、長めでも問題ありません |
| Instagram Reels | --platform reels | 9:16 | 3 | 最初の 1 秒でフックを入れます |
| Instagram Feed | --platform feed | 1:1 | 3 | 静止画のような雰囲気が効果的です |
デフォルト設定は --aspect-ratio/--num-clips で上書きできます。
クイック実行パターン
単一の動画、デフォルト設定:
bash run-youtube-shorts.sh --source "https://youtube.com/watch?v=VIDEO_ID"
TikTok プリセット — 5 本のクリップをプレーヤーで表示:
bash run-youtube-shorts.sh --source "<URL>" --platform tiktok --view
Instagram フィード向けの正方形クリップ:
bash run-youtube-shorts.sh --source "<URL>" --platform feed --num-clips 3
一括処理 — 1 行に 1 つの URL を記載した urls.txt:
xargs -a urls.txt -I{} bash run-youtube-shorts.sh --source "{}"
非同期で送信(request_id を返し、後でポーリング):
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"
}
]
}
結果を報告する際は、各クリップのランク、スコア、時間範囲、タイトル、フック、クリップ URL を提示してください。
よくあるミスと回避方法
- プラットフォームに合わないアスペクト比を使う — Shorts/TikTok/Reels は
9:16です。プラットフォームのプリセットで設定されるため、理由が分かっている場合にのみ上書きしてください。 --num-clipsの数に合わせて水増しする — API が返した候補が少ない場合は、返された分だけを使ってください。スコアの低い埋め草は公開しないでください。- 404 になったクリップ URL で再実行する — クリッピングをやり直すのではなく、
muapi predict wait <id>で同じrequest_idを再取得してください。
失敗時の対応
- API キーがない、または拒否された — エラーを表示します。キーを捏造しないでください。
- ジョブがタイムアウトした —
--poll-timeoutの値を増やして再試行します。 - ソース URL にアクセスできない —
muapi upload fileでファイルをアップロードし、返された URL を渡します。 - 返されたクリップが指定数より少ない — ソースにランク付け可能なハイライトがそれほどありませんでした。返された結果を注記とともに返します。
完了条件
このスキルは、次の条件を満たしたときに完了です。
result.shortsに最大num_clips件のエントリーがあり、それぞれに有効なclip_urlが設定されている。- ユーザーにランク付けされたリスト(スコア、時間範囲、タイトル、フック、URL)が表示されている。
--output-jsonが設定されている場合、ファイルが存在し、解析できる。