# AIOZ Stream — Media Chapters

SDK package: @aiozstream/nodejs-client

## Setup

```typescript
import StreamClient from '@aiozstream/nodejs-client'

const client = new StreamClient({
  publicKey: process.env.AIOZ_PUBLIC_KEY,
  secretKey: process.env.AIOZ_SECRET_KEY
})
```

One chapter per language per media. Language codes follow BCP 47 format (e.g. 'en', 'fr', 'en-US').

---

## Add Chapter

POST https://api.aiozstream.network/api/media/{mediaId}/chapters/{lan}

```typescript
// Upload a .vtt chapter file for a specific language
const result = await client.videoChapter.create(
  mediaId,
  'en',                        // BCP 47 language code
  './chapters-en.vtt'          // path to .vtt file
)
console.log(result.data.mediaChapter.url)
console.log(result.data.mediaChapter.language)
```

---

## List Chapters

GET https://api.aiozstream.network/api/media/{mediaId}/chapters

```typescript
const result = await client.videoChapter.get(mediaId)
// result.data.mediaChapters: Array<{ url, language }>
// result.data.total
```

---

## Delete Chapter

DELETE https://api.aiozstream.network/api/media/{mediaId}/chapters/{lan}

```typescript
await client.videoChapter.delete(mediaId, 'en')
```
