# Patent

## Title
Distributed recording of content

## Abstract

A method is disclosed for distributed recording of content in a client system having a home network connecting a content broker and a plurality of set-top boxes (STBs) with digital video recording capability. In a requesting STB, a command is received from a user to begin recording a content item. A query is sent from the requesting STB to the content broker to determine whether the content item is being recorded by any other STB of the plurality of STBs. A response is received from the content broker. If the response indicates that none of the plurality of STBs is then currently recording the content item, the content item is recorded in the requesting STB. If the response identifies a recording STB that is then currently recording the requested content, an internal content list is updated in the requesting STB to identify the recording STB.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation application of and claims the benefit of priority to U.S. application Ser. No. 13/619,156, filed on Sep. 14, 2012, now issued as U.S. Pat. No. 8,973,084, which is a continuation of U.S. application Serial No. 12/982,935, filed on Dec. 31, 2010, now issued as U.S. Pat. No. 8,272,024, the contents of which are hereby incorporated by reference.


BACKGROUND
A system for distributing video content is typically maintained by a service provider, which can be, for example, a television service provider (e.g., a national or local television network), a cable television service provider or multiple system operator (MSO), an Internet service provider, a satellite broadcast system service provider, or other suitable service provider.
High definition (HD) video content is becoming increasingly prevalent. In a conventional system, HD content and standard definition (SD) content can be streamed to media players/servers, such as a set-top box (STB), which may include personal video recorder (PVR) or digital video recorder (DVR) functionality.
Conventional PVR/DVR-enabled devices are able to store the streamed content, e.g., by recording the streamed content to a local disk or other persistent storage within or connected to the STB. Such PVR/DVR-enabled devices are limited by their local storage capacity; and if streamed content is HD, then the disk space requirement can be critical, as HD content requires more disk space than SD content.
PVR/DVR-enabled devices can be connected in a network, such as a multi-room DVR (MR-DVR) implementation. For example, in an illustrative MR-DVR implementation, a media server, such as a Multimedia over Coax Alliance (MoCA) enabled DVR set-top box, can deliver DVR content to other MoCA-enabled client set-top boxes in other rooms throughout a home.
If more than one PVR/DVR-enabled device wants to record the same content, then each one of those devices may create a copy of the same content in its local storage. This creates redundancy in a network, such as a MR-DVR implementation, where content can be shared between connected devices.
SUMMARY
In one embodiment of the present invention, a method is provided for distributed recording of content in a client system having a home network connecting a content broker and a plurality of set-top boxes (STBs) with digital video recording capability. In a requesting STB, a command is received from a user to begin recording a content item. A query is sent from the requesting STB to the content broker to determine whether the content item is being recorded by any other STB of the plurality of STBs. A response is received from the content broker. If the response indicates that none of the plurality of STBs is then currently recording the content item, the content item is recorded in the requesting STB. If the response identifies a recording STB that is then currently recording the requested content, an internal content list is updated in the requesting STB to identify the recording STB.
In another embodiment of the present invention, a method is provided for playback of distributed content in a client system having a home network connecting a content broker and a plurality of set-top boxes (STBs) with digital video recording capability. In a requesting STB, a command is received from a user to begin playback of a content item. A determination is made of whether the content item was remotely recorded in a recording STB. If the content item was remotely recorded in a recording STB, the recording STB is contacted through the home network to request streaming of the content item from the recording STB to the requesting STB. The content is received from the recording STB, and the received content is displayed to the user.
In a further embodiment of the present invention, a method is provided for distributed recording of content in a client system having a home network connecting a content broker and a plurality of set-top boxes (STBs) with digital video recording capability. In the content broker, a query is received from a requesting STB to determine whether a content item is being recorded by any other STB of the plurality of STBs. If none of the plurality of STBs is then currently recording the content item, a response is sent from the content broker to the requesting STB so that the content item can be recorded in the requesting STB. If a recording STB is then currently recording the requested content, a response is sent from the content broker to the requesting STB comprising a device identifier associated with the recording STB.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram that illustrates an exemplary content distribution system in accordance with an embodiment of the present invention.
FIG. 2 is a flow diagram that illustrates a method for distributed recording of content according to an embodiment of the present invention.
FIG. 3 is a flow diagram that illustrates a method for playback of distributed content according to a further embodiment of the present invention.



DETAILED DESCRIPTION
Aspects of the present invention provide a method for distributed recording of streamed content in PVR/DVR-enabled devices, making use of the networked device architecture for efficient use of storage.
Before describing in detail embodiments that are in accordance with the present invention, it should be observed that the embodiments reside primarily in combinations of method steps and apparatus components related to a system and method for distributed recording of content. Accordingly, the apparatus components and method steps have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
In this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element preceded by “comprises . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.
FIG. 1 illustrates an exemplary content distribution system 100 in accordance with an embodiment of the present invention. However, it will be understood by a person having ordinary skill in the art that aspects of the invention can be practiced using a system having other than the specific features or limitations of the illustrative content distribution system 100 described herein.
Content distribution system 100 includes a video server system 101 and at least one client system 111, the two of which are connected by an access network 110. For example, communication link 151A connects the server system 101 to the access network 110, and communication link 151B connects the client system 111 to the access network 110. Conventional content distribution systems typically include a plurality of client systems 111, not shown. The server system 101 stores, manages and delivers video content requested by a client system 111 via the access network 110. Access network 110 and communication links 151A, 151B can include, for example, a transmission medium such as an optical fiber, a coaxial cable, a hybrid fiber coaxial (HFC) network, or other suitable transmission media or wireless telecommunications.
The server system 101 typically is located in a headend (not shown) or other suitable location within the content distribution system 100. The headend typically is a regional or local hub that is part of a larger service provider distribution system, such as a cable television distribution system. The content distribution system 100 typically is based on a central server architecture. In such an architecture, the server system 101 typically is centrally located with respect to a plurality of client systems 111, and connects to each client system 111 directly via a dedicated transmission medium (in some embodiments, communication link 151B) of access network 110. In other embodiments, the content distribution system 100 can be distributed; for example, content distribution system 100 can comprise a plurality of server systems 101 located in one or more headends. In further embodiments, an exemplary server system 101 can include a plurality of servers, controllers, and/or processors, e.g., for encoding and distributing video content.
Server system 101 receives, through access network 110, requests from a client system 111. Server system 101 and client system 111 exchange information with one another through access network 110; for example, a user interface (UI) server (not shown) of server system 101 can send information for presentation to a user 120, and the client system 111 can send to the server system 101 information, commands, and the like, received in a set-top box (such as requesting STB 150) via an input device 112 from user 120. In an embodiment, each client system 111 can be associated with one or more users 120.
In an illustrative embodiment, server system 101 can receive requests for content (e.g., from client system 111), interpret the requests, pull requested content (e.g., from a database), and deliver to client system 111 a content package corresponding to the requested content. For example, the content package can be delivered via a video processor (not shown) in server system 101 that prepares and sends the data through access network 110 following proper protocols.
Client system 111 includes a content broker 130 and a plurality of set-top boxes, each connected to access network 110 and to one another by a home network, such as a network of coaxial cables. In an embodiment, at least two of the set-top boxes are PVR/DVR-enabled. For illustrative purposes, a first one of the PVR/DVR-enabled set-top boxes is designated as a requesting STB 150, and a second one of the PVR/DVR-enabled set-top boxes is designated as a recording STB 140. The designation of a requesting STB 150 and a recording STB 140 in FIG. 1 does not mean that each STB has a dedicated function; rather, any of the STBs in client system 111 can become either a requesting STB or a recording STB, if and when such functionality is required by a user 120.
The content broker 130 is a designated server in the home network that includes the plurality of set-top boxes. In an embodiment, content broker 130 can be included in one of the set-top boxes of client system 111, such as receiving STB 140 or requesting STB 150, or another STB. In a further embodiment, content broker 130 can be included in a residential gateway device, or in a separate computing device.
The content broker 130 is able to store information such as metadata related to the ongoing recording of content in the network. Examples of such metadata can include, for each item of content, a content identifier (e.g., a unique numeric value), a content name (e.g., an ASCII string representing a name for the content, such as a program name or episode title), a list of one or more device identifiers for identifying the device (e.g., an STB) in which the recorded content is stored, and for each device identifier one or more duration values (e.g., indicating the duration of recorded content stored in each device, or a beginning and ending byte offset or time offset for the recorded content).
In some embodiments, the content broker 130 can periodically broadcast some or all of the metadata related to the ongoing recording of content in the network. In other embodiments, metadata related to the ongoing recording of content in the network can be queried by a requesting STB 150 before the requesting STB 150 attempts to record the content.
For further illustrative purposes, the requesting STB 150 is shown to be connected to an input device 112, and a display 116. Examples of display 116 include a television or a monitor. For ease of illustration, only one input device 112 and one display 116 are depicted in FIG. 1; however, in a typical configuration, each of the set-top boxes in client system 111 is similarly connected to a corresponding input device 112 and display 116.
It will be understood by a person having ordinary skill in the art that the terminology “set-top” does not in any way limit the physical placement of a set-top box such as STBs 140, 150. That is, a set-top box need not be positioned on top of a television set. Each set-top box is any suitable signal processing device or system for processing video signals, such as any signal converter or decoder (set-top) box, or other suitable computing device or video device with set-top box and/or cable modem capabilities, including a residential gateway, an internet protocol (IP), satellite or cable digital video recorder, a digital video disk (DVD) recorder, a computer, or a home media server system. In further embodiments, a set-top box can be a laptop, notebook, or tablet computer, or a mobile device, or can be built into the display 116. An exemplary set-top box comprises a computing device that connects the display 116 and an external signal source, turning the signal into a content stream that the display 116 is able to render and display. For example, an exemplary set-top box can convert data signals to audio/video content and output the data to display 116, and is communicatively coupled to the display 116 via a wired or wireless connection.
A set-top box and/or content server 130 can be completely or partially configured in the form of hardware circuitry and/or other hardware components within a larger device or group of components. Alternatively, a set-top box and/or content server 130 can be completely or partially configured in the form of software, e.g., as processing instructions or one or more sets of logic or computer code. In such configuration, the logic or processing instructions typically are stored in a data storage device, which typically is coupled to a processor or controller. Both the data storage device and the processor or controller can be included as part of a set-top box, although such is not necessary. The processor or controller accesses the necessary instructions from the data storage device and executes the instructions or transfers the instructions to the appropriate location within the set-top box.
An exemplary set-top box is able to receive input commands from a corresponding input device 112 and send requests embodied in the input commands through access network 110 to server system 101. As depicted in FIG. 1, a user 120 can operate input device 112 to send commands to a requesting STB 150. For example, user 120 can use input device 112 to control a user interface (UI) application of requesting STB 150 (e.g., for navigation and selection of content items from menus). Input device 112 is communicatively coupled to the requesting STB 150 either via a wired or wireless connection. In some embodiments, input device 112 can be a remote control device. In further embodiments, input device 112 can be a computer (e.g., a desktop, laptop, notebook, or tablet computer), or a mobile device or smartphone, and/or can be completely or partially configured in the form of software running on a computer. In still further embodiments, input device 112 can be built into the requesting STB 150. In an exemplary embodiment, upon receipt of input commands, such as changing to a new channel, the UI application causes the requesting STB 150 to send corresponding instructions upstream through access network 110 to server system 101. Other set-top boxes in client system 111, such as recording STB 140, are similarly able to receive commands from a corresponding input device 112.
FIG. 2 is a flow diagram that illustrates a method 200 for distributed recording of content according to an embodiment of the present invention.
In step 210, any PVR/DVR-enabled set-top box in client system 111 attempts to begin recording a content item. For example, user 120 of requesting STB 150 uses input device 112 to request recording of a content item (e.g., a movie or a television program) delivered from the server system 101.
In step 220, the requesting STB 150 queries the content broker 130 to determine whether the same content item is being recorded by any other STB in the client system 111. The request includes a device identifier uniquely identifying the requesting STB 150.
In step 230, the content broker 130 responds with information, such as a device identifier that identifies a set-top box that is then currently recording the requested content (i.e., recording STB 140); or, in the alternative, responds with information indicating that none of the set-top boxes in client system 111 is then currently recording the requested content.
In step 240, if the content broker 130 responds with information indicating that none of the set-top boxes in client system 111 is then currently recording the requested content, then requesting STB 150 begins recording the requested content, and notifies the content broker 130 that it is doing so.
In step 250, if the content broker 130 responds with information identifying a set-top box that is then currently recording the requested content (i.e., recording STB 140), then the requesting STB 150 does not start recording, but instead updates an internal content list to identify the remote recording. The internal content list stores the information received from content broker 130, such as the device identifier that identifies a set-top box that is then currently recording the requested content (e.g., recording STB 140).
In step 260, when recording is terminated in the recording STB 140 (either by completion, or by a termination event such as a command received from user 120), the content broker 130 notifies the requesting STB 150 of the termination.
In step 270, if the requesting STB 150 determines that the duration of the recording in the recording STB 140 is less than the requested recording duration, then the requesting STB 150 begins recording the remaining duration of the content in its local storage.
FIG. 3 is a flow diagram that illustrates a method 300 for playback of distributed content according to an embodiment of the present invention.
In step 310, any PVR/DVR-enabled set-top box in client system 111 attempts to begin playing a remotely recorded content item. For example, user 120 of requesting STB 150 uses input device 112 to request playback of a content item (e.g., a movie or a television program) which was previously requested by the requesting STB 150. It is noted that at step 250, the requesting STB 150 internally stored information received from content broker 130, such as the device identifier that identifies a set-top box that was then-currently recording the requested content (e.g., recording STB 140). Accordingly, the requesting STB 150 does not need to contact the content broker 130 to obtain this information at the time the user 120 requests playback of the content item.
In step 320, the requesting STB 150 contacts the recording STB 140 through the home network and requests streaming of the content from the recording STB 140 to the requesting STB 150.
In step 330, the streaming content from the recording STB 140 is displayed by the requesting STB 150 to the user 120 (e.g., on display 116).
In step 340, if the requesting STB 150 determines that the duration of the recording in the recording STB 140 was less than the requested recording duration, then the requesting STB 150 begins playing back the remaining duration of the content from its local storage and displays the remaining duration of the content to the user 120 (e.g., on display 116).
In the foregoing specification, specific embodiments of the present invention have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.

## Claims

1. A computer-implemented method executed by one or more processors, the method comprising:
identifying, by a first set-top box (STB) of a plurality of STBs connected by a first network, a request for a particular content item available from a content server, wherein the first STB is connected to the content server by a second network different than the first network;
in response to identifying the request for the particular content item, determining, by the first STB, that the particular content item is available from a second STB of the plurality of STBs; and
in response to determining that the particular content item is available from the second STB, transferring, by the first STB, the particular content item from the second STB over the first network.

2. The method of claim 1, wherein determining that the particular content item is available from the second STB includes querying a content broker for STBs of the plurality of STBs from which the particular content item is available.

3. The method of claim 1, further comprising storing the particular content item at the first STB after transferring the particular content item from the second STB.

4. The method of claim 1, wherein the request for the particular content item is a request to record the particular content item, the method further comprising:
in response to transferring the particular content item from the second STB, storing, by the first STB, the particular content item.

5. The method of claim 1, wherein the request for the particular content item is a request to play the particular content item, and transferring, by the first STB, the particular content item from the second STB includes streaming the particular content item from the second STB over the first network for presentation on a display device associated with the first STB.

6. The method of claim 1, wherein the request for the particular content item includes a user command received by the first STB.

7. The method of claim 1, wherein the request to record the particular content item represents a scheduled recording of the particular content item.

8. The method of claim 1, wherein determining that the particular content item is available from the second STB includes determining that the second STB is currently recording the particular content item.

9. The method of claim 1, wherein determining that the particular content item is available from the second STB includes determining that the second STB has previously recorded the particular content item.

10. A non-transitory, computer-readable medium storing instructions operable when executed to cause at least one processor to perform operations comprising:
identifying, by a first set-top box (STB) of a plurality of STBs connected by a first network, a request for a particular content item available from a content server, wherein the first STB is connected to the content server by a second network different than the first network;
in response to identifying the request for the particular content item, determining, by the first STB, that the particular content item is available from a second STB of the plurality of STBs; and
in response to determining that the particular content item is available from the second STB, transferring, by the first STB, the particular content item from the second STB over the first network.

11. The computer-readable medium of claim 10, wherein determining that the particular content item is available from the second STB includes querying a content broker for STBs of the plurality of STBs from which the particular content item is available.

12. The computer-readable medium of claim 10, the operations further comprising storing the particular content item at the first STB after transferring the particular content item from the second STB.

13. The computer-readable medium of claim 10, wherein the request for the particular content item is a request to record the particular content item, the computer-readable medium further comprising:
in response to transferring the particular content item from the second STB, storing, by the first STB, the particular content item.

14. The computer-readable medium of claim 10, wherein the request for the particular content item is a request to play the particular content item, and transferring, by the first STB, the particular content item from the second STB includes streaming the particular content item from the second STB over the first network for presentation on a display device associated with the first STB.

15. The computer-readable medium of claim 10, wherein the request for the particular content item includes a user command received by the first STB.

16. The computer-readable medium of claim 10, wherein the request to record the particular content item represents a scheduled recording of the particular content item.

17. The computer-readable medium of claim 10, wherein determining that the particular content item is available from the second STB includes determining that the second STB is currently recording the particular content item.

18. The computer-readable medium of claim 10, wherein determining that the particular content item is available from the second STB includes determining that the second STB has previously recorded the particular content item.

19. A system comprising:
memory for storing data; and
one or more processors operable to perform operations comprising:
identifying, by a first set-top box (STB) of a plurality of STBs connected by a first network, a request for a particular content item available from a content server, wherein the first STB is connected to the content server by a second network different than the first network;
in response to identifying the request for the particular content item, determining, by the first STB, that the particular content item is available from a second STB of the plurality of STBs; and
in response to determining that the particular content item is available from the second STB, transferring, by the first STB, the particular content item from the second STB over the first network.

20. The system of claim 19, wherein determining that the particular content item is available from the second STB includes querying a content broker for STBs of the plurality of STBs from which the particular content item is available.