# Câu hỏi thường gặp

Giải đáp những câu hỏi developer hay gặp nhất khi tích hợp Wandura Delivery API. Nếu câu hỏi của bạn không có ở đây, xem [Hỗ trợ](https://docs.wandura.ai/vi/developers/help/support).

## Key và quyền truy cập

### Tôi có thể gọi API từ trình duyệt hoặc app di động không?

Không. API là server-to-server: các endpoint không gửi header CORS, và API key không bao giờ được nằm trong client. App của bạn nói chuyện với backend của bạn, và backend của bạn nói chuyện với Wandura.

### Tôi có tự tạo được key có scope `playback` không?

Có. Bất kỳ **Admin** hoặc **Developer** nào của tổ chức cũng tạo được trên **Developers** bằng cách chọn **Stream films in an app**. Nếu playback key bị lộ, bất kỳ ai cũng stream được các phim bạn được cấp phép, nên hãy giữ key trên server và thu hồi ngay nếu nghi bị lộ. Xem [Xác thực](https://docs.wandura.ai/vi/developers/authentication#scopes).

### Tôi làm mất key. Wandura có hiện lại key cho tôi được không?

Không. Key đầy đủ chỉ hiện một lần, lúc tạo. Hãy xoay vòng key đó hoặc tạo key mới trên trang **Developers**.

### Xoay vòng key có gây gián đoạn không?

Có: key cũ ngừng hoạt động ngay lập tức. Để chuyển đổi êm, hãy tạo key thứ hai, triển khai nó, rồi mới thu hồi key cũ. Playback key cũng làm y như vậy.

### Có sandbox không?

Không. Mọi môi trường đều gọi `https://www.wandura.ai`. Bạn test bằng key của mình, trong tổ chức Wandura chọn để test, và lượt phát test được ghi nhận như mọi lượt khác. Xem [Test và production](https://docs.wandura.ai/vi/developers/integration-guide#test-and-production).

## Catalog

### Một phim tôi được cấp phép lại không có trong catalog. Vì sao?

Catalog chỉ liệt kê một phim khi giấy phép streaming của bạn cho phim đó đang hoạt động, hôm nay nằm trong khung thời gian của giấy phép (theo UTC), và phim đã được publish. Hãy kiểm tra ngày của giấy phép với Wandura.

### Vì sao một số tập có `"id": null`?

Đó là placeholder cho các tập đã dự kiến nhưng chưa publish, để bạn hiển thị ô "sắp ra mắt". Chúng luôn có `"status": "planned"` và `"stream_ready": false`. Xem [Catalog](https://docs.wandura.ai/vi/developers/concepts/catalog#planned-episodes).

### Catalog báo `stream_ready: true`, nhưng playback trả `not_ready`. Đó có phải lỗi không?

Không. `stream_ready` là ảnh chụp tại lúc bạn tải catalog. Playback kiểm tra lại ở mọi request, và một phim có thể bị rút trong khoảng giữa. Hãy hiển thị "chưa khả dụng" và làm mới catalog.

### Làm sao biết tập nào miễn phí?

Tập có `episode_no` nhỏ hơn hoặc bằng `free_until_episode` của phim là miễn phí. Hãy đọc giá trị này từ catalog; nó khác nhau giữa các phim.

## Playback

### Vì sao tôi nhận `409 sdk_required`?

Các tập được cấp phép đều đã mã hoá và chỉ phát được qua Player SDK. Hãy gửi kèm request các giá trị thiết bị `union_info` và `drm_kek` lấy từ SDK. Xem [Playback](https://docs.wandura.ai/vi/developers/concepts/playback#send-the-device-values).

### Vì sao tôi nhận `400 invalid_device_info`?

Một trong các giá trị thiết bị trông như rỗng, ví dụ chuỗi `"(null)"` theo nghĩa đen. Điều này thường xảy ra khi một lệnh gọi SDK không trả về gì và code của bạn chuyển nó thành văn bản. Mảng `fields` cho bạn biết cần sửa giá trị nào.

### Tôi có thể phát tập bằng HLS player thông thường không?

Không. Player thông thường sẽ tải playlist rồi đứng hình. Hãy dùng Player SDK: Wandura đăng ký app ID của bạn và cấp license Player SDK; tổ chức của bạn trả tiền license đó. Hướng dẫn cài nằm ở partner.wandura.ai → **Developers** → **Player SDK**, có sau khi [onboarding](https://docs.wandura.ai/vi/developers/before-you-start#get-onboarded).

### Tôi có thể cache vé playback không?

Không. Vé hết hạn 30 phút sau khi được cấp. Hãy xin một vé cho mỗi lần bắt đầu phát, và xin vé mới nếu player lỗi giữa phiên.

### Tôi có thể xin vé cho nhiều tập trong một lệnh gọi không?

Không. Mỗi request chỉ dành cho một tập. Nếu app tải trước tập kế tiếp, hãy xin vé cho tập đó riêng và gửi `"intent": "prefetch"`.

### Request prefetch có tính là lượt phát không?

Không, nếu bạn gửi `"intent": "prefetch"`. Khi không có `intent`, hoặc có giá trị khác `play` và `prefetch`, mọi request xin vé thành công đều tính là một lượt phát. Request prefetch vẫn tính vào rate limit của bạn.

### Phụ đề lấy từ đâu?

Mọi response playback đều có mảng `subtitles` gồm các file WebVTT. Mảng rỗng nghĩa là chưa có phụ đề nào được gắn. Xem [Playback](https://docs.wandura.ai/vi/developers/concepts/playback#subtitles).

## Creative

### Feed creative có kèm file video không?

Không. Bản ghi mô tả từng creative nhưng không bao giờ có URL media. Hãy hỏi Wandura file hoàn chỉnh đến hệ thống của bạn bằng cách nào.

### Làm sao biết một creative đã bị rút?

Feed không có sự kiện xoá. Hãy gọi `GET /creatives/{id}`: creative không còn khả dụng sẽ trả `404` với `code` `4040`.

### Vì sao cùng một creative lại đến hai lần?

Đồng bộ incremental có thể trả lại một bản ghi. Hãy lưu bản ghi theo khoá `creative_id` và ghi đè. Xem [Creative](https://docs.wandura.ai/vi/developers/concepts/creatives#syncing-incrementally).
