SECURE TRANSFER OF PREVIOUSLY BROADCASTED CONTENT
A method and apparatus for secure transfer of previously broadcasted content enables the secure transfer of previously broadcasted content between DVRs on a computer network.
1 .- 37 . (canceled)
38 . A method comprising:
receiving from a media device, a request for a previously broadcasted content item;
selecting a pool of devices for delivering the requested previously broadcasted content item to the media device, wherein the selection of the pool of devices comprises:
determining that a plurality of devices have stored the content item;
dividing the previously broadcasted content item into a plurality of portions, wherein each device, from the plurality of devices, is assigned a portion, from the plurality of portions, for transferring to the media device;
detecting that a first device, from the plurality of devices, to which is a first portion, from the plurality of portions, is assigned is unable to transfer the first portion at a bandwidth above a threshold; and
in response to the detection, selecting the plurality of devices as the pool of devices for delivering the requested previously broadcasted content item to the media device, wherein the selected plurality of devices in the pool does not include the first device.
39 . The method of claim 38 , further comprising:
detecting that a second device, from the plurality of devices, is capable transferring the first portion at the bandwidth above a threshold; and
in response to detecting that the second device, from the plurality of devices, is capable transferring the first portion at the bandwidth above a threshold, assigning the first portion, from the plurality of portions, of the previously broadcasted content item to the second device for transferring to the media device.
40 . The method of claim 39 , further comprising, adding the second device to the pool of devices for delivering the requested previously broadcasted content item to the media device.
41 . The method of claim 38 , wherein, assignment of the portion, from the plurality of portions, to each device, comprises:
communicating with each device, from the plurality of devices; and
determining the dividing of the previously broadcasted content item into the plurality of portions based on load handling capability of each device.
42 . The method of claim 41 , further comprising, performing reassignment of a sub-portion of the assigned portion during transfer if a determination is made that the device to which the portion is assigned has gone offline.
43 . The method of claim 38 , further comprising:
determining that a third device, which has stored the previously broadcasted content item, is scheduled to delete the stored previously broadcasted content item within a predetermined amount of time; and
in response to determining that the third device is scheduled to delete the stored previously broadcasted content item within the predetermined amount of time, not including the third device in the pool of devices for delivering the requested previously broadcasted content item to the media device.
44 . The method of claim 38 , further comprising:
causing the selected plurality of devices in the pool of devices to transfer their assigned portions to the media device.
45 . The method of claim 44 , wherein data in the assigned portions is encrypted prior to being transferred to the media device.
46 . The method of claim 38 , further comprising:
causing the portions assigned to each device to be combined as a combined portion; and
causing generating of a single stream that includes the combined portion to be transferred to the media device.
47 . The method of claim 46 , further comprising, performing an integrity check prior to causing the single stream to be delivered to the media device, wherein the integrity check determines whether a complete previously broadcasted content item is included in the single stream.
48 . The method of claim 47 , further comprising, determining through the integrity check whether the combined portion includes an error.
49 . A system comprising:
one or more servers comprising memory and control circuitry, implemented at least partially in hardware, that:
receive from a media device, a request for a previously broadcasted content item;
selecting a pool of devices for delivering the requested previously broadcasted content item to the media device, wherein the selection of the pool of devices comprises:
determine that a plurality of devices have stored the content item;
divide the previously broadcasted content item into a plurality of portions, wherein each device, from the plurality of devices, is assigned a portion, from the plurality of portions, for transferring to the media device;
detect that a first device, from the plurality of devices, to which is a first portion, from the plurality of portions, is assigned is unable to transfer the first portion at a bandwidth above a threshold; and
in response to the detection, select the plurality of devices as the pool of devices for delivering the requested previously broadcasted content item to the media device, wherein the selected plurality of devices in the pool does not include the first device.
50 . The system of claim 49 , further comprising, the one or more servers configured to:
detect that a second device, from the plurality of devices, is capable transferring the first portion at the bandwidth above a threshold; and
in response to detecting that the second device, from the plurality of devices, is capable transferring the first portion at the bandwidth above a threshold, assign the first portion, from the plurality of portions, of the previously broadcasted content item to the second device for transferring to the media device.
51 . The system of claim 50 , further comprising, the one or more servers configured to add the second device to the pool of devices for delivering the requested previously broadcasted content item to the media device.
52 . The system of claim 49 , wherein, assignment of the portion, from the plurality of portions, to each device, comprises, the one or more servers configured to:
communicate with each device, from the plurality of devices; and
determine the dividing of the previously broadcasted content item into the plurality of portions based on load handling capability of each device.
53 . The system of claim 52 , further comprising, the one or more servers configured to perform reassignment of a sub-portion of the assigned portion during transfer if a determination is made that the device to which the portion is assigned has gone offline.
54 . The system of claim 49 , further comprising, the one or more servers configured to:
determine that a third device, which has stored the previously broadcasted content item, is scheduled to delete the stored previously broadcasted content item within a predetermined amount of time; and
in response to determining that the third device is scheduled to delete the stored previously broadcasted content item within the predetermined amount of time, not include the third device in the pool of devices for delivering the requested previously broadcasted content item to the media device.
55 . The system of claim 49 , further comprising, the one or more servers configured to:
cause the selected plurality of devices in the pool of devices to transfer their assigned portions to the media device, wherein data in the assigned portions is encrypted prior to being transferred to the media device.
56 . The system of claim 49 , further comprising, the one or more servers configured to:
cause the portions assigned to each device to be combined as a combined portion; and
cause generating of a single stream that includes the combined portion to be transferred to the media device.
57 . The system of claim 56 , further comprising, the one or more servers configured to perform an integrity check prior to causing the single stream to be delivered to the media device, wherein the integrity check determines a) whether a complete previously broadcasted content item is included in the single stream and b) whether the combined portion includes an error.