# 動画要約 API

> AI が動画の概要、ハッシュタグ、タイムラインハイライトを生成します。

> **推奨：[動画ノート API](https://wayin.ai/ja/api-docs/video-notes/) をご利用ください** — 同じ料金で、より豊富な機能とプロンプトによる制御を利用できます。
>
> _従来の動画要約 API も引き続き完全にサポートされます。_

## 動画要約 API

任意の長さの動画を送信すると、AI が生成した構造化されたオーバービュー、ハッシュタグ、タイムラインハイライトを取得できます。短尺動画から数時間の長尺コンテンツまで、主要プラットフォームおよびローカルアップロードファイルに対応しています。

## 対応動画ソース

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

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

### ワークフロー

1. **送信**：動画 URL から要約タスクを送信します
2. **ポーリング**：`SUCCEEDED` になるまで結果を取得し続けます

---

## 要約タスクの送信

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

### リクエストボディ

| パラメータ    | 型     | 必須   | デフォルト | 説明                                                                                          |
| ------------- | ------ | ------ | ---------- | --------------------------------------------------------------------------------------------- |
| `video_url`   | string | はい   | —          | ソース動画の URL またはアップロードファイルの識別子                                           |
| `source_lang` | string | いいえ | `null`     | 動画のソース言語（[対応言語](https://wayin.ai/ja/api-docs/supported-languages/)参照）。`null` の場合は自動検出。 |
| `target_lang` | string | いいえ | `null`     | 出力コンテンツの目標言語。`null` の場合は `source_lang` と同じ。                              |

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/summaries \
  -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_lang": "en"}'
```

```python
import requests

requests.post(
    "https://wayinvideo-api.wayin.ai/api/v2/summaries",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
    json={
        "video_url": "https://www.youtube.com/watch?v=example",
        "target_lang": "en",
    },
)
```

```javascript
await fetch('https://wayinvideo-api.wayin.ai/api/v2/summaries', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer YOUR_API_KEY',
    'x-wayinvideo-api-version': 'v2',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    video_url: 'https://www.youtube.com/watch?v=example',
    target_lang: 'en',
  }),
});
```

### レスポンス

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

---

## 使用例

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

### YouTube 動画を要約する

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/summaries \
  -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"}'
```

### 長尺ポッドキャストエピソードを要約する

数時間に及ぶポッドキャストでも同じ方法で送信・ポーリングできます。レスポンスにはタイムラインハイライトが含まれるため、長時間の音声を素早くナビゲートできます。

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/summaries \
  -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_lang` を指定すると、ソース動画と異なる言語でも、要約、ハイライト、説明を目的の言語に翻訳できます。

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/summaries \
  -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",
    "source_lang": "en",
    "target_lang": "ja"
  }'
```

---

## 要約結果の取得

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

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

### レスポンス

```json
{
  "data": {
    "status": "SUCCEEDED",
    "title": "sample title",
    "video_thumbnail": "https://cdn.example.com/thumb/video_001.jpg",
    "summary": "sample summary text",
    "tags": ["#topic1", "#topic2"],
    "highlights": [
      {
        "start": 0,
        "end": 196000,
        "desc": "sample section title",
        "events": [{ "timestamp": 160, "desc": "sample event" }]
      }
    ],
    "cost_usage": 54.0
  }
}
```

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

| フィールド        | 型       | 説明                                                  |
| ----------------- | -------- | ----------------------------------------------------- |
| `status`          | string   | `CREATED`, `QUEUED`, `ONGOING`, `SUCCEEDED`, `FAILED` |
| `error_message`   | string   | エラーの理由（`FAILED` のときのみ）                   |
| `title`           | string   | AI 生成のタイトル                                     |
| `video_thumbnail` | string   | 動画サムネイルの URL                                  |
| `summary`         | string   | テキスト形式の全体概要                                |
| `tags`            | string[] | AI 生成のハッシュタグ                                 |
| `highlights`      | array    | タイムラインハイライトセグメント                      |
| `cost_usage`      | number   | 消費した API ユニット数                               |

### ハイライトオブジェクト

| フィールド | 型     | 説明                       |
| ---------- | ------ | -------------------------- |
| `start`    | number | 開始時刻（ミリ秒）         |
| `end`      | number | 終了時刻（ミリ秒）         |
| `desc`     | string | セクションの説明           |
| `events`   | array  | セグメント内の主要イベント |

### イベントオブジェクト

| フィールド  | 型     | 説明                   |
| ----------- | ------ | ---------------------- |
| `timestamp` | number | イベント時刻（ミリ秒） |
| `desc`      | string | イベントの説明         |

---

## FAQ

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

長さの厳密な制限はありません。本 API は短いクリップから長尺動画まで対応しており、ポッドキャストエピソード、フル尺ウェビナー、講義録画、ライブ配信のアーカイブなども処理できます。

### 要約レスポンスには何が含まれますか？

構造化された概要、ハッシュタグ、開始・終了タイムスタンプと説明を持つハイライトセグメントのタイムラインが含まれます。ハイライトを使ってタイムライン UI を描画したり、チャプターマーカーを自動生成したりできます。

### ソース動画と異なる言語で要約を取得できますか？

はい — `target_lang` を指定すると、ソース動画と異なる言語でも概要、説明、ハイライトが目的の言語に翻訳されます。

### どの動画ソースに対応していますか？

YouTube、Vimeo、Dailymotion、Kick、Twitch、TikTok、Facebook、Zoom、Rumble などの URL、加えて [アップロード API](https://wayin.ai/ja/api-docs/upload/) によるローカルファイルアップロードに対応しています。
