YouTube is a user-generated-video platform: creators upload raw video, the system processes it, and billions of viewers stream it back on every kind of network and screen. What makes it a hard system-design problem is the pipeline that sits between upload and playback.
Three forces define the design:
- Ingest is write-heavy and bursty — ~500 hours of new video arrive every minute, in every format, over flaky uplinks. Uploads must be resumable and durable.
- Transcoding is compute-heavy — one raw master must become a whole ladder of resolutions and codecs (240p → 4K, H.264 / VP9 / AV1) so any device on any bandwidth can play it.
- Delivery is read-heavy and global — billions of views/day at hundreds of Tbps, which is only possible if the bytes are served from a CDN edge near the viewer, not from origin.
The whole design is about turning a messy UGC upload into immutable, cacheable segments and getting them as close to the viewer as possible. This is the canonical "ingest → transcode → CDN" interview.