A method and apparatus are described including determining a number of clips to be streamed, requesting a selection of a mesh cache server to meet quality of service requirements for streaming the determined number of clips, establishing a streaming route responsive to the mesh cache server selection, receiving the number of streamed clips from the selected mesh cache server if the request is granted, joining a peer-to-peer network, downloading a next clip via the peer-to-peer network, requesting a selection of a mesh cache server to meet quality of service requirements for complimentary streaming any data missing from the next clip, receiving any data missing from the next clip via complimentary streaming if the request for complimentary streaming is granted and continuing to download any missing data of the next clip that has at least one of not passed its playback deadline and not been requested via complimentary streaming.