Design Youtube
Overview– YouTube is a video-sharing platform that allows users to upload, view, and interact with video content. As of this video, it is the second most visited website in the world. Functional Requirements– Users should be able to upload videos. Users should be able to watch/stream videos. Scale ~1M uploads/day 100M DAU Max video size of 256GB Non-Functional Requirements– Availability >> Consistency for video uploads Support uploading/streaming for large videos (256GB) Low latency streaming (<500 ms) is true in low bandwidth Scalability to scale to 1M uploads per day and 100M views Core Entities— User Video Video Metadata API //upload a video POST /videos { videoMetadata } //watch a video GET /videos/:videoId → video & videoMetadata High-Level Design–