# Patent

## Title
Network video unit

## Abstract

Providing content to content receiving devices, such as digital video recorders, connected to a computer network through a content provider is described. According to one aspect, a server maintains a database correlating contact information to content receiving devices in its network. A user navigates to a web site of the content provider and selects a piece of content, which prompts the content provider to query the server for the contact information, and then transmit a request to download the piece of content to the content receiving device. The request can be a set of content identification information that automatically populates a content guide at the receiving device with an entry corresponding to the requested piece of content. This entry allows the user to confirm, interrupt, resume and cancel a download of the content as desired.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a continuation application of U.S. patent application Ser. No. 10/215,904 filed on Aug. 9, 2002, which issued on Oct. 28, 2014 as U.S. Pat. No. 8,875,198, and which is incorporated by reference herein in its entirety. U.S. patent application Ser. No. 10/215,904 claims priority under 35 U.S.C. §119(e) to U.S. Provisional Application No. 60/313,718, filed Aug. 19, 2001 and entitled “Network Video Unit,” which is incorporated by reference herein in its entirety.
This application is related to (i) application Ser. No. 10/124,064, filed on Apr. 16, 2002 and entitled “Resolving Recording Conflicts” which issued on Mar. 29, 2011 as U.S. Pat. No. 7,917,008, (ii) application Ser. No. 10/124,190, filed on Apr. 16, 2002 and entitled “Accessing Programs Using Networked Digital Video Recording Devices” (iii) application Ser. No. 10/124,506, filed on Apr. 16, 2002 and entitled “Improved Guide Content Management.” and (iv) application Ser. No. 10/124,583, filed on Apr. 16, 2002 and entitled “Methods and Apparatus for Sending Content between Client Devices” which issued on Jul. 3, 2012 as U.S. Pat. No. 8,214,422, each of which is incorporated by reference herein in its entirety.


BACKGROUND OF THE INVENTION
1. Field of the Invention
This application relates generally to digital content recording, and more particularly to systems, methods and apparatus in which a content provider transmits content to receiving terminals through a computer network.
2. Description of the Related Art
Technologies for distributing content such as videos and music through a computer network have begun to proliferate. One example of a system that allows users to access and provide audio content operates in an Internet environment and implements a directory file server. There, a user of a client device searches among titles found in a directory. The user selects discovered titles, and the server brokers the downloading of a selected title to the client device from another client device connected to the server. In this arrangement, the users of the storing and seeking devices are typically unknown to each other, connected only by the commonality that one user has a piece of content that the other discovered from the server directory.
One problem with this type of system is that a user must generally search a directory in order to obtain content. The source of the content typically remains anonymous to the receiving party, and thus reliability and quality of the content are generally unpredictable. Users therefore rely upon trial and error to acquire a satisfactory targeted piece of content. Finally, some directory file server based systems allow unfettered copying of content among anonymous parties. Accordingly, the directory file server based system for obtaining content remains undesirable in many aspects.
Conventional content distribution systems are also poorly defined and difficult to use. While a user may be very familiar with navigating among available broadcast content through a programming guide or the like, finding content through a computer network can be difficult. General searches for content using search engines or other conventional vehicles produces results that are of unknown origin. Additionally, search results and corresponding selections can be difficult for the user to manage. Finally, the quality of recordings, the legitimacy of the distribution network and the corresponding recordings, and other aspects of these systems may be lacking.
Furthermore, systems that allow content providers to distribute content to a group of users having similar devices have traditionally been either overly or inadequately restrictive as to the sources of content. Specifically, some systems allow any provider of a particular format to provide content to users, whereas others require users to use an inflexible, fixed set of providers.
What is needed is a flexible content distribution system that allows users to readily connect with a modifiable yet controllable set of content providers. Further needed is content distribution that coherently and conveniently conveys the availability of content on a user's device.
SUMMARY OF THE INVENTION
The present invention allows a content provider to provide content to content playing devices through a computer network in a manageable and coherent manner, and allows centralized control over the set of available content providers, with the ability to flexibly update the set of approved content providers.
Although a digital video recorder (DVR) is a preferred content playing device, the present invention is not necessarily limited to DVRs, and use of the term DVR for ease of description should not be interpreted as a limitation on application of the present invention.
The DVR can be used to browse and select video content from a web site, which is subsequently downloaded to the DVR. The downloaded content can be selected for viewing based upon selection from a guide that also displays traditionally available broadcast content. Alternatively, a user may hold an account or may otherwise interact with a content provider from which selections are made, upon which the selected content is downloaded to the DVR. For example, a user may operate a personal computer to navigate to a content provider website. They could then make content selections that would be downloaded to their DVR.
According to one aspect, a server maintains a database correlating contact information to DVRs in its network. An example of the contact information is the IP address and port through which the DVR can receive content. A DVR will have a unique identifier, and the server associates the contact information to the DVR using the identifier.
The identifier for a user's DVR is also provided to the content provider through a registration process or the like. A user can subsequently navigate to the content provider's web site, provide login information, and select a piece of content. The content provider uses the identifier that was obtained during registration to query the server for current contact information for the DVR. The server then examines its database and returns contact information specific to the particular DVR. The content provider and DVR then communicate to schedule a downloading of the piece of content, and the piece of content is transmitted to the DVR according to the determined schedule.
According to another aspect, the content provider transmits a set of content identification information that automatically populates a content guide at the receiving device with an entry corresponding to the requested piece of content. The entry can also be categorized under a label corresponding to the content provider, which allows efficient organization of the user's various available content. The entry also allows the user to confirm, interrupt, resume and cancel a download of the content as desired.
According to still another aspect, a server automatically updates numerous content receiving units to which it is connected with the labels of approved content providers and thereby manages the addition of new content providers and the corresponding content guide updates. Once a unit is updated, its content guide will reflect the new content provider in a specified category, and will allow the user to navigate among content available at the new content provider and select such content for downloading as described.



BRIEF DESCRIPTION OF THE DRAWINGS
These and other more detailed and specific features of embodiments of the present invention are more fully disclosed in the following specification, reference being had to the accompanying drawings, in which:
FIG. 1 is a block diagram illustrating an embodiment of a digital video recorder (DVR) configured to include content distribution management in accordance with the present invention.
FIG. 2 is a schematic diagram illustrating such a DVR connected in a home network environment.
FIGS. 3A-3B are schematic diagrams illustrating examples of systems in which content distribution management operates in accordance with the present invention.
FIG. 4 is a block diagram illustrating an embodiment of a DVR content distribution management module in accordance with the present invention.
FIG. 5 is a block diagram illustrating an embodiment of a VRS content distribution management module in accordance with the present invention.
FIG. 6 is a block diagram illustrating an embodiment of a CP content distribution management module in accordance with the present invention.
FIG. 7A is a flow diagram illustrating an embodiment of distributing a piece of content to a DVR through an online content provider.
FIG. 7B is a flow diagram illustrating an embodiment of distributing a piece of content to a DVR through an online content provider that invokes a content server to complete a download.
FIG. 8 is a flow diagram illustrating an embodiment of managing content providers and corresponding content distribution in accordance with the present invention.
FIGS. 9A-9B are flow diagrams illustrating an embodiment of a content guide having content distribution features in accordance with the present invention.



DETAILED DESCRIPTION OF THE INVENTION
In the following description, for purposes of explanation, numerous details are set forth, such as flowcharts and system configurations, in order to provide an understanding of one or more embodiments of the present invention. However, it is and will be apparent to one skilled in the art that these specific details are not required in order to practice the present invention. Thus, for example, although a DVR having particular features is described in connection with a preferred embodiment, the present invention is equally applicable to other devices and environments, including but not limited to any network enabled device.
The block diagram of FIG. 1 illustrates a DVR 100 configured to include content distribution management in accordance with the present invention. The DVR 100 includes an AV input module 102, CPU 104, memory 106, AV output module 108, data storage 110, modem 112 and network interface 114 interconnected by a conventional bus architecture. Generally, the CPU 104 executes instructions such as those stored in memory 108 to provide functionality including that provided by certain embodiments of the present invention. Additional memory such as ROM and/or EEPROM (not shown) may store instructions for boot up sequences, DVR functionality updates, or other information. The network interface 114 is conventional and preferably allows connection to an Ethernet based network. This connection may be used to connect to a home network and in turn a broadband connection to a WAN such as the Internet or any of various alternative broadband connections. In addition to traditional broadcast and other input AV signals, the broadband connection may also source content that is shown and recorded in accordance with the present invention. Although broadband is preferred for distribution of content, “dial-up” connections using the modem 112 and telephone line can also be used.
The user controls the operation of the DVR 100 through control signals initiated from the exterior of the DVR 100 housing through the panel interface 132, or through control signals originating from a remote control, which are received through the remote signals interface 134, in conventional fashion.
The AV input module 102 receives input through various conventional interfaces, including coaxial RF/Ant, S-Video, network interfaces, and others, which need not be shown for an understanding of this invention. The received signals can originate from standard NTSC broadcast, high definition (HDTV) broadcast, standard cable, digital cable, satellite, Internet, or other sources, with the AV input module 102 being configured to include appropriate conventional tuning and/or decoding functionality. The DVR 100 may also receive input from other intermediary devices, such as a set top box that receives one signal format and outputs an NTSC signal or some other conventional format.
The AV input module 102 also preferably includes one or more MPEG encoding modules that convert signals from a first format (e.g. analog NTSC format) into an MPEG format (e.g. MPEG 2, etc.) that may be stored in the memory 108 or data storage 110 medium such as a hard disk. Where necessary, an inbound signal may be converted to an intermediate format prior to MPEG encoding. For example, a digital signal may be intermediately converted to an NTSC signal that is ultimately MPEG encoded. The artisan will recognize the alternatives. Typically, content corresponding to the formatted data stored in the data storage medium 110 may be viewed immediately, or at a later time. Additional information may be stored in association with the MPEG data to manage and identify the stored programs.
The AV output module 108 further includes a graphics module 122, video decoder 124 and audio decoder 126. The video decoder 124 and audio decoder 126 are preferably MPEG decoders that can obtain the MPEG data stored in the data storage medium 110 and convert it to format compatible with the display device, typically the NTSC format that can be readily received by a conventional television set. The graphics module 122 receives various guide and control information and provides signals for corresponding displays, outputting them in a compatible format.
The DVR 100 processes guide information that describes and allows navigation among content receivable by a system (e.g. the broadcast system) at present or future times, as well as content that has already been captured by the DVR 100. Guides that display such information may generally be referred to as content guides. These content guides include channel guides and playback guides. A channel guide displays available content from which individual pieces of content may be selected for current or future recording and viewing. In a specific case, the channel guide lists numerous broadcast television programs, from which the user makes selections for recording. The playback guide displays content that is stored or immediately storable by the DVR 100. Other terminology may be used for the guides. For example, they may be referred to as programming guides. The term content guide is intended to cover all of these alternatives.
Content guides are variously navigable using conventional (e.g., remote) control signals, including those that provide directional navigation, such as by arrows or trackball, joystick or the like, and corresponding selection. In certain modes, selection of an entry is accomplished by merely navigating to the entry. In other modes, selection follows pressing a separate control button or the same control that was used for directional navigation. The various alternatives for navigating the content guide will be readily recognized by the ordinarily skilled artisan.
The DVR 100 may also be referred to as a Personal Video Recorder (PVR). One example of a DVR 100 configurable to incorporate embodiments of the present invention is the ReplayTV brand of DVRs provided by SONICblue Incorporated, a Santa Clara, Calif. company. A Replay Guide is an example of a playback guide implemented by ReplayTV DVRs.
Although certain modular components of a DVR 100 are shown in FIG. 1, the present invention also contemplates and encompasses units having different features. For example, some devices may omit features such as the telephone line modem, instead using alternative conduits to acquire guide data or other information used in practicing the present invention. Additionally, some devices may add features such as a conditional access module (CAM), such as one implementing smart card technology, which may work in conjunction with certain content providers or broadcasters to restrict access to content.
Additionally, although this embodiment and other embodiments of the present invention are described in connection with a DVR or PVR, the invention is equally applicable to other devices including but not limited to a set top box (STB), cable STB, satellite STB, or televisions containing modules with similar functionality.
The DVR memory 106 is configured to include conventional Internet browsing capabilities. For example, the browsing capabilities may be comparable to those provided by Internet Explorer, as provided by Microsoft, Inc. of Redmond Wash. The memory 106 is also configured to include an embodiment of a content distribution management module (CDMM) 140. The user operates the DVR 100 to browse content available from online content providers. In order to select content from a web site the user must first provide the content provider with information specific to their DVR 100, including a unique identifier known as the ISN (Internet Serial Number). For example, the user enters this information when they register with the content provider. The content provider stores the unique identifier for each user that registers and uses it to obtain ‘contact’ information such as the IP address and port of the specific DVR 100 when it wishes to schedule content for download. With the contact information, the content provider can communicate, to the DVR, information pertaining to content that it wishes to be downloaded. One way that the content provider obtains the contact information is to query a server having the information using the ISN, whereupon the contact information is returned. In this embodiment, the DVR 100 may periodically report its contact information to the server that maintains the contact information.
After the user's selection of a piece of content, the CDMM 140 receives a request to schedule the downloading of the piece of content to the DVR 100. The announcement of the available piece of content preferably identifies the content and indicates the amount of storage space that it will require. The CDMM 140 responds to the announcement by allocating storage space for the download and where appropriate scheduling the download. The CDMM 140 downloads the piece of content from a specified location and provides status feedback to the content provider through completion of the download.
The CDMM 140 also automatically populates the DVR 100 content guide with information about the selected piece of content once the user selects it. The populated content guide is preferably the same content guide that is used to display recorded broadcast programs and the like that are otherwise selectable and viewable through the DVR 100. A further preferred content guide includes concurrently displayed category and content areas. The category area displays a list of categories. Selection of a category updates the content area to list programs or other pieces of content pertaining to the category. Thus, selection of a “Sports” category updates the content area to display a list of sports programs available for viewing. Preferably a category corresponding to the content provider is provided and included in the list of categories. A preferred category label is the name of the content provider, but it can be a logo or other symbolic or alphanumeric representation as well. Automatic population of the guide provides an entry in the content guide that is displayed in the guide's content area when the “content provider” category is selected.
The DVR 100, configured to include the CDMM 140, preferably also allows various operations on an entry once it resides in the content guide, such as suspending or resuming a download of the piece of content, playing the piece of content for viewing, or deleting the piece of content from the content guide.
The CDMM 140 also includes instructions that allow the content guide categories to be updated through a network connection to a server. Thus, a server can maintain a list of approved content providers, and category labels for the approved content providers can be periodically downloaded to DVRs 100 that are in network communication with the server. Preferably, push or other conventional technologies are used to automatically update the DVR 100 content guides to include the new category label. This allows centralization of content provider approval, and is very user friendly, as the new category will simply appear in the user's guide without requiring the user to go through a complex set of operations to update the guide to include a newly approved provider.
In an alternative to the above, a DVR guide can be automatically populated with entries from which content can be selected. The entries may respectively appear under a series of particular content providers, and may also be otherwise organized, such as by genre and type. For example, if a user registers with a particular content provider, that content provider may provide the information about available downloads to the DVR automatically without requiring the DVR user to navigate to the content provider to browse a full listing of available titles.
In either alternative, when a piece of content is selected from the guide, the content provider preferably queries the server having the current contact information for the DVR, and then provides the DVR with information regarding the content to be downloaded. This information may include download priority preferences that the DVR uses to schedule the download of content. The DVR subsequently downloads the selected content and stores it for playback, with the guide preferably updating to indicate immediate availability.
The schematic diagram of FIG. 2 illustrates an example of a home network based system 200 in which embodiments of the present invention may operate. Various devices including a number of DVRs 216, 218, 236, 238 and PCs 220, 222, 240 communicate with a video replay server (VRS) 250 or each other using the wide area network. Home network system 210 is shown to include a broadband interface 212 and a router 214, through which two DVRs 216, 218 and two PCs 220, 222 connect to other devices on the wide area network, such as the VRS 250. Preferably, the wide area network is the Internet. The broadband interface 212 may be a conventional digital subscriber line (DSL) modem, cable modem, or any device providing an interface between the home network and a broadband connection, including wired, wireless and any alternative broadband connections. Additional equipment, such as conventional DSL Central Office equipment that interfaces standard twisted pair lines coming from the DSL modem and the Internet is also typically present but need not be shown for an understanding of the invention.
The router 214 acts as a firewall between the devices 216-222 within the home network 210 and other devices potentially connecting with those devices through the Internet. Logical ports 224a-d are assigned for certain Internet communications made between the devices 216-222 and other devices outside the home network 210. These logical ports act as a barrier to certain file transfers. Similar to home network 210, the other shown home network 230 includes a broadband interface 232 and router 234 through which client devices 236-240 may connect to the Internet, using logical ports 244a-c. 
The VRS 250 maintains contact information, including the network addresses and port information for devices. Preferably the DVRs periodically and automatically report their contact information to the ‘VRS 250. This allows online content providers to query the VRS 250 for such information, which is then used to complete content downloads. This feature is described further in connection with FIGS. 4-6, below.
FIGS. 3A-3B are schematic diagrams illustrating examples of systems 300a, 300b in which content distribution management operates in accordance with the present invention. Particularly, a DVR 100, VRS 310, and CP 330 are connected to a Wide Area Network such as the Internet. As described, a user operates the DVR 100 to browse content listings provided by the content provider (CP) 330. The user may select the content directly from a content guide on the DVR 100, or via a browser on the DVR 100 or other browser-enabled device such as a PC. The CP 330 receives a request for a piece of content, and then uses an identifier to query the VRS 310 for contact information relevant to the requesting DVR 100. The contact information is then used to report the availability of the piece of content to the DVR 100 and to schedule a transmission of the content, preferably via download, alternatively via streaming or other processes, to the DVR 100. The download may be directly from the CP 330 to the DVR 100, as shown in the system 300a of FIG. 3A, or through a separate content server (CS) 340, as shown in the system 300b of FIG. 3B. The DVR 100, CP 330 and VRS 310 respectively include content distribution management modules 400, 500, 600 that facilitate providing content in accordance with the present invention, as described further below, in connection with FIGS. 4-6.
FIG. 4 is a block diagram illustrating an embodiment of a DVR CDMM 400. The CDMM 400 includes a guide management module 402, an address management module 414 and a content transfer module 416.
Generally, the guide management module 402 provides content guides and corresponding displays, and identifies categories and content to be included in those guides. The guide module 404 provides the content guide format including the previously introduced content and category areas, as well as the functionality of navigating the various areas. The channel guide module 404 and the playback guide module 406 respectively provide the remainder of the channel and playback types of content guides. Particularly, the channel guide includes programs that are or will become available for recording, and the playback guide includes programs that have been recorded or have been selected for recording. The display diagrams of FIGS. 9A-B, described below, are examples of a content guide provided by the guide management module 402.
The categories module 410 retains the list of available categories. Preferably, a number of default and custom user categories are provided. Examples of default categories are Family, Kids, Movies, News, Sports, and TV Shows. The custom categories can be named by the user, or can be automatically provided, such as through VRS driven updates provided through a network or phone based modem connection. Among the custom category names are those of approved content providers. Of course, some previously approved content providers can appear among the original “default” category listings. The ordinarily skilled artisan will readily recognize the alternatives, including the number of overall and default categories. The categories module 410 also provides interfaces for introducing the names of new categories.
The content identification module 412 includes routines for identifying programs and providing corresponding interfaces. Preferably the content identification module identifies programs to be recorded and provides interfaces for assigning the recorded programs to a selected category. The user may navigate a channel guide to identify a program for recording or may navigate to the content provider to see a listing of programs. The content identification module 412 preferably invokes the browser to facilitate navigation to the web site of the online content provider. A conventional HTML based link that automatically navigates to an approved content provider may also be provided. These links can be provided in a screen that is separate from the content guides. Alternatively, the content provider label in a category listing in a Playback guide may be associated with an URL such that selecting the label automatically navigates to the content provider web site.
The address management module 414 maintains a unit identifier, network IP address and port information for the DVR 100 and includes instructions for periodically reporting the network address and port information to the VRS. The address management module 414 also includes routines for allowing the DVR 100 to communicate with and identify other DVRs and may also include an address book module (not shown) to display address book based information about other DVRs and their users.
Finally, the content transfer module 416 generally includes routines for transferring content and, particularly, receiving content from online content providers directly or through related fulfillment servers. The content transfer module 416 includes an acceptance module 418 having routines for responding to the indication of available content. The response includes an allocation of storage for the incoming content, which can be an examination of the space available on the hard disk, and a scheduling of a download where the content is coming from an online provider. The transfer module 420 has routines for actually transferring or receiving the content into the DVR 100. Particularly, when a user requests a piece of content from the content provider, the content provider responds by sending a set of information to update the user's content guide to include an entry for the requested content, and sends a transfer request that prompts automatic allocation and scheduling of a download if space is available. Conventional file transfer technologies such as the File Transfer Protocol (FTP), HyperText Transfer Protocol (HTTP) and others can be used to effectuate the transfer.
FIG. 5 illustrates an embodiment of a VRS CDMM 500 configured in accordance with the present invention. The VRS CDMM 500 includes a network address identification module 502 that identifies DVRs over which it has jurisdiction (e.g., those on its network segment or the like) and maintains contact information such as the network IP address and port information for the identified units. The network address identification module has routines for receiving reports from the DVRs regarding such information. The DVRs communicate with the VRS using HTTP or other conventional protocols, which prompts the VRS to update the contact information. Similarly, the CP can query the VRS through an HTTP connection to obtain contact information for a DVR whose user has requested a piece of content. Communications between the VRS, CP and DVR can also implement a secure protocol such as SSL.
The VRS CDMM 500 further includes a content provider management module 504 that includes a CP registration module 506, CP identification module 508 and CP reporting module 510. The CP registration module 506 includes instructions for allowing content providers to register and seek approval for providing content to DVRs associated with the VRS. Conventional menus are used to gather the information from a representative of the content provider. Various approval schemes can be implemented, ranging from automatic approval to one that requires a formal review process. The content provider will preferably provide a label under which their content will be categorized, which is referred to as CP_Name below. The CP identification module 508 retains a list of approved content providers and information about the approved content providers including a corresponding URL used to connect with a web site of the content provider and the content label. Periodically, the CP reporting module 510 updates the content provider list for its associated DVRs by reporting a new list of approved content providers and their corresponding labels and URLs. Conventional techniques, including a push technique wherein the DVRs actually implement an HTTP based request for the information, can be used to effectuate the update. The DVR CDMM includes routines to update the guide and other functionality of the DVR to adopt the new content providers, as previously described.
Although one embodiment of a VRS CDMM 500 is described, there may be alternatives, and equivalent functionality may be provided through more or less modules than those shown. Additionally, two modules shown on one “server” may equally reside on separate servers. For example, although the network address module and the content provider management module are shown to reside on the same server, they can be provided on separate servers and do not necessarily need to be part of the same system. This may in fact be desired, as the content provider management module might be desirably inaccessible by third parties, whereas the network address module should be accessible so that contact information can be distributed as needed.
The block diagram of FIG. 6 illustrates an embodiment of a CP CDMM 600 configured in accordance with the present invention. The CP CDMM 600 includes a registration module 602, a delivery information acquisition module 604, a content identification module 606 and a download fulfillment module 608. The registration module 602 includes instructions for interfacing with new users to obtain their registration information, approving such new users, and managing a database of approved users. For example, when a DVR user navigates to the CP web site corresponding to the hyperlink found in the DVR for the first time, they are provided with a registration interface that collects information about the user. Various types of information and corresponding information management strategies can be provided, but preferably the Internet Serial Number (ISN) and Serial Number (SN) found on a label on the outside of the DVR housing are collected in one embodiment. Preferably the ISN is the identifier to which the contact information maintained by the VRS is indexed. Requesting the SN provides added security, as it is typically known only by reading a label found on the back of the DVR unit. It may be preferable for security purposes to have the user manually enter information such as the SN. However, particularly where the user is accessing the content provider web site via the DVR, the DVR can also be programmed to automatically complete the required fields with the ISN and SN information, easing the information entry burden on the user.
A registered user can logon to the CP web site using conventional approaches, including those that automatically identify the user, such as through cookies or the like. The user then navigates among available content and select various pieces that they would like to download or otherwise transmit to their DVR. The content identification module 606 tracks the selected pieces of content and packages content identification information for such content using a format that is recognized by the DVR. Preferably, the content identification information conforms to a meta-data format that is also used to otherwise populate the DVR content guides, as is described further below.
The delivery information acquisition module 604 includes instructions for obtaining the network address and port information for a DVR requesting content. Preferably, the ISN for the DVR is reported to the VRS, which returns the current network address and port for the DVR.
Finally, the download fulfillment module 608 includes instructions that allow the DVR to schedule a download of a selected piece of content from the CP to the DVR. This may include receiving a request to download content from the DVR, communicating with the DVR to schedule the download, and transmitting the piece of content from the CP to the receiving DVR. The CP may store the piece of content and send it directly to the DVR using a conventional file transfer technique such as HTTP or FTP or may utilize a secure protocol such as SSL. Alternatively, the CP works in conjunction with a fulfillment site or content server (CS) (also known as Content Delivery Networks (CDN)) such as provided by speedera.com, akamai.com, or others.
The flow diagram of FIG. 7A illustrates an embodiment of providing a piece of content to a receiving device in accordance with the present invention. Particularly, an example of the interaction between the DVR, VRS and CP for sending content from the CP to the DVR is shown. The DVR transmits 702 its ISN and SN to the CP. The information is preferably provided during a registration process and the system can be configured to require input of the ISN and SN information only during registration. The CP then retains the ISN and SN information for the registered DVR, and retrieves the information as needed, such as upon completion of a conventional login procedure by the user (which could be through their DVR, or a separate browser-enabled PC, etc.). Thus, content distribution procedures may not require step 702, particularly after registration.
The DVR also periodically sends its contact information to the VRS. This contact information preferably includes the network address and port information usable to communicate with the DVR. The VRS maintains an association between the DVR (e.g., using the ISN) and its current contact information. At some point, the DVR transmits a request 704 for a piece of content to the CP. For example, the DVR user implements its browsing functionality to navigate among video programs available from the CP web site and selects one or more pieces of content through conventional interfaces. Alternatively, as mentioned above, the request for a piece of content may be originated by other devices, for a previously registered DVR. Specifically, a user can register their DVR, and then subsequently use a PC or other device to access the CP, login using the account information corresponding to the DVR, and make requests for content to be distributed to the DVR, even if they are away from home. Thus, the request 704 need not always be undertaken by the DVR.
After the request for a piece of content is received, the CP obtains contact information for the DVR by transmitting 706 the DVR ISN to the VRS, which queries its database indexing the, ISN to the relevant contact information. The contact information (e.g., IP address, port) is then transmitted 708 to the CP.
The CP next transmits 710 a request to download the piece of content to the DVR along with information that updates the content guide to reflect a new entry. This request can be referred to as a notification that the content is available for download. Preferably, the notification identifies the content provider, identifies the piece of content, and provides meta-data in a format that is recognized by the DVR content guide module. The notification can be conveyed using a conventional HTTP query to notify that the piece of content (e.g., a film) is available for download, with a response from the DVR confirming receipt of the notification, or a parsing or transfer error in conventional fashion. An example of the notification data includes administration data such as the version number of the data format, the unique content provider ID (CP_ID) for the content provider, an URL used for transaction status, the serial number of the receiving unit, a transaction ID, and the URL indicating the location of the content. The notification data also preferably includes meta data used to populate fields in the DVR content guide. An example of a format for the meta data includes the following fields: title=“[title]”, filedurationinseconds=“[value in seconds]”, episodetitle=“[name of episode]”, description=“[textual description of episode]”, actors=“[list of actors]”, director=“[director's name]”, yearmade=“[date]”. The various fields have corresponding values or information as indicated. Some or all of these pieces of information are used to populate corresponding areas of the receiving DVR content guide to allow identification and selection of the content corresponding to the entry. This is just an example and the ordinarily skilled artisan will recognize the alternatives.
Since the user has already requested the piece of content, the DVR automatically determines whether sufficient storage is available for the piece of content and allocates storage space to prepare for receipt of the piece of content. The DVR then communicates with the CP to schedule the download, and ultimately confirms 712 the scheduled download. Preferably the CP can accommodate a unilateral DVR request to schedule the download, but an exchange between the two can also be provided to determine the download schedule. Ultimately, the DVR downloads the piece of content 714 from the CP (or CS) using FTP, HTTP, SSL or other known protocols as described previously. An entry for the piece of content also automatically appears in the content guide in association with the content provider, as will be described further below in connection with FIGS. 9A-B.
The confirmation and the exchange that ultimately provides the download can be variously implemented. In a preferred example, the CP receives a response from the query indicating that the notification had been received successfully, then waits until it receives confirmation that the request has been validated, the required amount of disk space has been allocated, and the download has been scheduled. In processing the notification the DVR automatically queries a CGI (e.g. HTTP post) on the CP server using the content provider URL supplied in the notification, which is used to inform the CP regarding the status of the transaction. The query can provide as information the ISN, transaction ID (to track this particular transaction), percentage complete, and status of download (e.g., transaction processed, error, not enough disk space, invalid CP_ID, invalid serial number, download in progress, download complete, download failure), with a return from the CP indicating receipt of the transaction status. In a normal download, the DVR would periodically report that the download was in progress to the CP, with ultimate indication that the download was complete. The various errors and failures could also be reported, with any desired recovery protocol, such as a repeated attempt or the like.
The DVR preferably has autonomy over when the download is actually scheduled, and can thus prioritize other tasks and downloads. If no other downloads are currently in progress, the download can begin immediately. The file or files can also be downloaded in portions or chunks, downloading one portion at a time. There, each portion can be associated with an URL if desired.
Although the DVR can be used to navigate to the CP website and make content selections, upon registering a DVR a user may also use other devices to make the selections. For example, in registering their DVR, a user may be given a login name and password that allows them to login using any device having a browser (e.g., a PC). This information allows the CP to identify the user. As described previously, the CP will already have collected the ISN and SN information for the user's DVR. Although selections are made with such alternative devices, the content is still preferably scheduled and delivered to the registered DVR. This allows the user to conveniently select content while they are not able to directly use their DVR. Thus, for example, a user may use their PC at work to select content to be downloaded to their registered DVR. This could allow them to select content early so that it is available when they return home.
Another way that the user may select content is from a pre-loaded guide that contains a list of content available from one or more content providers. In this case, the user would not be accessing the CP website online, as the guide content would already reside on their DVR. Once the user makes a selection of a piece of content from the guide, the CP is automatically notified, and then the request is handled as though the user had selected the content via the web site as described above.
The flow diagram of FIG. 7B illustrates an alternative wherein the DVR user initially navigates among content available at the CP web site, with the download being fulfilled by a separate content server (CS). In this embodiment, steps 702-710 are the same as described in FIG. 7A above. The DVR receives the location (URL) and size (in bytes) of the content in the 710 [Download Request] message. If sufficient space on the disk can be allocated then the DVR sends the 712 [Confirm Download] and queues the content for download. When the DVR starts the download it requests chunks of the file using standard HTTP protocols and the location URL, from the CS, until the entire file has been downloaded (iterations of steps 716 and 718). The DVR reports 720 the status of the download to the CP so that the download can be monitored and logged for billing and the like upon completion. FIG. 7B represents one alternative. The ordinarily skilled artisan will recognize others.
FIG. 8 illustrates an embodiment of reporting approved content providers to content receiving devices through a computer network, in accord with the present invention. The CP initially requests 802 approval to become a new CP, such as by contacting the VRS through the Internet and completing an online registration form. The request can then be reviewed and, if acceptable, approved 804 by the VRS or corresponding entity, whereupon a guide entry corresponding to the CP is generated and maintained at the VRS. Preferably, the VRS provides a unique ID number for the CP (CP_ID) as well as a label for the CP, which will appear as a category in the DVR content guide. The label can be one that is entered by the CP during registration, so that the CP can control the label under which content will be available. Multiple CP labels can be associated to a single CP as well, if desired.
The VRS transmits 806 the ID number to the CP along with notice of the approval and other information useful in prepping content for distribution in the system. For example, the VRS may provide software and instructions that allows the CP to prepare content descriptions and automatically populate DVR content guides with content identification information once content is selected by a DVR user. The CP may also receive instructions regarding the preparation of content according to a particular format so that the distributed content will be readily recognized by the receiving DVRs. This may be in the form of software that is analogous to that used in the DVR for converting content into the format used by the DVR. Alternatively, pre-prepped content may be provided to approved CPs.
Periodically, the VRS also transmits 808 content provider updates to its associated DVRs. Preferably, the VRS transmits a new CP_Id and corresponding label CP_Name to the DVRs, which then update their content guides to include the new entries. Alternatively, the content provider can be added to a list from which the user may easily make selections in adding active categories to their content guide. In one embodiment, a “Tier 1” CP automatically appears in the guide, and “Tier 2” CPs can be added to the guide, by the user, by selection from a list of Tier 2 providers. Once the CP is set up as an approved provider, the user may request content 810, which causes the DVR content guide to be updated 812, and corresponding download scheduling 814 and transfer of the content 816 as described in connection with FIGS. 7A and 7B. After completion of the download is reported 818, the CP could transmit 820 information to the VRS to log and report the completed download, although this feature may preferably be omitted for privacy reasons.
The display diagrams of FIGS. 9A and 9B illustrate an example of a content guide that works in conjunction with content distribution as described above. More specifically, the content guide 900a is a playback guide (e.g., a Replay Guide) that displays content that has been recorded or has been selected for recording. The content guide 900a includes a header 902, a heads up display (HUD) 904, a categories area with several category listings 906a-e, and a content area with several listed programs 908a-f. 
The header area 902 displays a currently selected category. Here, the selected category is for an approved content provider, designated by the label “CP_Name”. A content provider maintains databases of content and makes them available for distribution to users, and is not necessarily the owner of the content. The content area lists the available programs in the selected category, including the shown entries 908a-f. While in the content area, the user navigates among the available programs using conventional remote control and display signals such as a cursor that moves in response to directional commands and that either automatically selects the underlying entry or does so in response to a selection signal (e.g., a conventional joystick device provides various directional commands and is pressed to “select” a currently highlighted area). The list of programs may exceed the number that can be shown in the content area. Downward cursor navigation beyond the lowermost entry 908f causes un-displayed entries to appear, unless the entry is the last in the category. The HUD 904 displays additional information regarding a currently selected entry. Here, it displays recording quality and other information about the current program for entry 908a, “Red Dog Rising.”
Navigation of the categories area allows selection of a new category and a corresponding update of the listed programs. This allows other types of programming to be previewed along with that selected or downloaded from the content provider. For example, FIG. 9A illustrates the alternatives “Movies” 906c, “Sitcoms” 906d, and “Sports” 906e, which each categorize a corresponding set of broadcast programming, and the alternative “Downloads” 906b categorizes content that is available or downloaded from other DVR users. The user navigates among the categories 906a-e to update the content area to show the corresponding programming. Additional categories beyond those shown may be provided, so the categories area 906a-e is scrollable to allow their display. Thus, new categories will appear when the cursor is navigated to the left of “CP_Name” 906a, or to the right of “Sports” 906e. 
As introduced above, the content guide is automatically populated with entries corresponding to entries selected from the content provider web site. Here the user has selected the pieces of content corresponding to entries 908a-f in the content area. As a basis for automatically populating the content guide, the content provider implements a meta data format that is recognized by the DVR, preferably the same meta data format used to display the other content available in the content guide. Additionally, the DVR has preferably been updated by the VRS to recognize the content provider, and to provide a unique guide entry corresponding to the content provider. As indicated above, a preferred meta data format includes the fields: title=“[tille]”, filedurationinseconds=“[value in seconds]”, episodetitle=“[name of episode]”, description=“[textual description of episode]”, actors=“[list of actors]”, director=“[director's name]”, yearmade=“[date]”, quality=“[quality tag (e.g. standard)].” The meta data format is recognized by and thus allows the unit to populate the entry in the content area, the HUD and other areas of the guide. Additionally, the CP_ID, provided in the notification regarding a download, is used to automatically categorize the content under the category corresponding to the content provider, with the CP_ID being mapped to the label appearing for the content provider in the content guide.
Selected content is scheduled for transfer to the DVR. FIG. 9B illustrates the content guide 900b updated to reflect the status of the transfer. Particularly, the short description for a program will be highlighted to visually reflect the status. For example, the entries 908a-c have been completely downloaded, and thus the entire display bar corresponding to their descriptions is highlighted. Additionally, the programs described as “Bowling Highlights” and “Dogs in Space” are respectively shown to have been partially downloaded, as indicated by the highlighted portions 912a, 914a and corresponding non-highlighted portion 912b, 914b. Preferably, the proportion of highlighting corresponds to the fractional amount of the piece of content that has been downloaded, and highlighting is in the form of a color that distinguishes “available” portions of content that have already been received from portions that have not yet been received.
The user can also navigate to entries in the content guide 900b and perform various playback and download management operations. For example, the user may highlight a program that has at least been partially transferred to the DVR and select various conventional playback operational commands. Additionally, the user can confirm a download that has been tentatively scheduled, interrupt a download in progress, resume an interrupted download, or cancel a download of the content as desired. These playback and download management operations are preferably facilitated by conventional pop up menus that overlay the content guide and display buttons corresponding to the operations. Thus, the user can easily manage the content that they have selected from the approved content provider.
Thus, embodiments for providing content have been described in accordance with the present invention. Although the present invention has been described in considerable detail with reference to certain embodiments thereof, the invention may be variously embodied without departing from the spirit or scope of the invention. Therefore, the following claims should not be limited to the description of the embodiments contained herein in any way.

## Claims

1. A method comprising:
receiving, by a content provider device, a request transmitted over a wide area network from a browser-enabled device separate from a content player device, wherein the request includes (i) a content selection, and (ii) a login name and password associated with the content player device;
transmitting, by the content provider device to a video replay server, an identifier that uniquely identifies the content player device, wherein the content provider device associates the unique identifier with the login name and password associated with the content player device;
receiving, by the content provider device, contact information transmitted over the wide area network from the video replay server in response to transmitting the identifier, wherein the contact information identifies a network address and port of the content player device; and
transmitting, by the content provider device to the network address and port of the content player device over the wide area network, content identified by the content selection.

2. The method of claim 1, wherein the content provider device maintains a database of approved users, wherein each approved user in the database is associated with a registered login name and a registered password and a unique identifier of a respective content player device,
and wherein the method further comprises:
determining, by the content provider device, that the login name and password included in the request and associated with the content player device are valid credentials for a given one of the approved users in the database; and
determining the identifier that uniquely identifies the content player device to be the unique identifier of the respective content player device associated with the given one of the approved users.

3. The method of claim 2, wherein the content provider device enables the approved users in the database to access an online website for selection of stored content,
and wherein receiving, by the content provider device, the request transmitted over the wide area network from the browser-enabled device separate from a content player device comprises receiving the request from the given one of the approved users by way of the browser-enabled device while the given one of the approved users is not accessing the online website.

4. The method of claim 2, wherein the content provider device enables the approved users in the database to access an online website for selection of stored content,
and wherein receiving, by the content provider device, the request transmitted over the wide area network from the browser-enabled device separate from the content player device comprises receiving the request from the given one of the approved users by way of the browser-enabled device while the given one of the approved users is accessing the online website.

5. The method of claim 1, further comprising:
prior to transmitting the content identified by the content selection, transmitting, by the content provider device to the content player device, a request to download content identified by the content selection.

6. The method of claim 5, wherein the request to download the content identified by the content selection includes a notification that the content identified by the content selection is available for download to the content player device.

7. The method of claim 1, wherein the identifier that uniquely identifies the content player device comprises an Internet Serial Number and a device Serial Number.

8. The method of claim 1, further comprising:
prior to receiving the request transmitted over the wide area network from the browser-enabled device separate from the content player device, registering, by the content provider device, the content player device with the content provider device.

9. A content provider device comprising:
a network interface;
a processor; and
memory storing processor instructions that, when executed by the processor, cause the content provider device to carry out operations including:
receiving a request transmitted over a wide area network from a browser-enabled device separate from a content player device, wherein the request includes (i) a content selection, and (ii) a login name and password associated with the content player device,
transmitting to a video replay server, an identifier that uniquely identifies the content player device, wherein the content provider device associates the unique identifier with the login name and password associated with the content player device,
receiving contact information transmitted over the wide area network from the video replay server in response to transmitting the identifier, wherein the contact information identifies a network address and port of the content player device, and
transmitting to the network address and port of the content player device over the wide area network, content identified by the content selection.

10. The content provider device of claim 9, wherein the content provider device maintains a database of approved users, wherein each approved user in the database is associated with a registered login name and a registered password and a unique identifier of a respective content player device,
and wherein the operations further include:
determining that the login name and password included in the request and associated with the content player device are valid credentials for a given one of the approved users in the database; and
determining the identifier that uniquely identifies the content player device to be the unique identifier of the respective content player device associated with the given one of the approved users.

11. The content provider device of claim 10, wherein the content provider device enables the approved users in the database to access an online website for selection of stored content,
and wherein receiving the request transmitted over the wide area network from the browser-enabled device separate from the content player device comprises receiving the request from the given one of the approved users by way of the browser-enabled device while the given one of the approved users is not accessing the online website.

12. The content provider device of claim 9, wherein the operations further include:
prior to transmitting the content identified by the content selection, transmitting to the content player device, a request to download content identified by the content selection,
wherein the request to download the content identified by the content selection includes a notification that the content identified by the content selection is available for download to the content player device.

13. The content provider device of claim 9, wherein the identifier that uniquely identifies the content player device comprises an Internet Serial Number and a device Serial Number.

14. The content provider device of claim 9, wherein the operations further include:
prior to receiving the request transmitted over the wide area network from the browser-enabled device separate from the content player device, registering the content player device with the content provider device.

15. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a processor of a content provider device, cause the content provider device to perform operations comprising:
receiving a request transmitted over a wide area network from a browser-enabled device separate from a content player device, wherein the request includes (i) a content selection, and (ii) a login name and password associated with the content player device;
transmitting to a video replay server, an identifier that uniquely identifies the content player device, wherein the content provider device associates the unique identifier with the login name and password associated with the content player device;
receiving contact information transmitted over the wide area network from the video replay server in response to transmitting the identifier, wherein the contact information identifies a network address and port of the content player device; and
transmitting to the network address and port of the content player device over the wide area network, content identified by the content selection.

16. The non-transitory computer-readable medium of claim 15, wherein the content provider device maintains a database of approved users, wherein each approved user in the database is associated with a registered login name and a registered password and a unique identifier of a respective content player device,
and wherein the operations further include:
determining that the login name and password included in the request and associated with the content player device are valid credentials for a given one of the approved users in the database; and
determining the identifier that uniquely identifies the content player device to be the unique identifier of the respective content player device associated with the given one of the approved users.

17. The non-transitory computer-readable medium of claim 16, wherein the content provider device enables the approved users in the database to access an online website for selection of stored content,
and wherein receiving the request transmitted over the wide area network from the browser-enabled device separate from the content player device comprises receiving the request from the given one of the approved users by way of the browser-enabled device while the given one of the approved users is not accessing the online website.

18. The non-transitory computer-readable medium of claim 15, wherein the operations further include:
prior to transmitting the content identified by the content selection, transmitting to the content player device, a request to download content identified by the content selection,
wherein the request to download the content identified by the content selection includes a notification that the content identified by the content selection is available for download to the content player device.

19. The non-transitory computer-readable medium of claim 15, wherein the identifier that uniquely identifies the content player device comprises an Internet Serial Number and a device Serial Number.

20. The non-transitory computer-readable medium of claim 15, wherein the operations further include:
prior to receiving the request transmitted over the wide area network from the browser-enabled device separate from the content player device, registering the content player device with the content provider device.