OpenClip:長尺コンテンツをバッチ変換するスキル
これはエンドツーエンドのワークフロースキルです。1本の長尺動画を入力とし、投稿準備完了の縦型クリップ群を出力します。各クリップにはキャプションとコピーが自動生成されます。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: 設定 → コネクタ → 「カスタムコネクタを追加」でURLを貼り付け、サインインします。
- Cursor(
.cursor/mcp.json):{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } } - ヘッダーのみのクライアント:
openclip.app/settings/connectでMCPトークンを発行し、https://openclip.app/mcp/keyにAuthorization: Bearer <token>ヘッダーで接続します。
動作確認:get_account を呼び出し、credits_remaining > 0 を確認します。
ワークフロー
開始前に、 ユーザーと2つのことを合意してください:何本のクリップが必要か、どのプラットフォーム向けか。この2つの回答が以降のすべての決定を導きます。ユーザーに確認せずに勝手に決めないでください。
- ソースを送信する。
submit_video(url)を呼び出します。job_idとステータスqueuedが返ります。 ローカルファイルの場合:create_uploadでアップロードURLを取得し、PUTでバイナリを送信、その後complete_uploadを実行します。 - 完了までポーリングする。
get_video_status(job_id)をステータスがcompletedになるまで繰り返し呼び出します。ほぼ即座にfailedが返ってきた場合はアクティブなサブスクリプションがありません。pending_creditsが返ってきた場合はクレジット切れです。その旨を明確に伝えて停止し、終了状態に対してポーリングを続けないでください。 - 注目シーンを取得する。
list_clips(job_id)を呼び出します。virality_score(0〜10)で並べ替え、ユーザーが希望した数のクリップを上位から取得します。レンダリングを行う前に、タイトル、フック、再生時間、スコアを含む候補一覧をユーザーに表示し、承認を得てください。レンダリングにはクレジットが消費されます。 - 各候補にキャプションを付ける。
list_caption_presetsでプリセット一覧を取得し、承認された各モーメントに対してrender_clip(moment_id, caption_preset)を呼び出します。すべてのモーメントにrendered_clipが設定されるまでlist_clipsをポーリングします。 - 必要に応じてリフレームする。 パイプラインの出力はすでに短尺向けのフォーマットになっています。特定のプラットフォームで異なるアスペクト比が必要な場合は、レンダリング済みクリップに対して無料の
edit_video(video, operation="crop", aspect="9:16" | "1:1" | "4:5")を実行します。 - バッチを引き渡す。 各クリップについて、以下の情報を提供します:
rendered_clipURL、title、hook、social_copy、duration_ms、virality_score、推奨platformsフィールド。
プラットフォーム別の形状
- TikTok、Reels、Shorts - 9:16 縦型。これがデフォルトで、パイプラインはこれをターゲットにしています。
- Instagram フィード - 4:5 または 1:1。レンダリング済みクリップを
edit_videoでクロップします。 - X と LinkedIn - 16:9 または 1:1 のどちらでも機能します。アスペクト比よりもキャプションが重要です。これらのプラットフォームではほとんどの動画がミュートで自動再生されます。
各モーメントにはパイプラインからの platforms フィールドが含まれています。これを絶対的なルールではなく出発点の提案として使い、ユーザーが実際に投稿するプラットフォームと調整してください。
シーケンスとコスト
- ポーリングはバッチ処理しましょう。一度送信したら、
get_video_statusをループでポーリングするようにし、再送信はしないでください。 - 承認されたモーメントだけをレンダリングしてください。
render_clipはすべて処理作業です。ユーザーが3本欲しいときに10本すべてをレンダリングしないでください。 - 繰り返しのワークフロー(同じキャプション、同じ構成、毎回同じロゴウォーターマークなど)の場合は、
create_agentで処理エージェントを保存し、submit_videoに渡してください。これにより、毎回指定し直すことなく、将来のすべてのバッチが同じ設定で処理されます。describe_agent_settingsですべてのフィールドを確認できます。 get_usageでクレジット残高(クレジットは処理時間の分単位)を確認してから大きなバッチを開始してください。ユーザーが大量のクリップを依頼した場合にチェックしてください。
ルール
- 常にポーリングすること。すべてのステップが非同期です。
virality_scoreでランク付けし、高いほど良い。viral_score_detailsでランキングの内訳を説明してください(フックの強さ、シェアされやすさ、リウォッチ可能性、意外性、感情への影響)。- 時間はミリ秒単位です。
- クリップURLは永続的なCDNリンクであり、署名や有効期限はありません。
- プロジェクトやフォルダはサポートされていません。 ユーザーにフォルダ構造を約束しないでください。
- 依頼がない限り、
social_copyをインフルエンサー調に書き換えないでください。クリップに合わせて生成されており、過度な書き換えは通常、品質を下げます。
プロンプトからアクションへの例
- 「このポッドキャストをTikTok用に10本に加工して」 - 送信、ポーリング、
list_clips、上位10件の候補を表示、承認を得る、各クリップにキャプションを付けてレンダリング、ポーリング、バッチを引き渡す。 - 「このウェビナーから1週間分のコンテンツを作って」 - 同様の手順で、5〜7本のクリップにサイズ調整し、各モーメントの
categoryを使ってテーマごとにグループ化。 - 「一番良いやつだけ、MrBeastみたいなキャプションで」 - 送信、ポーリング、最も高い
virality_scoreを取得、render_clip(moment_id, caption_preset="beast")、ポーリング。 - 「前回と同じ見た目で」 -
submit_videoに保存済みのエージェントIDを再利用する。
関連情報
パイプラインの仕組みとステータス処理の詳細は openclip-clipping にあります。キャプションプリセットとカスタムキャプションスタイルは openclip-captions にあります。無料のクロップ、トリミング、圧縮は openclip-video-editing にあります。