Patent ID: 7299291

Claim:
An apparatus, comprising: a processor; a media player; a program code module comprising code executable by the processor to carry out the following method steps: receiving a list of a set of servers, wherein the set of servers is identified by a content delivery network (CDN) map generating process; issuing a request to each of the set of servers and receiving a response to the request, and using data associated with the response from each of the set of servers to identify a given server in the set of servers; as a media stream is being received from a first server and rendered by the media player, determining whether the media stream is acceptable according to a given metric; if the media stream is not acceptable, and as the media stream continues to be received, taking a given action to initiate delivery of the media stream from the given server, wherein the given action includes the steps of: (a) creating a buffer; (b) receiving from the first server and caching in the buffer advanced portions of the media stream; (c) issuing a request to the given server to initiate delivery of the media stream at a given offset; and (d) rendering the advanced portions of the media stream; receiving the media stream from the given server; and when the given offset is reached, rendering in the media player the media stream received from the given server.