Design YouTube
Design a video platform where creators upload videos and viewers stream them on any device.
Video streaming · Hard
Functional requirements
- Upload videos
- Stream video in multiple resolutions
- View counts, likes and comments
Scale & non-functional requirements
- 500 hours of video uploaded per minute
- Playback starts in under 2 seconds globally
- Uploads must never be lost
Hints
- What happens between upload and playback (transcoding pipeline)?
- Why a CDN, and what does it cache?
- Adaptive bitrate streaming — how does it work?