# Design offline downloads for a streaming app: system design interview question

> A device must resume media transfers, protect local storage, and enforce playback deadlines without a reliable connection.

Source: https://sysround.com/questions/design-offline-downloads-for-a-streaming-app
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design a service that lets users download video or music and play it offline. Downloads must survive connection failures and obey storage limits and content expiration."

## What to clarify first

- Clients and playback
- Scale and media size
- Read and write traffic
- Latency
- Storage policy
- Expiration and revocation
- Consistency and availability
- Existing services
- Durability
- Scope exclusions

## Scope of a strong answer

Core requirements:

- Download media with pause and resume support across connection failures and device restarts.
- Play complete downloads without a connection.
- Enforce a local storage quota and a free-space reserve.
- Enforce content expiration during offline playback.

Usually out of scope:

- Play incomplete downloads.
- Change media quality during a download.
- Transfer downloads between devices.
- Build the media encoding pipeline or the DRM service.
- Protect against a fully compromised operating system.

## What interviewers probe

### Transfer progress

Connections, URLs, media versions, and app processes can change independently. A false progress record can corrupt the final file.

### Local storage

Downloads compete for limited space while other apps consume the same disk. File changes and database changes cannot share one transaction.

### Offline access

An offline device cannot receive immediate revocation. A user can also change the wall clock or prevent background cleanup.

### Background progress

The OS controls execution after app suspension. Large groups of devices can also resume together after a network outage.

## Common mistakes

- The design focuses on servers and omits durable state on the device.
- The client treats a temporary URL as the identity of a media file.
- The client ignores partial files or relies only on disk-full errors to protect the storage reserve.
- The design treats the wall clock as trusted proof of license validity.
- The design promises background execution or immediate offline revocation without platform support.
- The client assumes that file publication and a database update form one atomic operation.

## The bar by level

- **Senior:** Defines recovery across file writes, checkpoints, publication, and deletion. Reserves capacity atomically and checks the reserve before bounded writes. Handles disk-full failures and late task results. Uses native background transfers and trusted license expiry.
- **Staff+:** Defines correctness across OS tasks, local files, metadata, and licenses. Bounds repeated transfers and fleet retry traffic. States the limits of offline revocation, background execution, and free-space guarantees. Changes the product contract when new requirements exceed those limits.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=offline-media-downloads


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
