Tipe video per lesson
videoType | Sumber | Playback |
|---|---|---|
mux | Upload langsung / import URL ke Mux | Mux Player + signed token |
youtube | URL YouTube | Embed / link |
google-drive | Link Drive | External |
external | URL lain | External |
Alur upload Mux (admin)
Alternatif: import dari URL
POST import-mux-from-url — Mux pull video dari URL publik (YouTube file, CDN, dll.) tanpa upload manual.
Admin: daftar asset
GET /api/kelas/mux/list-all — semua asset di akun Mux (admin only).UI:
views/admin/MuxVideoList.tsx
Alur playback (peserta)
Frontend:@mux/mux-player-react di halaman kelas (views/kelas/).
Signing keys
JWT ditandatangani dengan key di env:MUX_SIGNING_KEY_ID/MUX_SIGNING_KEY_PRIVATE_KEY_PKCS8- Per lesson disimpan
muxSigningKeyId(untuk rotasi key)
apps/api/src/mux/mux-signing.ts, mux.service.ts
Status asset
| Status Mux | Arti di UI |
|---|---|
waiting / uploading | Masih proses upload |
preparing | Transcode |
ready | Bisa play; playbackId tersedia |
errored | Upload gagal — cek Mux dashboard |
getMuxStatus(lessonId) di KelasService.
Hapus video
deleteMuxAsset — hapus di Mux + reset field lesson ke videoType: youtube.
Keamanan
Setup Mux
Tutorial API key & signing: Mux (eksternal)File penting
| File | Isi |
|---|---|
kelas.service.ts | Upload, status, token, progress |
kelas.routes.ts | HTTP endpoints |
kelas.repository.ts | Query course/chapter/lesson |
mux.service.ts | Client Mux API |