HARD

Design YouTube Video Streaming Platform

Design a video sharing and streaming platform supporting upload, transcoding, streaming, recommendations, comments, and likes.

Estimated Time: 45 minutes
Solution Overview

YouTube requires: Chunked video upload, distributed transcoding pipeline, CDN for delivery, adaptive bitrate streaming (HLS/DASH), recommendation engine, view count aggregation, comment system.

Storage

500 hours uploaded per minute = 30TB/day. Use S3 glacier for old videos.

Streaming

cdn

CloudFront/Akamai

quality

Auto-adjust based on bandwidth

protocol

HLS/DASH for adaptive streaming

View Counting

Batch writes to avoid hot partitions. Use HyperLogLog for unique views. Aggregate periodically.

Recommendations

Collaborative filtering + content-based using watch history, likes, search queries. ML model trained offline, served via Redis cache.

Upload Pipeline
  • Chunked upload to S3
  • Queue job for transcoding
  • FFmpeg transcodes to multiple resolutions
  • Generate thumbnails
  • Upload to CDN
  • Update metadata