# n8n ワークフロー

> WayinVideo API と n8n を接続し、クリッピング、要約、文字起こし、Find Moments、スケジュール処理向けのセルフホスト型 AI 動画ワークフローを構築します。

## n8n 動画ワークフロー連携

**n8n** を使うと、HTTP リクエスト、カスタム JavaScript 変換、スケジュールジョブ、webhook、データベース、セルフホスト基盤を活用した、開発者向けの WayinVideo ワークフローを構築できます。

n8n は、認証情報、リトライ動作、ストレージ、カスタムコード、大規模な動画処理ワークフローをより細かく制御したい場合に適しています。

WayinVideo API と n8n を組み合わせれば、YouTube からクリップを作るパイプライン、非公開ファイル処理、スケジュールされたコンテンツ運用、データベース連動のポーリング、カスタム CMS 連携など、セルフホスト型の動画自動化を構築できます。

> WayinVideo 専用の n8n node は不要です。WayinVideo API キーを使い、**HTTP Request** node から接続できます。

---

## n8n で自動化できること

- **YouTube からクリップを作るワークフロー**: RSS フィードやチャンネルレコードを監視し、タイトル、説明文、ハッシュタグ、スコア、export link 付きのショートクリップを生成します。
- **非公開動画の処理**: [Upload API](https://wayin.ai/ja/api-docs/upload/) でローカルファイルをアップロードし、クリッピング、要約、文字起こし、モーメント検索を実行します。
- **スケジュールされたポーリング**: Cron ワークフローでキュー内の動画を処理し、未完了タスクを継続的に確認します。
- **カスタム変換**: Function node を使い、要約、文字起こし、クリップメタデータを保存前に整形します。
- **社内システム連携**: 結果をデータベース、CMS ツール、webhook、Slack、Google Sheets、社内レビューアプリへ送信します。

---

## 仕組み

多くの n8n ワークフローは、次の流れになります。

1. **トリガー**: Cron node、Webhook node、RSS トリガー、ストレージイベント、データベースクエリから開始します。
2. **送信**: HTTP Request node で WayinVideo API endpoint を呼び出します。
3. **保存**: 返されたタスク `id` をデータベース、シート、または workflow item に保存します。
4. **ポーリング**: スケジュール実行またはループロジックで result endpoint を呼び出し、`status` が `SUCCEEDED` または `FAILED` になるまで確認します。
5. **変換**: Function node でクリップメタデータ、要約、文字起こし、export link を整形します。
6. **配信**: 結果を CMS、データベース、Slack、Google Sheets、SNS レビューキュー、社内 webhook へ送ります。

タスクステータスを確認する場合は、**30 秒**ごとのポーリングをおすすめします。

---

## 例: YouTube RSS から SNS クリップを作るパイプライン

このワークフローでは [AI Clipping API](https://wayin.ai/ja/api-docs/ai-clipping/) を使い、新しい YouTube 動画をレビューまたは公開用のショートクリップ出力に変換します。

トリガー:
YouTube RSS フィード、または新しい動画を確認するスケジュールチェック。

手順:
1. 新しい YouTube 動画 URL を検出します。
2. `enable_export` を `true` に設定して [AI Clipping API](https://wayin.ai/ja/api-docs/ai-clipping/) に送信します。
3. `status` が `SUCCEEDED` になるまでポーリングします。
4. Function node でクリップタイトル、説明文、ハッシュタグ、スコア、`export_link` の値を整形します。
5. 結果を Google Sheets、データベース、または SNS レビューキューに書き込みます。

最適な用途:
長尺動画からショート動画を繰り返し作る必要があるクリエイターツール、メディアチーム、社内コンテンツシステム。

### 送信リクエスト

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=example",
    "enable_export": true,
    "resolution": "HD_720",
    "enable_caption": true,
    "enable_ai_reframe": true,
    "ratio": "RATIO_9_16"
  }'
```

---

## 例: ファイルをアップロードし、Find Moments で検索して結果を保存する

このワークフローでは、非公開ファイルに [Upload API](https://wayin.ai/ja/api-docs/upload/) を使い、[Find Moments API](https://wayin.ai/ja/api-docs/find-moments/) で自然言語クエリによる動画検索を行います。

トリガー:
クラウドストレージ内の新しいファイル、または社内アップロードフォーム。

手順:
1. [Upload API](https://wayin.ai/ja/api-docs/upload/) からアップロード URL を取得します。
2. 事前署名済み URL にローカルファイルをアップロードします。
3. 返された `identity` を `video_url` として [Find Moments API](https://wayin.ai/ja/api-docs/find-moments/) に渡します。
4. 結果が準備できるまでポーリングします。
5. 一致したモーメント、タイムスタンプ、タイトル、説明文、ハッシュタグを CMS またはデータベースに保存します。

最適な用途:
公開動画 URL ではなく、非公開動画ファイルを管理しているチーム。

### Find Moments リクエスト

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "file_abc123",
    "query": "product demo moments",
    "enable_export": false
  }'
```

---

## 例: スケジュールされた動画インテリジェンスジョブ

このワークフローでは、キュー内のタスクタイプに応じて [AI Clipping API](https://wayin.ai/ja/api-docs/ai-clipping/)、[Find Moments API](https://wayin.ai/ja/api-docs/find-moments/)、[Video Summarization API](https://wayin.ai/ja/api-docs/video-summarization/)、または [Video Transcription API](https://wayin.ai/ja/api-docs/video-transcription/) を使用できます。

トリガー:
Cron スケジュール。

手順:
1. データベースまたはシートから保留中の動画レコードを読み込みます。
2. 各レコードを適切な WayinVideo endpoint に送信します。
3. タスク ID とステータスを保存します。
4. 次回のスケジュール実行で未完了タスクをポーリングします。
5. 要約、文字起こし、クリップの準備ができたらチームへ通知します。

最適な用途:
カスタム worker service を運用せずに、信頼性が高く再開可能な自動化を作りたいエンジニアリングチーム。

### 結果確認

```bash
curl -X GET https://wayinvideo-api.wayin.ai/api/v2/clips/results/proj_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2"
```

---

## 推奨 API

| ワークフローの目的 | API |
|-------------------|-----|
| 長尺動画をショートクリップに変換 | [AI Clipping API](https://wayin.ai/ja/api-docs/ai-clipping/) |
| 自然言語クエリで特定の瞬間を検索 | [Find Moments API](https://wayin.ai/ja/api-docs/find-moments/) |
| 構造化された動画概要とタイムラインハイライトを生成 | [Video Summarization API](https://wayin.ai/ja/api-docs/video-summarization/) |
| タイミングと話者ラベル付きの文字起こしを抽出 | [Video Transcription API](https://wayin.ai/ja/api-docs/video-transcription/) |
| 処理前にローカル動画または音声ファイルをアップロード | [Upload API](https://wayin.ai/ja/api-docs/upload/) |
| 選択したクリップをレンダリングまたは再エクスポート | [Clips Export API](https://wayin.ai/ja/api-docs/clips-export/) |

---

## ベストプラクティス

- API キーは n8n credentials または保護された環境変数に保存します。
- 複数の workflow execution をまたいでポーリングする場合は、タスク ID を永続ストレージに保持します。
- CMS、データベース、スプレッドシートへ書き込む前に、Function node で結果を正規化します。
- `FAILED` レスポンスやリクエストタイムアウトに備えて、リトライと失敗時の経路を追加します。
- 大きなキューでは、単一の workflow execution を長時間開いたままにせず、Cron ベースのポーリングを使います。
- 長期的にクリップへアクセスする必要がある場合は、エクスポート後に `export_link` のファイルを自社ストレージへコピーします。

---

## FAQ

### WayinVideo には n8n のネイティブ node がありますか？

WayinVideo API は n8n の **HTTP Request** node 経由で接続できます。専用の n8n node は不要です。

### n8n で YouTube 動画クリッピングを自動化できますか？

はい。RSS、スケジュール、データベース、webhook トリガーで YouTube URL を検出し、[AI Clipping API](https://wayin.ai/ja/api-docs/ai-clipping/) に送信して、返されたクリップと export link を保存できます。

### n8n で非公開動画ファイルを処理できますか？

はい。まず [Upload API](https://wayin.ai/ja/api-docs/upload/) でファイルをアップロードし、返された `identity` を `video_url` として AI Clipping、Find Moments、Video Summarization、Video Transcription に渡します。

### n8n で WayinVideo タスクをポーリングする最適な方法は何ですか？

小規模なワークフローでは同じ実行内でポーリングできます。大きなキューでは、Cron ベースのポーリングと永続的なタスク保存を使うと、ワークフローを再開可能で信頼性の高い状態に保てます。
