# Upload API

> Unggah file video lokal untuk AI Clipping, Summarization, Video Notes, Transcription, Find Moments, dan Video Enhancer.

## Upload API

Upload API memungkinkan Anda mengunggah file video lokal ke WayinVideo. Setelah mengunggah, gunakan identifier file yang dikembalikan sebagai `video_url` di endpoint API lainnya (AI Clipping, Find Moments, Video Summarization, Video Notes, Video Transcription, Video Enhancer).

**Batas Ukuran File:** Batas ukuran satu file untuk unggahan lokal adalah 5 GB. Jika Anda memerlukan batas yang lebih tinggi, hubungi kami di [wayinvideo@wayin.ai](mailto:wayinvideo@wayin.ai).

**Format yang didukung:** Anda harus mengunggah file video yang valid. Format yang saat ini didukung: **avi**, **mp4**, **mov**, **webm**. Mengunggah format lain dapat menyebabkan pemrosesan tugas gagal setelah dikirim.

### Alur Unggah

1. **Minta** URL unggah pre-signed dengan menyediakan metadata file
2. **Unggah** file langsung ke URL pre-signed menggunakan permintaan `PUT`
3. **Gunakan** nilai `identity` yang dikembalikan sebagai `video_url` dalam panggilan API berikutnya

---

## Dapatkan URL Unggah

Minta URL unggah sementara untuk file lokal.

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

### Body Permintaan

| Parameter | Tipe   | Wajib | Default | Deskripsi                                             |
| --------- | ------ | ----- | ------- | ----------------------------------------------------- |
| `name`    | string | Ya    | —       | Nama file beserta ekstensinya (mis. `"my-video.mp4"`) |

### Contoh Permintaan

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

### Respons

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

| Field        | Tipe   | Deskripsi                                                                                                                                                 |
| ------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `upload_url` | string | URL pre-signed untuk mengunggah file. URL ini kedaluwarsa setelah **1 jam** — selesaikan unggahan dalam waktu tersebut. Jika kedaluwarsa, minta URL baru. |
| `identity`   | string | Identifier file yang digunakan sebagai `video_url` di API lainnya                                                                                         |

---

## Unggah File

Gunakan `upload_url` untuk mengunggah file Anda dengan permintaan `PUT`. Karakter `@` pada `--data-binary` diikuti oleh path file lokal:

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

> **Catatan:** Jika Anda mengunggah lagi menggunakan `upload_url` yang sama, file baru akan menimpa file sebelumnya. Setiap file tidak boleh melebihi **5 GB**.

---

## Gunakan File yang Diunggah

Setelah mengunggah, berikan nilai `identity` sebagai `video_url` saat mengirim tugas.

> **Catatan:** Setiap `identity` berlaku selama **24 jam**. Jika kuota Anda mencukupi, Anda dapat menggunakan `identity` yang sama untuk mengirim beberapa tugas dalam waktu 24 jam.

```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

### Kapan saya harus mengunggah file lokal vs. menggunakan URL sumber?

Jika video Anda sudah ada di platform yang didukung (YouTube, Vimeo, TikTok, Zoom, dll.), berikan URL langsung ke endpoint pemrosesan — tidak perlu mengunggah. Gunakan Upload API hanya untuk file yang belum di-hosting di sumber yang didukung.

### Berapa ukuran file unggahan maksimum?

5 GB per file. Hubungi [wayinvideo@wayin.ai](mailto:wayinvideo@wayin.ai) jika kasus penggunaan Anda memerlukan batas yang lebih tinggi.

### Format file apa saja yang didukung?

`mp4`, `mov`, `webm`, `avi`. Format lain mungkin gagal saat pemrosesan.

### Apakah unggahan dihitung terhadap kuota penyimpanan paket saya?

Ya — file yang diunggah memakai penyimpanan pada paket langganan Anda. Lihat [Paket Langganan](https://wayin.ai/wayinvideo/settings/plan) untuk batas penyimpanan per-paket dan ukuran per-file.

### Bagaimana cara menggunakan file yang diunggah di panggilan API lain?

Setelah diunggah, berikan identifier file yang dikembalikan sebagai field `video_url` pada endpoint pemrosesan yang didukung — [AI Clipping](https://wayin.ai/id/api-docs/ai-clipping/), [Find Moments](https://wayin.ai/id/api-docs/find-moments/), [Video Summarization](https://wayin.ai/id/api-docs/video-summarization/), [Video Notes](https://wayin.ai/id/api-docs/video-notes/), [Video Transcription](https://wayin.ai/id/api-docs/video-transcription/), atau [Video Enhancer](https://wayin.ai/id/api-docs/video-enhancer/).
