# AI クリッピング API

> 長尺動画を送信して、タイムスタンプ・タイトル・説明・ハッシュタグ付きの AI 生成バイラルクリップを取得します。

## AI クリッピング API

任意の長さの動画を送信すると、バイラルポテンシャルでランク付けされたクリップをすべて取得できます。各クリップには自動検出された開始・終了タイムスタンプ、AI 生成のタイトル・説明・ハッシュタグが含まれます。エクスポートを有効にした場合、AI リフレームとアニメーション字幕付きのレンダリング済み動画ダウンロードリンクも含まれます。

AI クリッピングで生成したクリップは、接続済みのソーシャルメディアアカウントへ直接公開できます。アカウント接続と公開タスクの作成については、[ソーシャルメディア公開 API](https://wayin.ai/ja/api-docs/social-media-publishing/) を参照してください。

## 対応動画ソース

YouTube、Vimeo、Dailymotion、Kick、Twitch、TikTok、Facebook、Zoom、Rumble など。

[アップロードしたローカル動画ファイル](https://wayin.ai/ja/api-docs/upload/)もクリップ可能です — ローカルアップロードには [**Starter** サブスクリプションプラン以上](https://wayin.ai/pricing/)が必要です。

---

## クリッピングタスクの送信

```
POST https://wayinvideo-api.wayin.ai/api/v2/clips
```

### リクエストボディ

| パラメータ | 型 | 必須 | デフォルト | 説明 |
|----------|-----|------|----------|------|
| `video_url` | string | はい | — | ソース動画の URL または [アップロード API](https://wayin.ai/ja/api-docs/upload/) が返したファイル識別子。 |
| `project_name` | string | いいえ | `""` | タスクのカスタム名 |
| `source_lang` | string | いいえ | `null` | 動画のソース言語（[対応言語](https://wayin.ai/ja/api-docs/supported-languages/)参照）。`null` の場合は自動検出。 |
| `target_lang` | string | いいえ | `null` | タイトル・説明・字幕の出力言語。`null` の場合は `source_lang` と同じ。 |
| `target_duration` | string | いいえ | `DURATION_0_90` | クリップの目標時間：`DURATION_0_30`、`DURATION_0_90`、`DURATION_30_60`、`DURATION_60_90`、`DURATION_90_180`、`DURATION_180_300`。 |
| `limit` | number | いいえ | `null` | 返却するクリップの最大数。`null` の場合はすべて返却。 |
| `enable_export` | boolean | いいえ | `false` | `false`：メタデータのみ；`true`：即時レンダリングしダウンロードリンクを返却。 |
| `resolution` | string | いいえ | `SD_480` | 出力解像度：`SD_480`、`HD_720`、`FHD_1080`、`QHD_2K`、`UHD_4K`。`enable_export` が `true` のときのみ有効。 |
| `enable_caption` | boolean | いいえ | `false` | レンダリング時にアニメーション字幕を追加。`enable_export` が `true` のときのみ有効。 |
| `caption_display` | string | いいえ | `original` | 字幕モード：`both`、`original`、`translation`。 |
| `cc_style_tpl` | string | いいえ | `temp-7` | 字幕スタイルテンプレート ID（[字幕スタイル](https://wayin.ai/ja/api-docs/subtitles-style/)参照）。 |
| `enable_ai_hook` | boolean | いいえ | `false` | 各クリップの冒頭または末尾に AI 生成の注目テキストを追加。 |
| `ai_hook_script_style` | string | いいえ | `serious` | フックテキストのスタイル：`serious`、`casual`、`informative`、`conversational`、`humorous`、`parody`、`inspirational`、`dramatic`、`empathetic`、`persuasive`、`neutral`、`excited`、`calm`。 |
| `ai_hook_position` | string | いいえ | `beginning` | 位置：`beginning`、`end`。 |
| `enable_ai_reframe` | boolean | いいえ | `false` | AI リフレームを有効化。`true` の場合 `ratio` が必須。 |
| `ratio` | string | `enable_ai_reframe` が `true` のとき必須 | — | アスペクト比：`RATIO_9_16`、`RATIO_1_1`、`RATIO_4_5`、`RATIO_16_9`。 |
| `reframe_layout` | string | いいえ | `Auto` | AI リフレームのレイアウト。レイアウト値セクション参照。 |
| `enable_more_results` | boolean | いいえ | `false` | より多くのクリップを生成。**Enterprise** サブスクリプション限定。 |
| `enable_express_mode` | boolean | いいえ | `false` | **エクスプレスモード**：API ユニット消費量が通常の半分。**Enterprise** サブスクリプション限定。 |

### リフレームレイアウト値

| `ratio` | 指定可能な `reframe_layout` 値 |
|---------|-------------------------------|
| `RATIO_16_9` | `Auto`, `Full`, `Fit`, `Grid 4`, `Split 2`, `Trio`, `PiP`, `OTS`, `Screen First` |
| `RATIO_9_16` | `Auto`, `Full`, `Fit`, `Grid 4`, `Split 2`, `Trio`, `PiP`, `Screen First`, `Gameplay A`, `Gameplay B` |
| `RATIO_1_1` | `Auto`, `Full`, `Fit`, `Grid 4`, `Trio` |
| `RATIO_4_5` | `Auto`, `Full`, `Fit`, `Grid 4`, `Split 2`, `Trio`, `PiP`, `Screen First`, `Gameplay A`, `Gameplay B` |

<div class="tabs" data-labels="エクスポートあり|エクスポートなし" data-group="export-mode"></div>

`enable_export` を `true` に設定。クリップがレンダリングされ、各クリップに `export_link` が含まれます。

**リクエスト**

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

**送信レスポンス**

```json
{"data": {"id": "proj_xyz789", "name": "sample project name", "status": "CREATED"}}
```

<div class="tab-divider"></div>

`enable_export` を省略または `false` に設定。メタデータのみ返却。レンダリングなし。

**リクエスト**

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

**送信レスポンス**

```json
{"data": {"id": "proj_abc123", "name": "sample project name", "status": "CREATED"}}
```

<div class="tabs-end"></div>

---

## 使用例

代表的な AI クリッピングのシナリオです。`YOUR_API_KEY` は [API ダッシュボード](https://wayin.ai/wayinvideo/api-dashboard) で取得したキーに置き換えてください。

### YouTube 動画をバイラルクリップに変換

```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"}'
```

### ウェビナー録画を字幕付きの縦型 9:16 ショートに変換

```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",
    "target_duration": "DURATION_30_60",
    "enable_export": true,
    "resolution": "HD_720",
    "enable_caption": true,
    "enable_ai_reframe": true,
    "ratio": "RATIO_9_16"
  }'
```

### ポッドキャストから上位スコアのショート動画を取得

長尺コンテンツから、最もバイラルポテンシャルの高いクリップのみを取得したい場合に便利です。

```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",
    "limit": 5,
    "target_duration": "DURATION_60_90",
    "enable_export": true,
    "resolution": "HD_720",
    "enable_caption": true,
    "enable_ai_reframe": true,
    "ratio": "RATIO_9_16"
  }'
```

---

## クリッピング結果の取得

```
GET https://wayinvideo-api.wayin.ai/api/v2/clips/results/{id}
```

> **インクリメンタル結果：** `status` が `ONGOING` の間、各呼び出しはその時点で生成済みのクリップを返します。

<div class="tabs" data-labels="エクスポートあり|エクスポートなし" data-group="export-mode"></div>

```json
{"data": {"id": "proj_xyz789", "status": "SUCCEEDED", "expire_at": 1741824000000, "cost_usage": 120.0,
          "clips": [{"idx": 0, "title": "sample title", "begin_ms": 15000, "end_ms": 75000,
                     "tags": ["insight"], "desc": "sample description", "score": 81,
                     "export_link": "https://cdn.example.com/export/clip_001.mp4"}]}}
```

<div class="tab-divider"></div>

```json
{"data": {"id": "proj_abc123", "status": "SUCCEEDED", "expire_at": 1741824000000, "cost_usage": 120.0,
          "clips": [{"idx": 0, "title": "sample title", "begin_ms": 15000, "end_ms": 75000,
                     "tags": ["insight"], "desc": "sample description", "score": 81}]}}
```

<div class="tabs-end"></div>

### レスポンスフィールド

| フィールド | 型 | 説明 |
|----------|-----|------|
| `id` | string | タスクの一意な識別子 |
| `name` | string | タスク名 |
| `status` | string | `CREATED`, `QUEUED`, `ONGOING`, `SUCCEEDED`, `FAILED` |
| `error_message` | string | エラーの理由（`FAILED` のときのみ） |
| `expire_at` | integer | 有効期限のタイムスタンプ（ミリ秒）. `-1` は、有料サブスクリプションが有効な間は結果が期限切れにならないことを示します。有料サブスクリプション終了後は、さらに 1 か月保持されてから期限切れになります。 |
| `cost_usage` | number | 消費した API ユニット数 |
| `clips` | array | クリップオブジェクトのリスト |

### クリップオブジェクト

| フィールド | 型 | 説明 |
|----------|-----|------|
| `idx` | integer | クリップのインデックス（0 始まり、バイラルポテンシャル順） |
| `title` | string | AI 生成のタイトル |
| `begin_ms` | number | 開始時刻（ミリ秒） |
| `end_ms` | number | 終了時刻（ミリ秒） |
| `thumbnail` | string | サムネイル URL |
| `tags` | string[] | AI 生成のハッシュタグ |
| `desc` | string | AI 生成の説明 |
| `score` | number | バイラルポテンシャルスコア（0–100） |
| `export_link` | string | レンダリング済み動画のダウンロード URL。24 時間で失効します。 |

---

## 既存クリップの再エクスポート

後からレンダリングしたり、別の設定で再エクスポートしたりするには [クリップエクスポート API](https://wayin.ai/ja/api-docs/clips-export/) をご利用ください。


---

## FAQ

### 動画の最大長さは？

長さの厳密な制限はありません — ポッドキャスト、ゲーム配信、ウェビナーなど数時間に及ぶコンテンツを想定して設計されています。ファイルサイズの制限は [ローカルアップロード](https://wayin.ai/ja/api-docs/upload/) のみに適用され、URL ベースのソースには上限がありません。

### クリップはどのようにランク付けされますか？

各クリップはバイラルポテンシャル（ストーリーの完結度、フックの強さ、感情のピーク、エンゲージメント指標）でスコアリングされます。`limit` パラメーターを使うとスコア上位 N 件のみを残せます。

### レンダリングせずにクリップを取得できますか？

はい。`enable_export` を省略（または `false` に設定）することで、タイムスタンプ、タイトル、説明、タグのみを取得できます。選択したクリップを後から [クリップエクスポート API](https://wayin.ai/ja/api-docs/clips-export/) でレンダリングできます。

### AI Reframe はどのアスペクト比に対応していますか？

`RATIO_9_16`（TikTok / Reels / Shorts）、`RATIO_1_1`（Instagram フィード）、`RATIO_4_5`（Instagram ポートレート）、`RATIO_16_9`（横向き）に対応しています。各比率のレイアウトオプションは リフレームレイアウト値 を参照してください。

### どのプラットフォームからクリップできますか？

YouTube、Vimeo、Dailymotion、Kick、Twitch、TikTok、Facebook、Zoom、Rumble など。加えて、ローカルアップロードされたファイル（`mp4`、`mov`、`webm`、`avi`）にも対応しています。
