Patent ID: 8738736

Claim:
A content streaming system comprising: a set of at least two geographically separated streaming server clusters, each particular streaming server cluster of the set of stream server clusters comprising (i) a local storage server and (ii) a plurality of streaming servers with shared access to the local storage server, said local storage server comprising a non-transitory computer-readable storage, and each streaming server of the plurality of streaming servers recording live content to a file that is stored on said non-transitory computer-readable storage of the local storage server that is in the same particular streaming server cluster as the streaming server, the live content representing content that is actively streamed from a content provider to the streaming server; a remote storage server comprising a non-transitory computer-readable storage, wherein completed content comprising any file that has stopped recording live content for a specified duration and that is stored to the non-transitory computer-readable storage of the local storage server of any streaming server cluster is transferred to the non-transitory computer-readable storage of the remote storage server, wherein the specified duration is configurable by a content provider of the completed content; and a set of distributed caching servers, each caching server of the set of distributed caching servers comprising cache storage for caching content that is streamed by the caching server to at least one end user, each caching server configured to access a streaming server cluster of the set of streaming server clusters in order to stream live content to end users and further configured to access the remote storage server in order to stream completed content to end users, wherein a first caching server streams live content by determining a particular streaming server cluster from the set of streaming server clusters that receives the live content and by distributing the live content from the particular streaming server cluster to a requesting end user, and wherein a second caching server streams completed content by determining that the remote storage server retains the completed content and by distributing the completed content from a file of the remote storage server to a requesting end user.