Design online audio/video file downloader.
MediumImagine you are building a robust download manager for audio and video files from online sources. Users should be able to add multiple files to a download queue, specify download locations, control download speed, and handle potential errors gracefully. The system should support resuming interrupted downloads and be easily extensible to support new download protocols and file types. This requires a design that is modular, extensible, and handles concurrent downloads efficiently. We need to consider scenarios such as network disruptions, server errors, and file corruption. Furthermore, the design should allow for different download strategies such as sequential downloads or concurrent downloads with limits on the number of concurrent downloads.
Requirements
Think like an Architect
Before revealing the requirements, imagine you're in the interview right now."How would you clarify the scope with your interviewer?"