# アップロード API

> AI Clipping、Summarization、Video Notes、Transcription、Find Moments、Video Enhancer で使うローカル動画ファイルをアップロードします。

## アップロード API

アップロード API を使うと、ローカル動画ファイルを WayinVideo にアップロードできます。アップロード後、返却されるファイル識別子を他の API エンドポイント（AI クリッピング、モーメント検索、動画要約、動画ノート、動画文字起こし、動画高画質化）の `video_url` として使用します。

**ファイルサイズ制限：** 1 ファイルあたり最大 5 GB です。それ以上が必要な場合は [wayinvideo@wayin.ai](mailto:wayinvideo@wayin.ai) までご連絡ください。

**対応フォーマット：** 有効な動画ファイルをアップロードしてください。現在対応している形式は **avi**、**mp4**、**mov**、**webm** です。その他の形式をアップロードすると、タスク送信後の処理に失敗する場合があります。

### アップロードの流れ

1. **リクエスト**：ファイルのメタデータを提供してプリサインド URL を取得します
2. **アップロード**：`PUT` リクエストでプリサインド URL に直接ファイルをアップロードします
3. **使用**：返却された `identity` 値を後続の API コールの `video_url` として使います

---

## アップロード URL の取得

```http
POST https://wayinvideo-api.wayin.ai/api/v2/upload/single-file
```

### リクエストボディ

| パラメータ | 型     | 必須 | 説明                                           |
| ---------- | ------ | ---- | ---------------------------------------------- |
| `name`     | string | はい | 拡張子付きのファイル名（例：`"my-video.mp4"`） |

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/upload/single-file \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{"name": "sample-video.mp4"}'
```

### レスポンス

```json
{
  "data": {
    "upload_url": "https://storage.example.com/upload/presigned-url...",
    "identity": "file_abc123"
  }
}
```

| フィールド   | 型     | 説明                                                                                                              |
| ------------ | ------ | ----------------------------------------------------------------------------------------------------------------- |
| `upload_url` | string | ファイルアップロード用のプリサインド URL。**1 時間**で失効します。期限切れの場合は新しい URL を取得してください。 |
| `identity`   | string | 他の API の `video_url` として使用するファイル識別子                                                              |

---

## ファイルのアップロード

```bash
curl -X PUT "https://storage.example.com/upload/presigned-url..." \
  -H "Content-Type: video/mp4" \
  --data-binary @/Users/me/Videos/sample-video.mp4
```

> **注意：** 同じ `upload_url` を使って再度アップロードすると、新しいファイルで上書きされます。1 ファイルの上限は **5 GB** です。

---

## アップロードしたファイルの使用

> 各 `identity` の有効期限は **24 時間**です。クォータが十分あれば、24 時間以内に同じ `identity` を複数のタスクに使えます。

```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": "THE_IDENTITY_VALUE", "enable_export": false}'
```

---

## FAQ

### ローカルファイルのアップロードとソース URL の指定はどう使い分ければよいですか？

動画が既に対応プラットフォーム（YouTube、Vimeo、TikTok、Zoom など）にある場合は、URL を処理エンドポイントに直接渡してください。アップロードは不要です。アップロード API は、対応ソースにまだホストされていないファイルに対してのみ使用してください。

### アップロードできるファイルサイズの上限は？

1 ファイルあたり 5 GB です。それ以上が必要なユースケースの場合は [wayinvideo@wayin.ai](mailto:wayinvideo@wayin.ai) までご連絡ください。

### 対応しているファイル形式は？

`mp4`、`mov`、`webm`、`avi`。その他の形式では処理に失敗することがあります。

### アップロードはプランのストレージクォータに含まれますか？

はい — アップロードされたファイルはサブスクリプションプランのストレージを消費します。プランごとのストレージ容量と 1 ファイルあたりのサイズ制限は [サブスクリプションプラン](https://wayin.ai/wayinvideo/settings/plan) を参照してください。

### アップロードしたファイルを他の API で使うにはどうしますか？

アップロード後、返却されたファイル識別子を対応する処理エンドポイント（[AI Clipping](https://wayin.ai/ja/api-docs/ai-clipping/)、[Find Moments](https://wayin.ai/ja/api-docs/find-moments/)、[Video Summarization](https://wayin.ai/ja/api-docs/video-summarization/)、[Video Notes](https://wayin.ai/ja/api-docs/video-notes/)、[Video Transcription](https://wayin.ai/ja/api-docs/video-transcription/)、[Video Enhancer](https://wayin.ai/ja/api-docs/video-enhancer/)）の `video_url` フィールドとして渡してください。
