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