Tipe video per lesson
Production utama: Mux (kualitas, analytics, thumbnail).
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
Polling:
getMuxStatus(lessonId) di KelasService.
Hapus video
deleteMuxAsset — hapus di Mux + reset field lesson ke videoType: youtube.