Design a Video Streaming Service
A full case study of a YouTube-style platform, covering upload, transcoding pipelines, adaptive bitrate streaming and CDN delivery.
Requirements
A video streaming service lets creators upload videos and viewers watch them on any device and network.
Functional:
- Upload a video file.
- Play a video with seek, pause and quality that adapts to the connection.
- Search and browse by title (metadata only here).
Non-functional:
- Playback starts in about a second or two and rarely stalls.
- Works on phones, TVs and browsers over varying bandwidth.
- Highly available for viewing; uploads may take minutes to become playable.
- Cost-aware: bandwidth and storage dominate the bill.
Out of scope: recommendations, copyright detection, comments, live streaming (see exercises).
1 of 11