40. Design Video Upload and Streaming (YouTube)
1
The interview prompt2
40.1 What do you ask first?3
40.2 How big is this, really?4
40.3 What are the doors?5
40.4 What do we store?6
40.5 What does the whole system look like?7
40.6 How does the upload pipeline work?8
40.7 How does transcoding work?9
40.8 How does adaptive bitrate work?10
40.9 How does CDN delivery work at this scale?11
40.10 How do you count views?12
40.11 What would you say in the last five minutes?13
Score yourself14
Variations to practise15
Sources16
Code lab40. Design Video Upload and Streaming (YouTube)
40.3 What are the doors?
3 min read+10 XP
Step 3: API and data model (10 minutes)
POST /v1/videos { "title": "...", "size": 2000000000 }
returns: { "video_id": "v77", "upload_url": "https://upload…/v77?sig=…", "chunk_size": 8000000 }
PUT <upload_url> (resumable: Content-Range per chunk; GET returns what's received so far)
POST /v1/videos/v77/complete → 202 { "status": "processing" }
GET /v1/videos/v77 → { "status": "ready", "title": "...",
"playlist": "https://cdn…/v77/master.m3u8", "views": 18213 }
POST /v1/videos/v77/view { "watched_s": 45, "session": "…" } (sent by the player)