YouTube

Design YouTube’s upload and processing pipeline — accept massive volumes of user-generated video uploads and transform them into a playable, multi-resolution catalog.

00

Practice checkpoints

The requirements are open as a taste. From the numbers onward, the full guide opens in the app.

  1. 01
    Clarify scope
  2. 02
    Requirements + scale
  3. 03
    API + data modelUnlocks in the app
  4. 04
    Draw architectureUnlocks in the app
  5. 05
    Deep diveUnlocks in the app
  6. 06
    Trade-off decisionUnlocks in the app
01

Requirements that shape the design

Do not only state requirements. Ask for them. Each card pairs the design constraint with a clarification question you can say out loud before drawing the architecture.

Functional requirements

01How big can an upload be, and can it survive a dropped connection?

Uploads up to tens of GB, chunked and resumable — an interrupted upload continues from the last verified chunk.

02What does "watchable" mean on a bad connection?

Playback adapts to bandwidth: the player picks quality per segment, so a train ride degrades resolution instead of freezing the video.

03What happens between upload finished and video watchable?

A processing pipeline splits the file into segments, transcodes each into multiple formats in parallel, and publishes a manifest — the video goes live when the manifest does.

04Can an uploader replace or trim a published video?

Yes, as a new version behind the same video id: the pipeline re-runs and the manifest swap is atomic, exactly like first publish - watchers never see a half-processed state.

05Thumbnails, captions, transcripts - part of the pipeline?

Yes, as parallel branches of the processing DAG (a dependency graph of steps, each running once its inputs are ready) beside transcoding; publish waits only on the required branches, and captions can land after go-live.

06Does watch progress follow the viewer across devices?

Yes: resume points are tiny periodic writes on their own path - never coupled to the delivery path that must stay cache-only.

Out of scopeSearch, recommendations, and comments · Channel management and subscriptions · Moderation policy design — copyright/content-fingerprint matching itself stays in the pipeline

Non-functional requirements

01What scale should I size for?

~1M uploads/day against ~100M watches/day — reads dominate 100:1, so delivery (CDN) carries the system.

02What is the availability vs consistency call?

Availability wins: stale metadata (view counts, titles) is acceptable for seconds; playback must never break.

03How fast must playback start?

First frame in ~1-2 s: the player fetches the manifest, picks a starting quality, and streams segment by segment from the CDN edge.

04What happens when a transcoding worker dies mid-job?

Segment jobs are idempotent and tracked in a DAG — a crashed worker’s segment re-queues; the pipeline never loses an upload.

05Do uploads flow through our servers?

No — clients upload chunks straight to blob storage via presigned URLs; storage events trigger the pipeline.

Keep asking — the interview is a conversation

Real interviews probe far more than a tidy list. These are the scope questions that separate candidates who interrogate the problem from those who recite it.

  • Max upload size, and is resumability required from day one?
  • How fast must a video go from uploaded to watchable?
  • Which playback targets — mobile-first, TV, both?
  • Are live streams in scope, or only video-on-demand?
  • How exact do view counts need to be?
01

Unlock the full playbook for YouTube

Numbers, architecture diagram, API and data model, deep dives, expected topics, self-check, whiteboard starter, and common mistakes unlock inside the app.

02

Numbers that force architecture decisions

Locked in the app

03

Architecture path

Locked in the app

04

API and data model

Locked in the app

05

Deep dive directions

Locked in the app

+Series

Practice the related series