Ozor URL-to-Video
Ozor.ai上での、エンドツーエンドのWebページから動画への変換。URLをOzorに渡すと、実際のページコンテンツ(見出し、価値提案、社会的証明、CTA)を反映したプランが返ってくるため、承認または編集後に完成動画を出力できます。
いつ使うか
入力がURLの場合にこのスキルを使用します。シグナル:
- "https://... から動画を作って"
- "ランディングページ/ホームページ/商品ページから動画を作って"
- "このブログ記事を動画にして"
- "この記事/変更履歴ページから動画を作って"
- ユーザーが読んでほしいと期待するURLを含む任意のメッセージ
以下の場合はこのスキルを使用しないでください:
- 入力が短いテキストの概要 →
ozor-generate - 入力が添付のローカルファイル(PDF/PPTX/DOCX) →
ozor-document-video - ユーザーが単に書き起こしプロンプトを欲しがっている場合 →
ozor-landing-page-to-video(プロンプトのみのスキル) - ユーザーが既存の動画を管理したい場合 →
ozor-video-library
必要なMCPツール
mcp__ozor__analyze_document—urlパラメータを直接受け付けます。アップロードは不要。mcp__ozor__get_plan/mcp__ozor__update_plan— 生成前にプランを確認・編集。mcp__ozor__generate_from_plan— ビルドを開始し、projectIdを返します。mcp__ozor__wait_for_job— レスポンスにjobIdが含まれる場合に使用。mcp__ozor__export_video,mcp__ozor__wait_for_exportmcp__ozor__get_embed_code
MCPが接続されていない場合は、ユーザーに伝えて停止してください。自分でURLをブラウズして手書きのプロンプトを作成しないでください — Ozorはページからブランドカラー、ヒーローイメージ、構造を直接抽出します。あなたがスクレイピングしたテキストではそれが失われます。
ワークフロー
ステップ1 — URLをOzorに渡す
mcp__ozor__analyze_document({
url: "<URL>",
...オプションのヒント: targetDuration, format, audience, tone, focus
})
URLの種類に応じて:
- ランディングページ / 商品ページ → デフォルトで
format: "9:16"または"16:9"(どちらか明確でなければ確認 — 縦型はソーシャルに最適、横型はサイトへの埋め込みに最適)、targetDuration: "30s"–"45s"、tone"confident"。 - ブログ記事 / 記事 →
format: "16:9"、targetDuration: "60s"–"90s"、tone"informative"。 - 変更履歴 / リリースページ →
format: "16:9"、targetDuration: "30s"–"45s"、tone"energetic"、focus"one scene per shipped feature"。 - ドキュメントページ →
format: "16:9"、targetDuration: "60s"、tone"clear, technical"、focus"explain what this feature does and how to use it"。
戻り値: { planId, plan }。
ステップ2 — プランを表示して停止
プランをユーザーに簡潔に表示します:
📋 <URL> の Ozor プラン
**ソース:** <ページタイトルまたはドメイン>
**フォーマット:** 16:9 / 9:16
**推定時間:** 約X秒
**検出されたブランド:** <色 / Ozorが抽出した場合の製品名>
**シーン数:** N
(1) <シーンタイトル> — <1行の説明>
(2) <シーンタイトル> — <1行の説明>
...
現状のまま承認しますか?それとも変更しますか?シーンの編集、フォーマットの変更、トーンの変更、フォーカスの変更が可能です。
**承認を待ってください。**まだ generate_from_plan を呼び出さないでください。
ステップ3 — 編集内容を適用(あれば)
mcp__ozor__update_plan({ planId, ... }) を使用します。get_plan でプランを再表示します。承認されるまでループします。
ステップ4 — 生成
mcp__ozor__generate_from_plan({ planId }) // -> { projectId, jobId? }
jobId が返ってきた場合、mcp__ozor__wait_for_job({ videoId: projectId, jobId }) を実行します。
ステップ5 — 書き出し
mcp__ozor__export_video({ videoId: projectId })
mcp__ozor__wait_for_export({ videoId: projectId }) // -> shareUrl, editorUrl, downloadUrl
ステップ6 — 埋め込み
mcp__ozor__get_embed_code({ videoId: projectId })
ステップ7 — 結果を表示
🎬 <URL> の動画が完成しました
**共有:** <shareUrl>
**編集:** <editorUrl>
**ダウンロード:** <downloadUrl>
**埋め込み(サイトに貼り付ける場合):**
```html
<iframe ...></iframe>
ソーシャル用の縦型9:16、または長めの90秒説明版はいかがですか?同じプランから再生成できます。
## URLフローが最も得意なこと
- **ランディングページ** — Ozorはヒーローの見出し、価値提案、社会的証明、CTA、ブランドカラーを取得します。あなたのプロンプトではこれらすべてが失われます。
- **ブログ記事** — テーゼとセクション構造を取得し、記事に対応する説明動画を生成します。
- **変更履歴** — 各リリース/機能を自然に独自のシーンにマッピングします。
- **商品ページ** — 商品のスクリーンショット/ヒーローイメージを利用可能な場合にシーンに取り込みます。
## フォーマット決定のヒューリスティック
ユーザーが指定しなかった場合:
- URLがホームページまたは商品ページで、**明らかにソーシャル/広告として使用するケース** → `9:16`
- URLがホームページまたは商品ページで、**明らかにページ自体に埋め込むケース** → `16:9`
- URLがブログ/記事/ドキュメント/変更履歴 → `16:9`
曖昧な場合は、デフォルトで`16:9`を提案し、最後に`9:16`の再実行を提案します。
## 最初のレンダリング後に提案する価値のあるバリエーション
これらはユーザーが最初の動画を入手した後にのみ言及してください。事前に生成しないでください:
- 横型動画の**9:16ソーシャルカット** → `update_plan({ planId, format: "9:16" })` で同じプランから再生成。
- 同じページからの**短いティーザー(15秒)** + **完全な説明動画(60秒)**。
- **2つのオーディエンス向け**(例: 「技術的な購入者」 vs 「エグゼクティブ購入者」) — 異なる`audience`ヒントで再解析。
## エラーと復旧
- **`analyze_document`が薄いプランを返す**(よくある原因: ペイウォール付きページ、Ozorが読めないJSレンダリングSPA) → ユーザーに伝え、代替URLを依頼するか、`ozor-generate`用の概要として主要コンテンツを貼り付けてもらえるか尋ねる。
- **検出されたブランドカラーが間違っている** → 生成前に`update_plan`で色を修正。
- **生成に失敗する** → エラーが参照するシーンを確認し、`update_plan`で修正して再試行。
- **書き出しがハングする** → `wait_for_export`を再度呼び出すと再開されます。
## ルール
1. **常にURLを`analyze_document`に渡すこと。** 自分でページをスクレイピングして`generate_video`にルーティングしないでください。Ozorのブランドおよびビジュアル抽出が無駄になります。
2. **`generate_from_plan`の前に、必ずプランを表示して承認を待つこと。** プランでフォーマットとトーンが確定します。
3. **書き出し、書き出し待機、埋め込みには`projectId`を`videoId`として使用すること。**
4. **すべてのURLを表示すること** — 共有、編集者、ダウンロード、埋め込み。
5. **バリエーションは提案するが、事前生成はしないこと。** 依頼がない限り、9:16、16:9、ティーザーをむやみにレンダリングしないでください。