Front-end Engineering Lab
RADIO FrameworkComplete Systems

Video Streaming Platform

System design for video player with adaptive streaming and offline support

Design a video streaming platform (Netflix, YouTube) with adaptive bitrate, subtitles, and offline downloads.

R - Requirements

Key Questions:

  • Adaptive bitrate? (yes, for varying network)
  • Subtitles? (multiple languages)
  • Playback speed? (0.5x, 1x, 1.5x, 2x)
  • Offline downloads? (yes, for mobile)
  • Live streaming? (yes/no)
  • Recommendations? (yes, personalized)

Common Answers:

  • Adaptive streaming (HLS/DASH)
  • Multiple subtitle languages
  • Offline downloads for mobile
  • Personalized recommendations

A - Architecture

Video Playback Flow:

Streaming Architecture:

Architecture Decisions:

  • HLS/DASH for adaptive streaming - Adjust quality based on network
  • CDN strategy (multiple regions, edge caching) - Low latency, high availability
  • Client-side player (video.js, hls.js) - Handle streaming protocol
  • Offline storage (IndexedDB for downloads) - Play offline on mobile

Relevant Content:

D - Data Model

State Management:

  • Playback state (position, quality, speed)
  • Watch history (local + server)
  • Recommendations (personalized)
  • Offline downloads (IndexedDB)

Caching:

  • Video segments (CDN caching)
  • Metadata (video info, subtitles)
  • Watch history (localStorage + server)

Relevant Content:

I - Interface

Features:

  • Video player controls (play, pause, seek)
  • Quality selector (auto, 360p, 720p, 1080p, 4K)
  • Subtitle selector (languages)
  • Playback speed selector
  • Progress bar with chapters
  • Keyboard shortcuts (space, arrows)
  • Fullscreen support

Accessibility:

  • Keyboard navigation
  • Screen reader support
  • Captions/subtitles
  • High contrast mode

Relevant Content:

O - Optimizations

Performance:

  • Adaptive bitrate (adjust quality based on network)
  • Video preloading (next video, segments)
  • CDN optimization (edge caching, multiple regions)
  • Bandwidth detection (choose initial quality)

Network:

  • Network-aware quality (adjust based on connection)
  • Buffering strategy (preload ahead, pause on slow)
  • Connection pooling (reuse connections)

Offline:

  • Download management (queue, resume, delete)
  • Storage optimization (compress, delete watched)

Relevant Content:

Implementation Checklist

  • Adaptive streaming (HLS/DASH)
  • Quality selector (auto, manual)
  • Subtitle support (multiple languages)
  • Playback speed control
  • Keyboard shortcuts
  • Watch history (local + server)
  • Offline downloads (IndexedDB)
  • Network-aware quality
  • CDN optimization
  • Recommendations (personalized)

Common Pitfalls

Fixed quality → Poor experience on slow networks
Adaptive bitrate based on network speed

No offline support → Can't watch without internet
Download to IndexedDB, play offline

No preloading → Users wait for next video
Preload next video, buffer ahead

Poor buffering → Stuttering playback
Smart buffering strategy, network-aware

On this page