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?

More system design questions

Try AI Flowchart free →