mcpField
O
openclip-clipping

openclip-clipping

github.com/openclip-appクリエイティブ・メディア145 回インストール12 週間前に更新
リポジトリ

openclip-clipping について

openclip-clippingは、長尺動画から短尺クリップ候補を作るエージェントスキルです。拡散度順の場面とタイトル、フック、投稿文、リンクを取得する非同期処理を案内し、利用には有効なサブスクリプションとクレジットが必要です。

主な機能

  1. 01動画URLまたはアップロードファイルを送信
  2. 02非同期ジョブの状態をポーリング
  3. 03拡散度スコア順に場面を一覧
  4. 04タイトル、フック、投稿文を取得
  5. 05任意で字幕付きクリップをレンダリング

活用シーン

  1. 01長尺動画から短尺候補を探す
  2. 02SNS投稿向けの場面を順位付け
  3. 03選んだ場面に字幕を付けてレンダリング

MCP 対応

リモートのOpenClip MCPサーバー `https://openclip.app/mcp` に接続します。MCPツールで処理ジョブの送信と状態確認、クリップ取得、任意のレンダリングを行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/openclip-app/agent-skills --skill openclip-clipping

インストール後、Claude Code で/openclip-clippingを入力して読み込まれたか確認します。

詳細

OpenClip:長尺動画をショート動画に切り抜く

OpenClip の主要なパイプラインでは、長尺動画を送信すると、タイトル、フック、SNS 投稿文、クリップ URL 付きでランク付けされた「バイラルな瞬間」が返されます。これは有料パイプラインであり、利用するには OpenClip の有効なサブスクリプションとクレジットが必要です(クレジットは処理時間の分数です)。

すべてのステップで非同期処理が行われます。必ずポーリングし、呼び出しが完了したと決めつけないでください。

セットアップ(一度だけ)

OpenClip は https://openclip.app/mcp にあるリモート MCP サーバーです。OAuth のプロンプトが表示されたら OpenClip アカウントでサインインしてください。コピーする API キーはありません。

  • Claude Code: claude mcp add --transport http openclip https://openclip.app/mcp を実行し、続けて /mcp で認証します。
  • Claude Desktop / web: Settings、Connectors、"Add custom connector" の順に進み、URL を貼り付けてサインインします。
  • Cursor(.cursor/mcp.json):{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } }
  • ヘッダーのみのクライアント: openclip.app/settings/connect で MCP トークンを発行し、Authorization: Bearer <token> を指定して https://openclip.app/mcp/key に接続します。

動作確認:get_account を呼び出し、credits_remaining > 0 であることを確認します。

一連の流れ

  1. 送信。 submit_video(url) は status: "queued" の job_id を返します。 ソース URL が対応しているかわからない場合は、先に list_supported_providers を呼び出してください。 ローカルファイルの場合は、create_upload(filename, content_type) を呼び出し、バイトデータを PUT してから complete_upload を呼び出します(この操作で有料パイプラインが開始されます)。
  2. ポーリング。 status が completed または終端状態になるまで、get_video_status(job_id) を呼び出します。 completed になる前に list_clips を呼び出さないでください。
  3. 一覧表示。 list_clips(job_id) はバイラルな瞬間を返します。
  4. レンダリング(任意)。 render_clip(moment_id, caption_preset) は字幕を焼き込みます。これも 非同期です。openclip-captions スキルを参照してください。

ステータスを正しく読み取る

ここがエージェントが間違えやすい部分です。認証済みであれば、submit_video は必ず成功します。 ジョブをキューに追加しますが、サブスクリプションやクレジットの事前確認は行いません。制限は後から get_video_status で、エラーではなくステータス値として示されます。

  • pending、downloading、processing - 処理中です。ポーリングを続けてください。
  • completed - 終端状態です。ここで list_clips を呼び出します。
  • failed - 終端状態です。送信直後に発生した場合は、通常、有効なサブスクリプションがありません。openclip.app でサブスクライブするようユーザーに案内してください。
  • pending_credits - チームのクレジットが不足しています。クレジットを追加するようユーザーに案内してください。
  • download_failed(ネストされた video.status 内)- ソース URL を取得できませんでした。リンクを確認するようユーザーに依頼してください。

「サブスクライブが必要です」という同期エラーが返されるとは考えないでください。ステータスを読み取って、適切に案内してください。

video.progress は大まかな値であり、滑らかに変化するパーセンテージではありません。失敗時はおよそ 0、ダウンロード中は 1 桁台、アップロード済みは約 10、処理中は約 20、完了時は 100 です。制御フローには progress ではなく、必ず status を使用してください。

クリップの内容

list_clips の各エントリ:

  • id - hashid です。render_clip に渡します。
  • title、hook、quote、social_copy、platforms、category - 投稿時に使う文面です。
  • start_time_ms、end_time_ms、duration_ms - 時間の単位はミリ秒です。
  • virality_score - 0~10 の値です。ユーザーから別の指示がない限り、このスコアで順位付けしてください。
  • viral_score_details - 0~100 のサブスコアです。フックの強さ、共有されやすさ、繰り返し視聴されやすさ、意外性、感情への訴求力を示します。クリップがその順位になった理由を説明する際に使ってください。
  • thumbnail_url と、render_clip の成功後に利用できるアセット clip {url, size_bytes, type}、clip_watermarked、rendered_clip {url, size_bytes}。

クリップ URL は恒久的な CDN リンクであり、署名付き URL でも、有効期限付き URL でもありません。

再利用可能なプリセット

毎回同じ設定(同じトラッカーモデル、キャプションプリセット、構図、ロゴのウォーターマーク)で処理するには、create_agent で処理エージェントを一度保存し、submit_video に渡します。 describe_agent_settings には、すべてのネストされたフィールドと許可される値が記載されています。update_agent は、送信したフィールドのみを更新します。create_agent_logo_upload と set_agent_logo を使うと、 ウォーターマークを追加できます(最大 2 MB)。get_usage では、クレジット残高と最近のアクティビティを確認できます。

エラー

これらは MCP ツールであり、REST API ではありません。失敗すると、isError: true と プレーンテキストのメッセージを含むツールの結果が返されます。HTTP ステータスコードも、JSON エラーエンベロープもありません。

  • "Not authenticated. Reconnect your OpenClip token." - コネクターを再接続するか、/mcp/key パス用の MCP トークンを再発行してください。
  • "Job not found." - job_id が間違っている、期限切れである、または別のアカウントのものです。古いセッションで取得した ID の場合は、再送信してください。
  • "Viral moment not found." - moment_id が間違っています。list_clips で再取得してください。
  • "Video not yet available. Check get_video_status for progress." - list_clips を呼び出すのが 早すぎます。get_video_status を繰り返し確認してください。
  • 検証メッセージはメッセージ本文として返されます。引数を修正して再試行してください。

ルール

  • 必ずポーリングしてください。送信後すぐに完了すると想定しないでください。
  • virality_score の高い順に並べてください。数値が高いほど優れています。
  • 時間の単位はミリ秒です。
  • この API はプロジェクトとフォルダーに対応していません。対応していると約束しないでください。
  • list_videos には、アカウント内にすでにある動画が表示されます。

プロンプトからアクションへの例

  • 「これをクリップにして:」 - submit_video(url) を実行し、get_video_status をポーリングしてから、list_clips を実行します。
  • 「job_... のトップ 3 の瞬間」 - list_clips を実行し、virality_score で並べ替えて、上位 3 件を取得します。
  • 「なぜこれが最適なの?」 - その瞬間の viral_score_details を確認します。
  • 「最後にアップロードした動画からショート動画を作って」 - list_videos を実行して動画を選び、送信後、ポーリングして一覧を取得します。

関連項目

スタイル付きキャプションの焼き込みには openclip-captions を使用します。長尺動画から複数のプラットフォーム向けに展開するワークフロー全体については openclip-repurpose をご覧ください。サブスクリプション不要で無料でトリミングやクロップを行うには openclip-video-editing をご覧ください。

コメント