Design a Video Streaming Platform

Design YouTube or Netflix. The upload pipeline encodes one video into dozens of formats. The delivery pipeline uses CDN edge nodes to stream the right quality to each viewer's network. Both must work at planetary scale.

What you will learn

  • Design a video upload and transcoding pipeline that produces multiple quality levels
  • Explain adaptive bitrate streaming (ABR) and how the client picks quality in real time
  • Architect CDN delivery to minimise origin load while keeping latency low globally
  • Handle metadata, search, and recommendations as separate concerns from video delivery

YouTube serves over 500 hours of video uploaded every minute and streams to 2 billion logged-in users. Netflix delivers 700TB of data per second at peak. These numbers are the result of a system with two fundamentally different concerns: an upload and processing pipeline that turns raw video into streamable formats, and a delivery infrastructure that serves those videos to viewers at global scale with minimal buffering.


Functional requirements:

  • Users can upload videos (up to 4 hours, 8K resolution)
  • Videos are available for streaming after processing (delay acceptable: 5–30 min)
  • Support multiple quality levels (360p, 720p, 1080p, 4K)
  • Adaptive bitrate — player switches quality based on network conditions
  • Search by title, tags, description
  • Recommendations, likes, comments (separate concern)

Non-functional requirements:

  • Upload: reliable, resumable (large files over mobile)
  • Streaming latency: < 2 seconds to first frame
  • Buffering ratio < 0.5% of watch time
  • High availability — streaming downtime = user churn
  • Global delivery (users on 6 continents)

Create a free account to read the full chapter — advanced chapters, progress tracking, and quizzes are free with sign-up.