Patent ID: 8752100

Claim:
A method of receiving content, comprising: joining, by a media device including a processor, an in-progress multicast stream to receive content from a content server, wherein the in-progress multicast stream is missing a transpired portion of the content; submitting, by the media device, to a search server a first request for the transpired portion of the content, wherein the first request comprises a globally unique identifier that identifies the transpired portion of the content; acquiring, by the media device, information from the search server based on a search performed by the search server, wherein the search server performs the search of a network topology of a plurality of peer devices in proximity to the media device according to the globally unique identifier of the transpired portion of the content to determine whether any of the plurality of peer devices can provide the media device a catch-up portion of the transpired portion of the content, wherein the search server receives from the plurality of peer devices a corresponding globally unique identifier for each chunk of content stored by the plurality of peer devices, which the search server stores in a directory of peer devices; responsive to joining the in-progress multicast stream and responsive to determining from the information that the search server has identified in the directory of peer devices an entry associated with a peer device of the plurality of peer devices that matches to the globally unique identifier of the transpired portion of the content, sending, by the media device, a second request to the peer device of the plurality of peer devices for the catch-up portion of the transpired portion of the content, wherein the catch-up portion of the transpired portion of the content corresponds to at least a part of the transpired portion of the content,and wherein the request includes a deadline for delivery of the catch-up portion of the transpired portion of the content; receiving, by the media device, the catch-up portion of the transpired portion of the content from the peer device prior to the deadline, responsive to joining the in-progress multicast stream and responsive to determining from the information that none of the plurality of peer devices has the catch-up portion of the transpired portion of the content, sending, by the media device, to the content server a third request for the transpired portion of the content; receiving, by the media device, from the content server the transpired portion of the content, wherein the search server performs the search in accordance with policy information stored on the search server to identify peer groups, the policies being based on a time of day, a day of week, or a network usage pattern.