YouTube is a video sharing and streaming platform where users can upload, watch, and interact with videos. It supports a wide range of content, including short clips, tutorials, live streams, and full-length movies.
Users can subscribe to channels, comment on videos, like or dislike content, and receive personalized recommendations.
With over 2.5 billion monthly active users, YouTube is the second most visited website in the world, trailing only Google.
In this chapter, we’ll explore the system design of a large-scale video streaming service like YouTube that can accommodate hundreds of millions of daily users and billions of views, all while maintaining low latency and high availability.
Let’s start by clarifying the requirements.
Before diving into the design, lets outline the functional and non-functional requirements.
Given the high storage and bandwidth requirements, leveraging cloud-based services is the most practical approach: