# 分析と編集リスト

> MCP ツールで、動画をシーンごとに分析し、その分析を監査し、無音を検出し、複数の収録を同期して、編集決定リストを計画してレンダリングします。

Source: https://nodaro.ai/ja/docs/mcp/tools/analysis-and-edl

**分析と編集リストのツール**は、既存の収録を読み取り、構造化されたデータや完成したカットに変えます。`video_analysis` と `video_audit` は、動画を再現できるように、シーンごとに分解します。`silence_detect` と `audio_sync` は、収録を測定します。`plan_edit` と `apply_edl` は、文字起こしからカットを計画してレンダリングします。どのツールにも `workflows:execute` 権限が必要で、ジョブ ID を返します。

## `video_analysis`
動画を分析し、AI で再現するためのシーンごとの内訳を作ります。[**動画分析**（Video Analysis）](https://nodaro.ai/docs/nodes/video/video-analysis)ノードと同じように動作します。

- **シーン**は自然な区切りで分割され、最長 8 秒です。1 シーンが、画像または動画の 1 回の生成に相当します。
- **`visualResolved`** は各シーンの説明で、それだけで完結し、プロンプトにそのまま使えます。後のステップが読み込むのは、このフィールドです。
- **各シーン**には、ショットの種類、カメラの動き、音のレイヤーのリストもあります。音声は一字一句そのまま引用され、音楽と効果音は生成できるように説明されます。空のリストは、無音を意味します。
- **スロット**は、繰り返し登場する人物、オブジェクト、場所です。自分のキャラクターで、キャスティングし直せます。

**権限**：`workflows:execute`。**クレジット**：ティアと動画の長さによって決まります（下の表を参照）。

| パラメーター | 型 | 説明 |
| --- | --- | --- |
| `video_asset_id`, `video_url` or `youtube_url` | string | **必須（1 つだけ指定）**。Nodaro の動画のジョブ ID かアップロード ID、動画への直接の URL、または YouTube のリンクです。最長 10 分で、ライブ配信は使えません。ソースが 0 個か 2 個の場合は、エラーが返されます。 |
| `llm_model` | string | ティアです。`pro`（デフォルト）、`fast`（より安価）、`smart`（最も正確）、`mixed`、`mixed-fast` のいずれかです。 |
| `selection_mode` | string | `choose`（デフォルト）か `combine` です。`combine` は、検証を経て強化された、最も詳細な結果です。少し遅くなりますが、おすすめです。 |
| `variations` | boolean | 着替え、夢、変装など、人物やものの別の見た目も検出し、それぞれの見た目を登場するシーンに結び付けます。デフォルトは `false` です。 |
| `music_video` | boolean | クリップをミュージックビデオとして扱い、歌われたすべての歌詞を音声として文字起こしします。デフォルトは `false` で、その場合、画面上の誰も歌っていない歌のボーカルは、音楽のレイヤーに含まれます。 |
| `translate_speech_to_english` | boolean | 話された言葉と歌われた言葉を、英語で返します。デフォルトは `false` で、元の言語のままです。 |
| `translate_on_screen_text_to_english` | boolean | 看板、字幕、タイトルを英語で返します。このテキストは映像のプロンプトの一部なので、再生成したシーンには英語の文字が表示されます。名前は元の形のままです。デフォルトは `false` です。 |
| `analysis_focus` | string | 分析の方向づけで、最大 2,000 文字です。たとえば「商品のショットと画面上のテキストに注目」です。 |

**戻り値**：ジョブ ID です。分析結果（`meta`、`slots`、`scenes`）は、ジョブの `output_data` に入ります。

料金は、ティアと長さの段階によって決まります。長さの段階は、60、180、360、600 秒のうち、動画が収まる最小のものです。

| ティア | 60 秒まで | 180 秒まで | 360 秒まで | 600 秒まで |
| --- | --- | --- | --- | --- |
| `fast` | 181 | 186 | 516 | 849 |
| `pro` | 217 | 233 | 642 | 1,059 |
| `mixed`、`mixed-fast` | 270 | 292 | 731 | 1,181 |
| `smart` | 414 | 504 | 1,270 | 2,081 |

最新の料金は、常にツール自体の説明に記載されています。この表とツールの内容が異なる場合は、ツールのほうが正しい情報です。

## `video_audit`
動画をもう一度見て分析と照らし合わせ、誤りを修正します。すべての修正はチェックを経て適用され、報告されます。修正できなかった部分は、変更されずに要注意として示されます。[**AI 監査**（AI Audit）](https://nodaro.ai/docs/nodes/video/ai-audit)ノードと同じように動作します。

**権限**：`workflows:execute`。**クレジット**：長さによって決まり、分析を渡すと安くなります。

| パラメーター | 型 | 説明 |
| --- | --- | --- |
| `video_url` | string | **必須**。監査する動画です。 |
| `analysis` | object | 以前の `video_analysis` または `video_audit` の呼び出しで得た分析を、そのまま渡します。渡さない場合、ツールはまず高速な分析を実行するため、料金が高くなります。 |

**戻り値**：ジョブ ID です。ジョブの `output_data` にはレポートが入ります。レポートには、チェックした内容、変更した内容、未解決のまま残った内容が含まれます。

| 実行 | 60 秒まで | 180 秒まで | 360 秒まで | 600 秒まで |
| --- | --- | --- | --- | --- |
| `analysis` あり | 215 | 291 | 664 | 1,075 |
| `analysis` なし | 396 | 477 | 1,180 | 1,924 |

## `silence_detect`
収録の中の無音区間を、音だけから見つけます。文字起こしも映像も使いません。[**無音検出**（Silence Detect）](https://nodaro.ai/docs/nodes/audio/silence-detect)ノードと同じように動作します。

**権限**：`workflows:execute`。**クレジット**：10。

| パラメーター | 型 | 説明 |
| --- | --- | --- |
| `audio_url` | string | **必須**。オーディオか動画の URL です。どちらの場合も、オーディオトラックが読み込まれます。 |
| `threshold_db` | number | 無音とみなすレベルで、dBFS 単位の -90〜0 です。デフォルトは `-35` で、話し声に適した下限です。 |
| `min_silence_ms` | integer | 報告する、最短の無音の長さで、1〜600,000 ミリ秒です。デフォルトは `700` です。 |
| `pad_ms` | integer | 各範囲の前後に残す、話し声の長さで、0〜60,000 ミリ秒です。デフォルトは `120` です。 |

**戻り値**：ジョブ ID です。結果は `output_data.json` で、`{ ranges, durationMs }` の形です。`output_data` 全体ではなくこのオブジェクトを、`plan_edit` の `silence` として渡します。または、`ranges` を使って、編集リストを手で書きます。

## `audio_sync`
カメラのファイルとメインマイクなど、1 つの会話を収録した 2〜6 本の録音について、音を比較して、それぞれの時計がどれだけずれているかを測定します。[**音声同期**（Audio Sync）](https://nodaro.ai/docs/nodes/audio/audio-sync)ノードと同じように動作します。

**権限**：`workflows:execute`。**クレジット**：基準にそろえる録音 1 本につき 10 で、10 ×（ソースの数 - 1）です。

| パラメーター | 型 | 説明 |
| --- | --- | --- |
| `sources` | array | **必須**。2〜6 本の録音で、それぞれ `{ id, url }` です。ID は重複しないようにします。オーディオか動画の URL を指定します。 |
| `reference` | string | すべてのオフセットの基準になる録音の ID です。デフォルトは、最初の録音です。 |

**戻り値**：ジョブ ID です。結果は `output_data.json` で、`{ reference, offsets, notes }` の形です。各オフセットには、`sourceId`、`offsetMs`、`confidence`、`driftMsPerHour` が含まれます。基準の時計での時刻は、そのソースでの時刻に `offsetMs` を足したものです。低い信頼度と時計のドリフトは `notes` で報告され、補正されることはありません。

## `plan_edit`
タイムスタンプ付きの文字起こしを、収録の編集決定リストに変えます。読み取るのは文字起こしだけで、映像は読み取りません。[**編集プラン**（Edit Plan）](https://nodaro.ai/docs/nodes/video/edit-plan)ノードと同じように動作します。

**権限**：`workflows:execute`。**クレジット**：収録の長さ、モード、ティアによって、30〜1,480 です。**Nodaro Cloud のみ**。

| パラメーター | 型 | 説明 |
| --- | --- | --- |
| `mode` | string | **必須**。`tighten` は、無音、フィラーワード、言い直しを取り除いた 1 本のカットを作ります。`clips` は、共有しやすい短いクリップを見つけ、クリップごとに 1 つの編集リストを作ります。`chapters` は、タイトル付きのチャプターを付けます。 |
| `transcript` | object | **必須**。単語単位の文字起こしです。[`transcribe`](https://nodaro.ai/docs/mcp/tools/audio#transcribe) で作ります。 |
| `sources` | array | **必須**。1〜6 本の収録素材です。それぞれに `url` を指定し、任意で `kind`（`video` または `audio`）、`role`（`master-audio`、`camera`、`wide`、`screen` のいずれか）、`speakers`、マスタークロック上の `offset_ms` を指定します。 |
| `silence` | object | `silence_detect` の結果です。 |
| `plan_tier` | string | `economy`、`standard`（デフォルト）、`premium` のいずれかです。 |
| `count` | integer | `clips` 用です。クリップの数で、1〜50 です。 |
| `target_duration_sec` | integer | `clips` 用です。各クリップの長さで、5〜180 秒です。 |
| `target_aspect` | string | `16:9`、`9:16`、`1:1`、`4:5` のいずれかです。 |
| `platform`, `instructions`, `style_guide` | string | クリップを投稿する場所と、自由記述のガイダンスです。 |

**戻り値**：ジョブ ID です。プランはジョブの `output_data` に入り、そのまま `apply_edl` に渡せます。

## `apply_edl`
編集決定リストを、完成したカットにレンダリングします。[**EDL 適用**（Apply EDL）](https://nodaro.ai/docs/nodes/video/apply-edl)ノードと同じように動作します。1 分あたりの料金も、このノードのページに記載されています。

**権限**：`workflows:execute`。**クレジット**：レンダリングされた出力の 1 分ごとに課金されます。

| パラメーター | 型 | 説明 |
| --- | --- | --- |
| `edl` | object or string | **必須**。`plan_edit` のプラン、または自分で書いたリストです。その `segments` は `master` クロック上の整数のミリ秒で表し、それぞれが EDL の `sources` の 1 つを ID で指定します。動画をレンダリングするには、すべてのセグメントに動画のソースが必要です。 |
| `sources` | array | EDL のソースの URL を置き換える URL で、同じ順番で指定します。 |
| `output` | string | `video`（デフォルト）または `audio` です。 |
| `quality` | string | 高速なプレビュー用の `proxy`、または `final`（デフォルト）です。 |
| `crossfade_ms` | number | 独自のトランジションがないつなぎ目にかけるクロスフェードで、最大 5,000 ms です。デフォルトは `0` で、ハードカットになります。 |
| `transcript` | object | カットに合わせて再マッピングする文字起こしです。再マッピングにより、結果と一致するようになります。 |

1 回のレンダリングで作れるのは、最大 180 分です。形式が正しくないリストや長すぎるリストは、何かが実行される前に拒否され、該当するセグメントと、違反したルールが示されます。

**戻り値**：ジョブ ID です。レンダリングされたファイルが、ジョブの結果です。

## 文字起こしから収録を編集する
### 文字起こしする
収録に対して [`transcribe`](https://nodaro.ai/docs/mcp/tools/audio#transcribe) を呼び出します。単語のタイミングは、ジョブの `output_data.json.words` に入ります。

### 無音を見つける
`silence_detect` を呼び出します。このステップは任意ですが、`tighten` に役立ちます。

### カットを計画する
文字起こし、無音、収録を渡して、`tighten`、`clips`、`chapters` のいずれかのモードで `plan_edit` を呼び出します。プランを確認し、必要に応じて変更します。

### レンダリングする
プランを渡して `apply_edl` を呼び出します。まず `quality: "proxy"` で、すばやくプレビューします。

`podcast-editing` レシピは、アシスタントに同じ手順を案内します。[コンテンツレシピ](https://nodaro.ai/docs/mcp/recipes)を参照してください。複数のカメラと別録りのマイクがある場合は、先に `audio_sync` を実行し、各ソースの `offset_ms` を `plan_edit` に渡します。

## Frequently asked questions

### video_analysis は何を返しますか？

動画をシーンごとに分解したものです。各シーンは最長 8 秒で、プロンプトにそのまま使える映像の説明、ショットの種類、カメラの動き、音のレイヤーを含みます。繰り返し登場する人物、オブジェクト、場所は、キャスティングできるスロットになります。

### video_analysis で分析できる動画の長さは、どれくらいまでですか？

最長 10 分です。Nodaro の ID、直接の URL、YouTube のリンクで指定できます。YouTube のライブ配信は拒否されます。料金は、ティアと、動画が 4 つの長さの段階のどれに当てはまるかによって決まります。

### MCP で、ポッドキャストの収録の間を詰めるにはどうすればよいですか？

収録を文字起こしし、必要に応じて無音を検出してから、mode を tighten にして plan_edit を呼び出します。できたプランを apply_edl でレンダリングします。podcast-editing レシピが、アシスタントにこの手順を案内します。

### EDL とは何ですか？

編集決定リスト（edit decision list）です。再生順に並んだセグメントのリストで、各セグメントはソースの収録の時間範囲を指定します。apply_edl が、これを完成したカットにレンダリングします。
