1. A system comprising: a media cache configured to store fragments of content files; and a server system comprising a processor and memory, wherein the memory includes instructions that, when executed by the processor, cause the server system to: receive, from a user device, a request for a first fragment of a first content file; determine whether the first fragment is stored in the media cache; retrieve a manifest file associated with the first content file from an origin server in response to a determination that the first fragment is not stored in the media cache, wherein the manifest file comprises a playback time of the first fragment and a bitrate of the first fragment; determine a retrieval rate for the first fragment, wherein the retrieval rate is determined based, at least in part, on the playback time of the first fragment and the bitrate of the first fragment; request the first fragment from the origin server at a transfer rate that is at least equal to the determined retrieval rate; receive the first fragment from the origin server; and transmit the received first fragment to the user device.