YouTube System Design (Upload Pipeline & Scale)

Design a video sharing platform like YouTube where users can upload, watch, like, comment on, and share videos. The platform should support video streaming to millions of users worldwide.

Constraints

Functional

Upload videos, watch with streaming, search (title/description/tags), channels and subscriptions, comments and likes, playlists, recommendations from watch history, optional live streaming

Non-functional

2B users, 500M DAU, global low latency, multiple resolutions (360p–4K), 99.9% playback uptime, petabytes of video

Scale

2B users, 500M DAU; 500 hours uploaded/min → ~21.6 PB/month; 5B views/day, peak ~60K/s; very read-heavy; ~5 Mbps avg, 300 Gbps peak

Stages ahead

1Requirement Analysis
2API Design
3High-Level Design
4HLD Extensions
5Trade-offs