# Video Notes API

> Hasilkan catatan AI terstruktur dari video dengan prompt khusus, stempel waktu, kontrol panjang, dan frame video opsional.

## Video Notes API

Kirim URL video atau file yang diunggah untuk menghasilkan informasi ringkasan dan, secara opsional, catatan AI terstruktur. Anda dapat menyesuaikan instruksi catatan, bahasa output, panjang yang diinginkan, stempel waktu, dan apakah frame yang relevan dari video sumber akan disertakan.

Setiap respons menyertakan ringkasan terstruktur, tagar, dan highlight timeline. Jika pembuatan catatan AI diaktifkan, respons juga menyertakan catatan dalam format Markdown dan teks biasa. Jika pembuatan catatan AI tidak diaktifkan, respons hanya berisi informasi terkait ringkasan.

## Sumber Video yang Didukung

API menerima URL video dari YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble, dan lainnya.

Anda juga dapat memproses [file video lokal yang Anda unggah](https://wayin.ai/id/api-docs/upload/) — unggah lokal memerlukan paket **Starter** atau lebih tinggi.

### Alur Kerja

1. **Kirim** tugas Video Notes menggunakan URL video atau identifier file yang diunggah
2. **Polling** endpoint hasil hingga `status` menjadi `SUCCEEDED`

---

## Kirim Tugas Video Notes

Buat tugas dengan atau tanpa pembuatan catatan AI. Sertakan `note_params` untuk menghasilkan catatan AI; abaikan parameter ini jika Anda hanya memerlukan ringkasan, tagar, dan highlight timeline.

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

### Body Permintaan

| Parameter     | Tipe   | Wajib | Default | Deskripsi                                                                                                                                                                                       |
| ------------- | ------ | ----- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `video_url`   | string | Ya    | —       | URL video sumber atau identifier file yang diunggah                                                                                                                                             |
| `source_lang` | string | Tidak | `null`  | Bahasa sumber video (lihat [Bahasa yang Didukung](https://wayin.ai/id/api-docs/supported-languages/)). Jika `null`, sistem mendeteksi bahasa asli secara otomatis.                                                 |
| `target_lang` | string | Tidak | `null`  | Bahasa target untuk ringkasan dan highlight yang dihasilkan (lihat [Bahasa yang Didukung](https://wayin.ai/id/api-docs/supported-languages/)). Jika `null`, bahasa output mengikuti bahasa sumber yang terdeteksi. |
| `note_params` | object | Tidak | `null`  | Pengaturan pembuatan catatan AI. Abaikan objek ini untuk melewati pembuatan catatan AI.                                                                                                         |

### Parameter Catatan

| Parameter         | Tipe    | Wajib saat `note_params` diberikan | Default | Deskripsi                                    |
| ----------------- | ------- | ---------------------------------- | ------- | -------------------------------------------- |
| `enable_note`     | boolean | Ya                                 | —       | Atur ke `true` untuk menghasilkan catatan AI |
| `generate_params` | object  | Ya                                 | —       | Pengaturan pembuatan catatan AI              |

### Parameter Pembuatan Catatan

| Parameter           | Tipe    | Wajib | Default | Deskripsi                                                                                                                                                     |
| ------------------- | ------- | ----- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt`            | string  | Ya    | —       | Instruksi yang menjelaskan struktur, konten, atau fokus catatan yang diinginkan                                                                               |
| `language`          | string  | Tidak | `null`  | Bahasa output hanya untuk catatan AI; parameter ini tidak memengaruhi ringkasan atau highlight (lihat [Bahasa yang Didukung](https://wayin.ai/id/api-docs/supported-languages/)) |
| `length_option`     | string  | Ya    | —       | Panjang catatan yang diinginkan: `short`, `medium`, atau `long`                                                                                               |
| `include_timestamp` | boolean | Ya    | —       | Apakah akan menambahkan stempel waktu video sumber ke bagian dan poin penting yang relevan agar pembaca dapat menemukan momen terkait dalam video             |
| `image_visual`      | boolean | Tidak | `false` | Apakah akan menyertakan frame relevan yang diekstrak dari video sumber                                                                                        |

### Contoh Permintaan

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/notes \
  -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",
    "source_lang": "en",
    "target_lang": "en",
    "note_params": {
      "enable_note": true,
      "generate_params": {
        "prompt": "Organize the main ideas and action items",
        "language": "en",
        "length_option": "medium",
        "include_timestamp": true,
        "image_visual": false
      }
    }
  }'
```

```python
import requests

requests.post(
    "https://wayinvideo-api.wayin.ai/api/v2/notes",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
    json={
        "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
        "target_lang": "en",
        "note_params": {
            "enable_note": True,
            "generate_params": {
                "prompt": "Organize the main ideas and action items",
                "language": "en",
                "length_option": "medium",
                "include_timestamp": True,
            },
        },
    },
)
```

```javascript
await fetch('https://wayinvideo-api.wayin.ai/api/v2/notes', {
  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',
    note_params: {
      enable_note: true,
      generate_params: {
        prompt: 'Organize the main ideas and action items',
        language: 'en',
        length_option: 'medium',
        include_timestamp: true,
      },
    },
  }),
});
```

### Respons Pengiriman

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

| Field    | Tipe   | Deskripsi                                                      |
| -------- | ------ | -------------------------------------------------------------- |
| `id`     | string | Identifier tugas yang digunakan untuk mengambil hasil          |
| `name`   | string | Nama tugas yang berasal dari video sumber                      |
| `status` | string | Status awal tugas; tugas yang diterima mengembalikan `CREATED` |

---

## Contoh

Contoh berikut menunjukkan penggunaan umum Video Notes. Ganti `YOUR_API_KEY` dengan kunci dari [API Dashboard](https://wayin.ai/wayinvideo/api-dashboard).

### Hasilkan catatan ringkas dengan stempel waktu

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/notes \
  -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",
    "note_params": {
      "enable_note": true,
      "generate_params": {
        "prompt": "Create concise notes covering the main ideas",
        "length_option": "short",
        "include_timestamp": true
      }
    }
  }'
```

### Hasilkan catatan rapat yang berorientasi pada tindakan

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/notes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "UPLOADED_FILE_ID",
    "note_params": {
      "enable_note": true,
      "generate_params": {
        "prompt": "Create meeting notes with decisions, owners, and action items",
        "length_option": "medium",
        "include_timestamp": true
      }
    }
  }'
```

### Proses video tanpa catatan AI

Abaikan `note_params` untuk mengembalikan ringkasan, tagar, dan highlight timeline tanpa data catatan.

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

---

## Ambil Hasil Video Notes

Setelah mengirim tugas, lakukan polling pada endpoint ini hingga `status` menjadi `SUCCEEDED`. Respons yang berhasil berisi informasi ringkasan dan, jika diminta, catatan AI yang dihasilkan.

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

### Parameter Path

| Parameter | Tipe   | Wajib | Deskripsi                                      |
| --------- | ------ | ----- | ---------------------------------------------- |
| `id`      | string | Ya    | ID tugas yang dikembalikan endpoint pengiriman |

### Permintaan Hasil

```bash
curl -X GET https://wayinvideo-api.wayin.ai/api/v2/notes/results/note_proj_001 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2"
```

```python
import requests

requests.get(
    "https://wayinvideo-api.wayin.ai/api/v2/notes/results/note_proj_001",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
)
```

```javascript
await fetch(
  'https://wayinvideo-api.wayin.ai/api/v2/notes/results/note_proj_001',
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer YOUR_API_KEY',
      'x-wayinvideo-api-version': 'v2',
    },
  }
);
```

### Contoh Respons Berhasil

```json
{
  "data": {
    "summary_id": "vdsmr_001",
    "status": "SUCCEEDED",
    "title": "sample title",
    "video_thumbnail": "https://cdn.example.com/thumb/video_001.jpg",
    "summary": "sample summary text",
    "note_data": "# Main Ideas\n\n- **00:45** First key point\n- **03:20** Second key point",
    "note_text": "Main Ideas\n\n00:45 First key point\n03:20 Second key point",
    "tags": ["#topic1", "#topic2"],
    "highlights": [
      {
        "start": 0,
        "end": 196000,
        "desc": "sample section title",
        "events": [
          {
            "timestamp": 45000,
            "desc": "sample event description"
          }
        ]
      }
    ],
    "cost_usage": 54.0
  }
}
```

### Field Respons

| Field             | Tipe     | Deskripsi                                                                                                                    |
| ----------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `summary_id`      | string   | Identifier ringkasan yang dihasilkan                                                                                         |
| `status`          | string   | Status tugas: `CREATED`, `QUEUED`, `ONGOING`, `SUCCEEDED`, atau `FAILED`                                                     |
| `error_message`   | string   | Alasan error; hanya tersedia jika `status` adalah `FAILED`                                                                   |
| `title`           | string   | Judul yang dihasilkan AI                                                                                                     |
| `video_thumbnail` | string   | URL thumbnail video sumber                                                                                                   |
| `summary`         | string   | Ringkasan terstruktur video                                                                                                  |
| `note_data`       | string   | Catatan AI dengan struktur Markdown yang dipertahankan, sesuai untuk rendering Markdown; tidak disertakan jika tidak diminta |
| `note_text`       | string   | Versi teks biasa dari catatan AI tanpa sintaks Markdown; tidak disertakan jika tidak diminta                                 |
| `tags`            | string[] | Tagar yang dihasilkan AI                                                                                                     |
| `highlights`      | array    | Bagian timeline dengan stempel waktu dan peristiwa penting                                                                   |
| `cost_usage`      | number   | Unit API yang digunakan tugas                                                                                                |

### Objek Highlight

| Field    | Tipe   | Deskripsi                         |
| -------- | ------ | --------------------------------- |
| `start`  | number | Waktu mulai dalam milidetik       |
| `end`    | number | Waktu berakhir dalam milidetik    |
| `desc`   | string | Judul atau deskripsi bagian       |
| `events` | array  | Peristiwa penting dalam highlight |

### Objek Event

| Field       | Tipe   | Deskripsi                       |
| ----------- | ------ | ------------------------------- |
| `timestamp` | number | Waktu peristiwa dalam milidetik |
| `desc`      | string | Deskripsi peristiwa             |

---

## FAQ

### Apa perbedaan antara Video Notes dan Video Summarization?

[Video Summarization API](https://wayin.ai/id/api-docs/video-summarization/) menghasilkan ringkasan, tagar, dan highlight timeline. Video Notes API mengembalikan informasi ringkasan yang sama dan juga dapat menghasilkan catatan yang dapat disesuaikan dalam format Markdown dan teks biasa.

### Apakah pembuatan catatan AI wajib?

Tidak. Abaikan `note_params` untuk mengembalikan informasi ringkasan tanpa catatan AI. Untuk menghasilkan catatan, berikan `note_params`, atur `enable_note` ke `true`, dan sertakan `generate_params.prompt`.

### Apa perbedaan antara `note_data` dan `note_text`?

`note_data` mempertahankan struktur Markdown yang dihasilkan untuk merender heading, daftar, penekanan, dan format lainnya. `note_text` berisi catatan yang sama tanpa sintaks Markdown sehingga sesuai untuk indeks pencarian, embedding, pratinjau, atau penyimpanan teks biasa.

### Bisakah saya mengontrol format catatan?

Bisa. Gunakan `generate_params.prompt` untuk instruksi, `language` untuk bahasa catatan, `length_option` untuk panjang yang diinginkan, `include_timestamp` untuk stempel waktu, dan `image_visual` untuk menyertakan frame video yang relevan.

### Sumber video apa saja yang didukung?

URL dari YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble, dan lainnya, ditambah unggahan file lokal melalui [Upload API](https://wayin.ai/id/api-docs/upload/).
