Module 1: Video Player Engineering
Build an adaptive streaming video player from raw segments up — manifest parsing, MSE/EME buffer management, ABR, multi-DRM playback, and the constraints that differ on CTV and mobile. Capstone: a working multi-DRM adaptive player.
Prerequisites
- Comfortable with JavaScript (ES6+) and the DOM
- Basic command-line familiarity (installing packages, running a local server)
- No prior video/codec knowledge assumed — Week 1 builds it from zero
Learning Outcomes
By the end, you can explain and build an adaptive streaming player from raw segments up: manifest parsing, buffer management, ABR, multi-DRM playback, and the constraints that differ on CTV/mobile vs desktop web.
Weekly Curriculum
Week 1Streaming Fundamentals
Why does Netflix never buffer but a random news site does? It starts here.
HTTP adaptive streaming model, HLS vs DASH manifest structure, MPEG-TS vs fragmented MP4/CMAF, codec landscape (H.264/H.265/AV1, AAC/Opus). Lab: hand-edit an HLS manifest, inspect segments with ffprobe.
Week 2Media Source Extensions (MSE) & Encrypted Media Extensions (EME)
This is the invisible JavaScript API doing the work every time you drag a video's seek bar.
The MSE API, buffer append/eviction, ABR fundamentals (bandwidth estimation, switch-up/down hysteresis), EME overview. Lab: build a minimal MSE player from raw fMP4 segments, no library.
Week 3Player Frameworks & Production Concerns
The bug that "randomly" breaks playback for 2% of your users usually lives right here.
HLS.js, Shaka Player, Video.js architecture compared. Custom ABR overrides, error taxonomy & recovery, QoE instrumentation (startup time, rebuffer ratio, bitrate switches). Lab: integrate HLS.js with a custom ABR override and a QoE logging layer.
Week 4DRM & Content Protection
Three studios, three different DRM systems, one player that has to satisfy all of them at once.
Widevine/FairPlay/PlayReady license acquisition flow, multi-DRM packaging with CENC, offline/download DRM basics. Lab: package a source asset for multi-DRM, verify playback across Chrome and Safari.
Week 5CTV & Native Platforms
The player that runs silky-smooth on your laptop can crash a $30 Fire TV stick — here's why.
Why CTV is a different engineering problem — memory ceilings, weak CPUs, remote-control input. Tizen/webOS/Roku/Fire TV survey, ExoPlayer/AVPlayer concepts, React Native video. Lab: adapt the ABR ladder for a simulated low-memory CTV profile.
Week 6Capstone
Everything up to now was theory. This week it has to actually work, live, in front of the class.
Build a working multi-DRM adaptive player combining every prior week — MSE playback with custom ABR, multi-DRM content, QoE dashboard, CTV-constrained mode toggle. Demo + code walkthrough in the final live session.
Who It's For
Students & Freshers
Front-end engineers who want the video/streaming specialization that's hard to self-teach from scattered documentation.
Web/App Engineers
Engineers moving onto an OTT or broadcaster product team who need to own player-layer decisions, not just integrate a vendor SDK.
OTT/Broadcast Teams
Teams evaluating or debugging player vendors who need to understand ABR, DRM and MSE internals to ask the right questions.
Continue Your Track
Pricing
Pricing depends on who's enrolling — pick the page that matches you:
Ready to Build a Real Player?
Get the full curriculum, next cohort dates and pricing.