Skip to main content

Design YouTube

Problem

Design video streaming platform like YouTube.

Requirements

  • Upload videos
  • Stream videos (adaptive bitrate)
  • Search videos
  • Recommendations
  • Scale: 500 hours uploaded/minute

Key Challenges

  1. Storage: Massive (86 PB/year for uploads)
  2. Transcoding: Convert to multiple formats (360p, 720p, 1080p, 4K)
  3. CDN: Serve from edge (reduce latency + bandwidth)

High-Level Design

Upload Flow

  1. Client uploads video → S3
  2. Queue transcoding job (Kafka)
  3. Worker transcodes video (FFmpeg)
  4. Upload processed videos to S3
  5. Update database (video metadata)

Streaming

  • Adaptive bitrate: HLS or DASH (switch quality based on bandwidth)
  • CDN: Cache popular videos at edge
  • Pre-warming: Pre-cache predicted popular videos

Storage

  • Cold storage: Old videos (Glacier)
  • Hot storage: Recent videos (S3)

Next: Design Uber.