[go: up one dir, main page]

HK1156771A - Server-based program recording scheduling - Google Patents

Server-based program recording scheduling Download PDF

Info

Publication number
HK1156771A
HK1156771A HK11110791.7A HK11110791A HK1156771A HK 1156771 A HK1156771 A HK 1156771A HK 11110791 A HK11110791 A HK 11110791A HK 1156771 A HK1156771 A HK 1156771A
Authority
HK
Hong Kong
Prior art keywords
information
video recorder
digital video
schedule
program
Prior art date
Application number
HK11110791.7A
Other languages
Chinese (zh)
Other versions
HK1156771B (en
Inventor
詹姆斯.巴顿
Original Assignee
TiVo解决方案有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TiVo解决方案有限公司 filed Critical TiVo解决方案有限公司
Publication of HK1156771A publication Critical patent/HK1156771A/en
Publication of HK1156771B publication Critical patent/HK1156771B/en

Links

Description

Server-based program recording scheduling
Technical Field
In general, embodiments of the invention relate to Digital Video Recorders (DVRs). More particularly, embodiments of the present invention relate to techniques for scheduling and coordinating the recording of upcoming television programs using the processing power of a server that is remote from the DVR that actually records those programs.
Background
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Sophisticated, modern DVRs are capable of scheduling the recording of programs that are broadcast by television at some future time. If a DVR user wants to record all episodes of a series, the DVR user can instruct their DVR to obtain a "season pass" for the series. In response to such an indication, the DVR automatically determines, from Electronic Program Guide (EPG) data, a time at which the episode of the series will be aired in the future. Typically, whenever an episode of a selected series is about to be aired, the DVR automatically tunes to the channel on which the episode is going to be aired and records the episode on the DVR's hard drive. As long as the recorded episode remains on the DVR's hard drive, the DVR user can instruct the DVR to play back the episode to the user's television. Conveniently, this allows the DVR user to watch programs of interest to the DVR user at airtimes other than those of interest. The DVR user does not even need to know in advance the exact broadcast times of those programs that are to be broadcast.
As used herein, a "program" is any content, video and/or audio, that is broadcast via the display screen and/or speakers of a television. For example, a program may be an episode of a multi-episode series, a movie, a sporting event, or a news report, although the "program" listing may include more than these. When the DVR schedules a program for future recording, the DVR attempts to add the program to a task list that the DVR maintains in its own storage mechanism. Whenever a program on the DVR's task list is broadcast, the DVR automatically records that program.
Before the DVR adds a program to its task list, however, the DVR determines whether any portion of that program will be broadcast at the same time as any other program already on the task list. If a DVR can only record one program at a time (as is the case with many DVRs), and if any portion of a "new" program that the DVR attempts to add to its task list will be broadcast during the same broadcast time interval as another program already on the task list, then the two programs conflict with each other. Before a DVR can add a "new" program to its task list, the DVR needs to resolve conflicts between programs.
There may be multiple ways in which a DVR can resolve conflicts between programs. For example, when the DVR detects a conflict, the DVR may inform the DVR user that the conflicting programs cannot all be recorded because they will be broadcast in at least partially overlapping time intervals. The DVR may ask the DVR user to select one or the other of the conflicting programs. The DVR places (or maintains) the selected program on its task list. The DVR deletes non-selected programs from its task list (or does not add non-selected programs to its task list). If there are multiple episodes of the series to which no selected program belongs, the DVR may give the user the option to schedule the recording of all episodes of the series that do not conflict with programs already on the task list.
To provide this selection, the DVR may maintain a "priority list" that contains a number of "season tickets" that the DVR user has selected. Each "season pass" represents a series that the DVR user wishes the DVR to automatically record their episode. The "season tickets" in the "priority list" are maintained in rank order. If the recording of a program from one "season pass" conflicts with the recording of a program from another "season pass," the DVR places programs from higher level "season passes" on the DVR's task list and does not place programs from lower level "season passes" on the DVR's task list.
The DVR user may instruct the DVR to change the rank of the "season tickets" in its "priority list". Such a change can occur, for example, in response to the DVR user adding a new "season pass" to the "priority list". When the "season tickets" are rescaled, the DVR responsively re-determines which programs should be on the task list for whatever reason. The rescheduling rating of the "season pass" in the "priority list" will typically cause the DVR to delete some programs from the task list and add other programs to the task list. This is a computationally intensive task. If the DVR does not have a significant amount of processing resources, this task can take the DVR a significant amount of time, during which time the DVR is unable to perform some other task. However, if a DVR is constructed to have a significant amount of processing resources, the money costs of the DVR may increase significantly, making the DVR less attractive to potential DVR purchasers. Furthermore, if the DVR is part of a set-top box that performs many functions, the set-top box may only allow the DVR to partially utilize a small portion of the set-top box's processing resources.
Drawings
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1 is a block diagram illustrating an example of a system in which embodiments of the invention may be implemented;
FIG. 2 is a flow diagram illustrating an example of a technique for generating a task list of scheduled program recordings at a server on behalf of a DVR, according to an embodiment of the invention;
FIG. 3 is a block diagram illustrating an example of the internal structure and operation of a DVR, according to an embodiment of the invention;
fig. 4 is a block diagram illustrating a digital video recorder on which embodiments may be implemented.
Detailed Description
The invention describes a recording method and apparatus for scheduling programs to be shown. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
Here, the embodiments are described according to the following outline:
1.0 general overview
2.0DVR overview
3.0 scheduling recording of programs at a Server on behalf of a DVR
4.0 execution mechanisms-hardware overview
5.0 expansion and selection
1.0 general overview
The needs identified in the foregoing background, and other needs and objects that will become apparent for the following description, are achieved in the present invention. In one aspect, the invention includes a method by which a server remote from a DVR schedules recordings of upcoming programs on behalf of the DVR, such that the DVR saves the computational burden of scheduling those recordings.
According to one embodiment of the invention, the DVR sends, via the Internet, information to a server that is remote from the DVR that indicates that the DVR user has indicated a single program, a group of programs, and/or a multi-episode series that the DVR will record in the future. The information may also indicate the ratings of the programs and/or series in the group relative to each other; such ratings may have been previously specified by the DVR user and stored on the DVR's hard drive. In response to receiving the information from the DVR, the server determines a task list of programs that the DVR should record because those programs will be broadcast in the future. The task list indicates, among other information potentially, the date and time (a) the channels to which the DVR should tune and (b) the channels to which the DVR should tune to record the programs in the task list. After determining the task list for the DVR, the server sends the task list back to the DVR over the Internet. The DVR receives the task list from the server over the internet and stores the task list on the DVR's hard drive. When programs on the task list are aired, the DVR automatically records those programs on the date and time specified by the list and on the channel specified by the list. The DVR stores those programs on the DVR's hard drive for later viewing by the DVR user.
In one embodiment of the invention, when determining a task list for a DVR, the server determines whether two or more programs that the DVR user wishes to record will be broadcast within at least partially overlapping time intervals-in other words, the server determines whether there are conflicts in the broadcast of two or more such programs. In one embodiment of the invention, in response to determining that the broadcasts of two or more such programs conflict, the server attempts to find a non-conflicting set of future broadcasts of all (or as many as possible) of those programs using the EPG data. For example, if the broadcasts of two programs conflict, the server may attempt to find a later broadcast of one of the programs that can replace the broadcast of the program that conflicts with the broadcast of the other program (the programs will typically be broadcast multiple times on different dates and/or times, possibly on different channels). In such embodiments of the invention, if the server is able to find such a group, the server adds a non-conflicting playout of the programs in the group to the task list for the DVR. Alternatively, in such embodiments of the present invention, if the server cannot find a complete non-conflicting showing of a set of programs that the DVR user wishes to record, then for each set of program shows that cannot reconcile conflicts with one another, the server selects the showing of the highest ranked program in the set from the set based on the ranking information obtained from the DVR. The server adds the playout to the task list and ignores other playout s in the group. Alternatively, the server may instruct the DVR to ask the DVR user to select between the conflicting programs.
In one embodiment of the invention, the server builds the task list in such a way that programs that the DVR has recorded and stored on the DVR's hard drive can remain on the DVR's hard drive for as long as possible, or until an "expiration date" has elapsed that is associated with the recording of those programs. For example, to postpone the DVR's hard drive from becoming full so that at least one recorded program needs to be deleted to make room for the new recording of a particular program, the server may attempt to find a future showing of the particular program and add it to the task list, the particular program need not be the next showing, but will be shown after the expiration date of the already recorded program (the already recorded program is then deleted from the hard drive to make room for the recording of the particular program). By selecting a later playout of a particular program, the server can attempt to maximize the time that recordings of programs available for viewing remain on the DVR's hard drive — so that fewer recorded programs are deleted from the hard drive before the "expiration date" of those programs expires.
In one embodiment of the invention, a server as described above receives information over the Internet from a plurality of independent DVRs, which may be remote from the server and from each other. DVRs (DVRs from which the server receives such information) may be owned by different people and belong to different households. For each such DVR, the server receives information from the DVR that indicates a set of programs and/or multi-episode series that the DVR user has indicated the DVR will record in the future. The information may also indicate the ratings of the programs and/or series in the group relative to each other. For each DVR (the DVR from which the server receives such information), the server may determine a task list for that DVR; the server may determine different task lists for different DVRs. The server sends to each DVR a list of tasks that the server has determined for that DVR (e.g., in the manner described above). Those DVRs use the received task list to tune to the appropriate channel at the appropriate time to automatically record the programs that the users of those DVRs need to record. Thus, in one embodiment of the invention, the computing power of a single server may be utilized by multiple independent DVRs in a shared manner (e.g., by rotating).
As a result of the foregoing techniques, in one embodiment of the invention, DVRs can be constructed with fewer processing resources. This cheaper construction makes it possible to reduce the cost and price of the DVR, making the DVR more attractive to its potential purchasers. Instead, the server described above may be implemented as a more powerful computer with processing resources that allow the server to quickly perform scheduling tasks on behalf of the DVR.
In other aspects, embodiments of the invention include computer devices and computer-readable storage media configured to perform the foregoing techniques. For example, in one embodiment of the invention, a computer-readable medium stores code that instructs a server to perform the above-described operations of the server as described above. For further example, in one embodiment of the invention, a computer-readable medium stores code that instructs a DVR to interact with a server in the manner described above.
2.0DVR overview
FIG. 3 is a block diagram illustrating an example of the internal structure and operation of a DVR, according to an embodiment of the invention. In an embodiment, DVR 302 generally includes a number of components that are hosted by signal converter 354 and that are necessary to digitize and convert analog television signals into or accept digital data streams. An example of the internal structure and operation of a DVR is further described in U.S. Pat. No.6,233,389.
DVR 302 receives a broadcast signal from a cable television system, satellite receiver, etc. from an antenna via input 352A. Input 352A may include multiple tuning modules that allow multiple signals to be received and recorded simultaneously. For example, the Television input stream received by the input terminal 352A may be in the form of a National Television Standards Committee (National Television Standards Committee) compliant signal or a PAL compliant broadcast signal. Also for example, the Television input stream received by input 352A may be in Digital form, such as in the form of a Digital Satellite System (DSS) compliant signal, a Digital Broadcast Service (DBS) compliant signal, or an Advanced Television Standards Committee (ATSC) compliant signal. DBS, DSS, and ATSC are based on standards known as motion Picture Experts Group (MPEG-2) 2 and MPEG-2 transport. MPEG-2 transport is a standard for formatting a digital data stream from a television source transmitter so that a television receiver can parse the input stream to find programs in a multiplexed signal.
MPEG-2 transport multiplexing supports multiple programs in the same broadcast channel with multiple video audio feeds and private data. The input 352A tunes to a particular program in a channel, extracts a specified MPEG stream from the channel, and supplies the MPEG stream to the rest of the system. Analog television signals are encoded into a similar MPEG format using separate video and audio encoders so that the rest of the system does not know how the signal was acquired. Information may be modulated into the Vertical Blanking Interval (VBI) of an analog television signal in some standard manner; for example, the North American television Teletext Standard (NABTS) may be used to modulate information onto a particular line of an NTSC signal for which the Federal Communications Commission (FCC) grants another particular line for Closed Caption (CC) and Extended Data Services (EDS). Such signals are decoded by input 352A and passed to other modules as if the signals had been delivered via an MPEG-2 private data channel.
The recording module 360 records the incoming data stream by storing the digital data stream on at least one storage device labeled as a store 364A/364B designed to retain digital data stream segments. The storage 364A/364B may be one or more non-volatile storage devices (e.g., hard disk, solid state drive, USB external hard disk drive, USB external memory stick, USB external solid state drive, network access storage device, etc.) that may be internal 364A and/or external 364B. Signal converter 354 retrieves the segment of the data stream, converts the data stream to an analog signal, and then modulates the signal onto an RF carrier via output 352B, which is delivered to a standard television set via output 352B. Output 352B may optionally pass the digital signal to a television or video monitor. For example, DVR 302 may utilize a digital video interface port (DVI) for sending digital signals to a television via a DVI cable.
DVR 302 also includes a communication interface 362 through which DVR 302 communicates with network 305 via an ethernet, wireless network, modem, or other communication standard. In addition, DVR 302 may be integrated into a television system such that the aforementioned components are housed in a television set that is capable of performing the functions of each of the components of DVR 302.
In another embodiment, DVR 302 generally comprises a plurality of components necessary to receive, record, store, transmit, and playback digital data signals from a plurality of sources (e.g., PCs, DVRs, service providers, or content servers). DVR 302 is capable of transmitting digital data signals to another DVR or PC. DVR 302 may encode or decode the digital signal into multiple formats for playback, storage, or transmission via encoder 356A and decoder 356B. According to one embodiment of the invention, encoder 356A generates an MPEG stream. According to another embodiment of the present invention, encoder 356A produces streams that are encoded using different codecs. Decoder 356B decodes the stream encoded by encoder 356A or the stream stored in the received format using an appropriate decoder. DVR 302 is also capable of encrypting or decrypting the digital data signal using encryptor/decryptor 358 for storage, transmission, or playback of the digital data signal.
In one embodiment, DVR 302 communicates with a service provider that provides program guide data, graphical resources (e.g., branding icons and pictures), service information, software programs, advertisements, and other forms of data that enable DVR 302 to operate independently of the service provider to perform autonomous recording functions. Communication between the DVR 302 and the service provider utilizes a secure distribution architecture to transfer data between the DVR 302 and the service provider such that both service data and user privacy are protected.
3.0 scheduling recording of programs at a Server on behalf of a DVR
FIG. 1 is a block diagram illustrating an example of a system 100 in which embodiments of the invention may be implemented. System 100 includes server 102, Internet 104, DVRs 106A-N, and clients 108A-N. DVRs 106A-N may be located in different buildings from each other. Clients 108A-N may be located in different buildings from each other. Additionally or alternatively, one or more of the clients 108A-N may be mobile. DVRs 106A-N and clients 108A-N are located in a different building than server 102. DVRs 106A-N and clients 108A-N communicate with server 102 via internet 104 and/or some other combination of networks (e.g., local area network, wide area network, wireless network, telephone lines, etc.). In one embodiment of the invention, DVRs 106A-N and clients 108A-N communicate with each other by sending messages over Internet 104 according to Internet Protocol (IP) and Transmission Control Protocol (TCP). For example, such messages may be formatted as extensible markup language (XML). Such messages may be transmitted in the form of instant messages, for example. In one embodiment of the invention, DVRs 106A-N communicate with each other and server 102 in a secure manner such that external unauthorized parties cannot interpret communications between DVRs 106A-N and/or between DVRs 106A-N and server 102. Techniques by which DVRs can communicate with each other and servers in a secure manner are disclosed in U.S. patent application No.10/220,356 and U.S. patent application No.10/220,558, both of which are incorporated herein by reference in their entirety as if fully disclosed herein.
The clients 108A-N may be heterogeneous devices. For example, multiple ones of the clients 108A-N may be personal computers, laptop computers, cellular telephones, personal digital assistants, and/or other devices. A web browser application, such as a wisdom-oriented web Firefox browser (Mozilla Firefox), may be executed on one or more clients 108A-N. Such a web browser application may request and receive web pages from server 102 via the internet 104. In one embodiment of the invention, the server 102 provides the clients 108A-N with web pages that contain forms with fields in which users of the clients 108A-N can enter information to be submitted to the server 102. Such information may identify programs and/or multi-episode series that the user of the client 108A-N wishes the corresponding DVR106A-N to record. Each of DVRs 106A-N may be associated with a different identifier. Clients 108A-N may identify the DVRs to which those clients' communications relate via identifiers associated with those DVRs.
In one embodiment of the invention, each of DVRs 106A-N has a hard drive on which the DVR maintains a list of programs and/or multi-episode series that its user wishes the DVR to record automatically. Using the remote control, a user of any DVR106A-N may be able to select a program and/or multi-episode series that the user wishes to record from a menu presented by the DVR. In response to such a user selection, the DVR (through which the selection was made) adds the selected program and/or series to the DVR's list of desired recordings. In one embodiment of the invention, each of DVRs 106A-N maintains a separate list of desired recordings on the DVR's hard drive. However, in alternative embodiments of the invention, not every DVR106A-N may maintain the program listings on its hard drive. Rather, in an alternative embodiment of the invention, only server 102 maintains a desired program listing for each of DVRs 106A-N. For example, the server 102 may maintain the information in a database. In such an alternative embodiment of the invention, in response to a user of any DVR106A-N selecting a program to be scheduled for recording, that DVR sends only an identification (identity) of the selected program to server 102. In response to receiving the identification of the selected program, server 102 retrieves (fetch) a list of programs associated with the DVR (receives the program identification from the DVR), temporarily adds the identified program to the list, and calculates a task list for the DVR (as discussed in more detail below). If no conflict is detected between the temporarily scheduled recording of the identified program and other scheduled recordings indicated in the DVR's task list, server 102 permanently adds the scheduled recording of the identified program to the DVR's task list and sends an updated task list to the DVR. Alternatively, in such an alternative embodiment of the invention, if a conflict does exist, server 102 instructs the DVR to ask the user to select between the conflicting scheduled recordings. After the user selection, the DVR sends the user's selection to server 102, whereby server 102 updates the DVR's task list and sends the modified task list back to the DVR. In such an alternative embodiment of the invention, there is no desired list of programs stored on any DVR 106A-N. Techniques for arranging records are disclosed in U.S. patent application No.09/422,121, which is incorporated herein by reference in its entirety as if fully disclosed herein.
In one embodiment of the invention, server 102 maintains a separate list of desired recordings on the server's hard drive for each of DVRs 106A-N. In one embodiment of the invention, the clients 108A-N are able to interact with the server 102 via the Internet 104 to make changes to the list of desired records stored on the server 102. Periodically (e.g., every 15 minutes) and/or in response to a specified event (e.g., adding a new program to the DVR's list of desired recordings or deleting a program from the DVR's list of desired recordings), server 102 synchronizes with DVRs 106A-N (server 102 may synchronize with different DVRs 106A-N at different times). In one embodiment of the invention, in synchronizing with a particular DVR, server 102(a) receives a list of desired recordings stored on the particular DVR via internet 104, (b) merges the list with a corresponding list of desired recordings stored on server 102 (for the particular DVR), (c) stores the merged list of desired recordings on server 102, and (d) sends the merged list of desired recordings back to the particular DVR via internet 104. In response to receiving the merged wish-to-record list, the particular DVR stores the merged wish-to-record list on the DVR's hard drive. As a result of the synchronization, the list of desired recordings stored at server 102 and the particular DVR is the same. In one embodiment of the invention, whenever a change is made to the list of desired recordings on server 102 or on one of DVRs 106A-N, the entity on which the change was made sends an instant message to the entity on which the change was not made (e.g., the appropriate one of server 102 or DVRs 106A-N) indicating that the change has been made. An entity receiving such an instant message may automatically make changes to the version of its locally stored list of desired records. As described above, however, in alternative embodiments of the present invention, the desired list of programs for each of DVRs 106A-N is stored only at server 102 and not at DVRs 106A-N. In such an alternative embodiment of the present invention, no synchronization of the DVR-server with respect to the desired program listings (as described above) is performed.
In one embodiment of the invention, each list of desired records is ordered according to user priority specification and rank. Through DVRs 106A-N and/or clients 108A-N, a user may be able to change the ratings of programs and series on the list that are desired to be recorded such that one program and/or series has a higher or lower recording priority than other programs and/or series on the list that are desired to be recorded.
Periodically and/or in response to a specified event (e.g., a change made to the DVR's list of desired recordings), server 102 generates a separate task list for each of DVRs 106A-N. Based on the EPG data and the list of recordings required for a particular DVR, server 102 generates a list of tasks for the particular DVR. In one embodiment of the invention, server 102 synchronizes with a particular DVR in the manner described above before generating a task list for that particular DVR to ensure that the version of the list that the particular DVR wishes to record stored on server 102 is the same as the version stored on the particular DVR. However, in the alternative embodiment of the present invention described above, only server 102 stores a list of desired recordings for a particular DVR, and no such synchronization occurs. Server 102 generates a task list for a particular DVR in the manner described above. In one embodiment of the invention, the server 102 attempts to add the playout of all programs in the list of desired recordings and all known episodes of series (from EPG data) of a particular DVR to the task list of that particular DVR. In the case where the list that a specific DVR wishes to record represents a multi-episode series, the server 102 searches EPG data for all episodes belonging to the series and treats each of those episodes as an independent program in the list that wishes to record, in order to generate a task list.
In one embodiment of the invention, server 102 attempts to schedule the playout of programs in the task list of a particular DVR in a manner such that other programming that has been recorded and stored on the hard drive of the particular DVR will remain on the hard drive of the particular DVR and not be deleted or overwritten as long as possible before the expiration time of those recorded plays. In generating the task list for a particular DVR, server 102 uses the priority levels in the list of desired recordings for the particular DVR to resolve conflicts between programming occurring in at least partially overlapping time intervals.
As described above, in one embodiment of the present invention, for each scheduled program broadcast on the task list, the task list indicates the start and end dates and times of the record of the scheduled program broadcast, and the channel on which the scheduled program broadcast. The server 102 may gather such start and end dates and times from the EPG data acquired by the server 102 periodically and automatically from the EPG data provider for future programming.
After server 102 has generated a task list for a particular one of DVRs 106A-N, server 102 stores the task list on a local hard drive and also sends the task list to the particular DVR over internet 104. In one embodiment of the invention, server 102 maintains a persistent connection (e.g., a persistent TCP connection) with each of DVRs 106A-N at all times and communicates with DVRs 106A-N via these persistent connections. In one embodiment of the invention, these persistent connections are the same kind of "Instant messaging" connections used by "Instant messaging" applications (e.g., Yahoo Instant Messenger), and information is passed between the server 102 and the DVRs 106A-N via Instant messaging. In response to receiving the task list from server 102, a particular DVR of DVRs 106A-N stores the task list on a hard drive of the particular DVR. Thereafter, whenever the date and time for the scheduled program broadcast on the task list is to become the current date and time, the particular DVR tunes to the channel indicated in the task list for the scheduled program broadcast and begins recording the program broadcast, storing the program on the hard disk drive of the particular DVR. A particular DVR records from the indicated channel until the end date and time indicated for the broadcast of the scheduled program has come. While the embodiments of the present invention described above schedule the recording of televised content, alternative embodiments of the present invention may similarly encompass the scheduling of content that is accessible and viewable via the internet (such content may or may not be televised in a conventional manner). For example, in one embodiment of the invention, server 102 generates a task list of downloadable and/or streamable content through Amazon Un-Box and/or YouTube. In such embodiments of the invention, server 102 sends the list to the DVR. The task list may include a combination of television broadcast and internet downloadable/streamable content.
Thus, in one embodiment of the invention, DVRs 106A-N never generate task lists. In such embodiments of the invention, the task list for DVRs 106A-N is generated entirely by server 102 in the manner described above. Because DVRs 106A-N are not required to generate task lists in such embodiments of the present invention, DVRs 106A-N may be constructed to be less powerful and without expensive processing resources. A set-top box that may incorporate DVRs 106A-N may be able to contribute less processing resources and less processing time to a particular task of the DVR.
In one embodiment of the invention, one or more of DVRs 106A-N also function to the same capabilities as one of clients 108A-N. For example, if a list of desired programs is stored on server 102, the user of DVR106A may modify the list in the same manner as any web browser client application would obviously. In such a case, the user of DVR106A would request to view the list. In response, DVR106A will retrieve a copy of the list from server 102 and present the list to the user. The user will next modify the list via the user interface presented by DVR 106A. After the user has completed modifying the list, DVR106A sends the list back to server 102. Based on the modified list received from DVR106A, server 102 responsively generates a task list, after which server 102 sends the task list back to DVR 106A.
Fig. 2 is a flow diagram illustrating an example of a technique for generating a task list of scheduled program recordings at a server on behalf of a DVR, according to an embodiment of the invention. In one embodiment of the invention, at least some of the steps of the illustrated technique are performed by the server 102. In block 202, the server 102 receives information from the DVR over the internet that indicates that the DVR user has indicated a set of programs and/or multi-episode series that the DVR will record in the future. In one embodiment of the invention, the information may only indicate the identity of the single program that the DVR user has just instructed the DVR to record. In block 204, in response to receiving information from the DVR, the server determines a task list of programs that the DVR should record because those programs will be broadcast in the future. The task list indicates, among other information potentially, the (a) channels to which the DVR should tune and (b) the dates and times that the DVR should tune to those channels to record the programs in the task list. In block 206, after determining the task list for the DVR, the server sends the task list back to the DVR over the Internet. In block 208, the DVR receives the task list from the server over the Internet and stores the task list on the DVR's hard drive. When programs on the task list are aired, the DVR automatically records those programs on the date and time specified by the list and on the channel specified by the list. The DVR stores those programs on the DVR's hard drive for later viewing by the DVR user.
4.0 execution mechanisms-hardware overview
FIG. 4 is a block diagram that illustrates a computer system 400 upon which an embodiment of the invention may be implemented. Computer system 400 includes a bus 402 or other communication mechanism for communicating information, and a processor 404 coupled with bus 402 for processing information. Computer system 400 also includes a main memory 406, such as a Random Access Memory (RAM) or other dynamic storage device, coupled to bus 402 for storing information and instructions to be executed by processor 404. Main memory 406 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 404. Computer system 400 further includes a Read Only Memory (ROM)408 or other static storage device coupled to bus 402 for storing static information and instructions for processor 404. A storage device 410, such as a magnetic disk or optical disk, is provided and coupled to bus 402 for storing information and instructions.
Computer system 400 may be coupled via bus 402 to a display 412, such as a Cathode Ray Tube (CRT), for displaying information to a computer user. An input device 414, including alphanumeric and other keys, is coupled to bus 402 for communicating information and command selections to processor 404. Another type of user input device is cursor control 416, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 404 and for controlling cursor movement on display 412. The input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), which allows the device to specify positions in a plane.
The present invention is directed to the use of computer system 400 for selecting frames of a multi-frame video program for playback in accordance with a DVR selected trick play mode. According to one embodiment of the invention, computer system 400 selects frames of a multi-frame video program for playback in accordance with a DVR-selected trick play (trick play) mode in response to processor 404 executing one or more sequences of one or more instructions contained in main memory 406. Such instructions may be read into main memory 406 from another computer-readable medium, such as storage device 410. Execution of the sequences of instructions contained in main memory 406 causes processor 404 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 404 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 410. Volatile media includes dynamic memory, such as main memory 406. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 402. Transmission media can also take the form of acoustic or light waves, such as those generated during acoustic and infrared data communications.
Common forms of computer-readable media include, for example, a floppy disk (floppy disk), a flexible disk (flexible disk), hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with holes, a RAM, a PROM, an EPROM, a flash EPROM, or any other memory chip or cartridge.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 404 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 400 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 402. Bus 402 transfers data to main memory 406 and processor 404 retrieves instructions from main memory 406 and executes the instructions. The instructions received by main memory 406 may optionally be stored on storage device 410 either before or after execution by processor 404.
Computer system 400 also includes a communication interface 418 coupled to bus 402. Communication interface 418 provides a two-way data communication coupling to a network link 420, and network link 420 is connected to a local network 422. For example, communication interface 418 may be an Integrated Services Digital Network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 418 may be a Local Area Network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 418 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 420 typically provides data communication through one or more networks to other data devices. For example, network link 420 may provide a connection through local network 422 to a host computer 424 or to data equipment operated by an Internet Service Provider (ISP). ISP 426 in turn provides data communication services through the world wide packet switched data communication network now commonly referred to as internet 428. Local network 422 and internet 428 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 420 and through communication interface 418, which carry the digital data to and from computer system 400, are exemplary forms of carrier waves transporting the information.
Computer system 400 can send messages and receive data, including program code, through the network(s), network link 420 and communication interface 418. In the Internet example, a server 430 might transmit a requested code for an application program through Internet 428, ISP 426, local network 422 and communication interface 418.
The received code may be executed by processor 404 as it is received, and/or stored in storage device 410, or other non-volatile storage for later execution. In this manner, computer system 400 may obtain application code in the form of a carrier wave.
5.0 expansion and selection
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
The claims (modification according to treaty clause 19)
1. A method for scheduling a recording of a broadcasted program, the method comprising:
receiving first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium; and
sending said first schedule as a single entity to said first digital video recorder over a network;
wherein the first set of two or more programs includes at least one of: (a) a program to be broadcast via a television signal and (b) a program to be downloaded or streamed over a packet-switched network; and is
Wherein said first digital video recorder records programs in said first group on a storage mechanism contained in said first digital video recorder according to said first schedule as received by said first digital video recorder over a network.
2. The method of claim 1, wherein: the first digital video recorder does not determine the first schedule.
3. The method of claim 1, wherein: the step of determining the first schedule comprises:
for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
4. The method of claim 1, wherein: for each program identified in the first information, the first schedule identifies (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
5. The method of claim 1, further comprising:
receiving, over a network, second information from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder is recording;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
6. The method of claim 1, further comprising:
in response to receiving the first information, storing the first information on a computer-readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the change information, changing the first information, thereby producing changed first information; and
the changed first information is stored on a computer readable medium.
7. The method of claim 6, further comprising:
and sending the changed information to the first digital video recorder through the network.
8. The method of claim 1, wherein: the step of determining the first schedule further comprises:
determining that playout of two or more programs in the first group will occur within at least partially overlapping time intervals;
in response to determining that playout of two or more programs in the first set is to occur within an at least partially covered time interval, (a) for at least one of the two or more programs, determining a particular playout, the particular playout occurring within a time interval that does not overlap with any other playout of the two or more programs, and (b) adding the particular playout to the first schedule.
9. The method of claim 1, wherein: the step of determining the first schedule further comprises:
determining that playout of two or more programs in the first group will occur within at least partially overlapping time intervals;
determining all of the two or more programs that cannot be simultaneously recorded in their entirety due to an insufficient number of physical signal inputs;
in response to determining that playout of two or more programs in the first set is to occur within at least partially overlapping time intervals and that all of the two or more programs are not simultaneously recordable in their entirety, (a) determining a particular program of the two or more programs, the particular program being associated with a highest priority, the highest priority being the highest priority of the priorities associated with the two or more programs, and (b) adding the particular playout of the particular program to the first schedule without adding a playout that conflicts with the particular playout to the first schedule.
10. The method of claim 1, wherein: the step of determining the first schedule further comprises:
selecting a particular broadcast from a plurality of broadcasts of a particular program in the first set, the recording of the particular broadcast allowing at least one program already stored on the first digital video recorder to remain stored on the first digital video recorder for a longer period of time if an earlier broadcast of the particular program is to be recorded on the first digital video recorder; and
adding the particular playout to the first schedule.
11. A Digital Video Recorder (DVR), said digital video recorder configured to:
receiving user input indicating two or more programs that a DVR user wishes a DVR to record;
transmitting a list identifying the two or more programs to a server over a network;
receiving, over a network, from a server, an arrangement generated by the server based on the list; and
automatically recording the broadcast of the program identified in the schedule;
wherein the DVR does not generate the schedule.
12. The DVR of claim 11, wherein: the DVR is configured to automatically record the playout of the programs identified in the schedule by recording the playout occurring at the dates and times specified in the schedule and the playout of the channels specified in the schedule, wherein the DVR is not configured to determine the playout dates and times of the two or more programs other than the schedule generated by the reference server, and wherein the DVR is not configured to determine the channels on which the two or more programs will be played other than the schedule generated by the reference server.
13. The DVR of claim 11, wherein: the DVR is further configured to:
storing an initial version of the list on a computer-readable medium in a DVR;
receiving, over a network, a modified version of the list from a server that was generated by the server based on the initial version of the list; and
storing a modified version of the list on a computer-readable medium;
wherein the modified version is different from the original version.
14. The DVR of claim 11, wherein: the DVR is further configured to:
receiving additional user input indicating a change to the list; and
sending information indicating the change to the list to a server over a network.
15. A server, the server configured to:
receiving first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium in a server; and
sending said first schedule as a single entity to said first digital video recorder over a network.
16. The server of claim 15, wherein: the server is further configured to:
for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
17. The server of claim 15, wherein: the server is further configured to:
receiving, over a network, second information from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder is recording;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
18. The server of claim 15, wherein: the server is further configured to:
in response to receiving the first information from the first digital video recorder, storing the first information on a computer readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the first information, changing the first information, thereby producing changed first information;
storing the changed first information on a computer-readable medium;
generating a modified schedule based on the changed first information;
transmitting the modified schedule to the first digital video recorder over a network.
19. The server of claim 15, wherein: the server is configured to generate the first schedule on behalf of the first digital video recorder, thereby relieving the first digital video recorder of generating the first schedule.
20. The server of claim 15, wherein: the server is configured to synchronize a first version of the program listing on the server with a second version of the program listing stored on the first digital video server, wherein the first version of the program listing identifies the first set of two or more programs, and wherein the second version is different from the first version.
21. A method, comprising:
receiving, at a server, first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium in a server; and
sending said first schedule as a single entity to said first digital video recorder over a network.
22. The method of claim 21, further comprising:
for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
23. The method of claim 21, further comprising:
receiving, at a server, second information over a network from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder records;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
24. The method of claim 21, further comprising:
in response to receiving the first information from the first digital video recorder, storing the first information on a computer readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the first information, changing the first information, thereby producing changed first information;
storing the changed first information on a computer-readable medium;
generating a modified schedule based on the changed first information;
transmitting the modified schedule to the first digital video recorder over a network.
25. The method of claim 21, further comprising:
at the server, the first schedule is generated on behalf of the first digital video recorder, thereby relieving the first digital video recorder of generating the first schedule.
26. The method of claim 21, further comprising:
at the server, synchronizing a first version of the program on the server with a second version of the program listing stored on the first digital video server, wherein the first version of the program listing identifies the first set of two or more programs, and wherein the second version is different from the first version.
27. A volatile or non-volatile computer storage medium storing instructions for scheduling a recording of a broadcast program, characterized by: when executed by one or more processors, the instructions cause the one or more processors to perform the steps of:
receiving first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium; and
sending said first schedule as a single entity to said first digital video recorder over a network;
wherein the first set of two or more programs includes at least one of: (a) a program to be broadcast via a television signal and (b) a program to be downloaded or streamed over a packet-switched network; and is
Wherein said first digital video recorder records programs in said first group on a storage mechanism contained in said first digital video recorder according to said first schedule as received by said first digital video recorder over a network.
28. The computer storage medium of claim 27, wherein: the first digital video recorder does not determine the first schedule.
29. The computer storage medium of claim 27, wherein: the step of determining the first schedule comprises: for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
30. The computer storage medium of claim 27, wherein: for each program identified in the first information, the first schedule identifies (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
31. The computer storage medium of claim 27, wherein: the steps further include:
receiving, over a network, second information from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder is recording;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
32. The computer storage medium of claim 27, wherein: the steps further include:
in response to receiving the first information, storing the first information on a computer-readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the change information, changing the first information, thereby producing changed first information; and
the changed first information is stored on a computer readable medium.
33. The computer storage medium of claim 32, wherein: the steps further include:
and sending the changed information to the first digital video recorder through the network.
34. The computer storage medium of claim 27, wherein: the step of determining the first schedule further comprises:
determining that playout of two or more programs in the first group will occur within at least partially overlapping time intervals;
in response to determining that playout of two or more programs in the first set is to occur within an at least partially covered time interval, (a) determining, for at least one of the two or more programs, a particular playout, the particular playout occurring within a time interval that does not overlap with any other playout of the two or more programs, and (b) adding the particular playout to the first schedule.
35. The computer storage medium of claim 27, wherein: the step of determining the first schedule further comprises:
determining that playout of two or more programs in the first group will occur within at least partially overlapping time intervals;
determining all of the two or more programs that cannot be simultaneously recorded in their entirety due to an insufficient number of physical signal inputs;
in response to determining that playout of two or more programs in the first set is to occur within at least partially overlapping time intervals and that all of the two or more programs are not simultaneously recordable in their entirety, (a) determining a particular program of the two or more programs, the particular program being associated with a highest priority, the highest priority being the highest priority of the priorities associated with the two or more programs, and (b) adding the particular playout of the particular program to the first schedule without adding a playout that conflicts with the particular playout to the first schedule.
36. The computer storage medium of claim 27, wherein: the step of determining the first schedule further comprises:
selecting a particular broadcast from a plurality of broadcasts of a particular program in the first set, the recording of the particular broadcast allowing at least one program already stored on the first digital video recorder to remain stored on the first digital video recorder for a longer period of time if an earlier broadcast of the particular program is to be recorded on the first digital video recorder; and
adding the particular playout to the first schedule.
37. A volatile or non-volatile computer storage medium storing instructions that, when processed by one or more processors, cause the one or more processors to perform the steps of:
receiving, at a server, first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium in a server; and
sending said first schedule as a single entity to said first digital video recorder over a network.
38. The method of claim 21, further comprising:
for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
39. The computer storage medium of claim 37, wherein: the steps further include:
receiving, at a server, second information over a network from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder records;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
40. The computer storage medium of claim 37, wherein: the steps further include:
in response to receiving the first information from the first digital video recorder, storing the first information on a computer readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the first information, changing the first information, thereby producing changed first information;
storing the changed first information on a computer-readable medium;
generating a modified schedule based on the changed first information;
transmitting the modified schedule to the first digital video recorder over a network.
41. The computer storage medium of claim 37, wherein: the steps further include:
at the server, the first schedule is generated on behalf of the first digital video recorder, thereby relieving the first digital video recorder of generating the first schedule.
42. The computer storage medium of claim 37, wherein: the steps further include:
at the server, synchronizing a first version of the program listing on the server with a second version of the program listing stored on the first digital video server, wherein the first version of the program listing identifies the first set of two or more programs, and wherein the second version is different from the first version.
43. A method for scheduling recordings, the method comprising:
a server that receives information from a digital video recorder over a network, the information identifying a program that a user of the digital video recorder has indicated recording by the video recorder;
based on a recording schedule, the server determining whether recording of a program will conflict with recording of other programs indicated in the recording schedule, the recording schedule being associated with a digital video recorder and the recording schedule being stored only at the server;
in response to determining that the recording of the program will conflict with the recording of other programs indicated in the recording schedule, the server (a) instructs the DVR to ask the user to select between the recorded program and other programs that were previously scheduled to be recorded, (b) receives a selection from the DVR, (c) updates the recording schedule based on the selection, and (d) sends the recording schedule to the DVR.
44. A volatile or non-volatile computer storage medium storing instructions for scheduling recordings, the computer storage medium comprising: when processed by one or more processors, the instructions cause the one or more processors to perform the steps of:
receiving, at a server, information from a digital video recorder over a network, the information identifying a program that a user of the digital video recorder has indicated recording by the video recorder;
at the server, determining whether recording of a program will conflict with recording of other programs indicated in the recording schedule based on a recording schedule, the recording schedule being associated with the digital video recorder and the recording schedule being stored only at the server;
in response to determining that the recording of the program will conflict with the recording of other programs indicated in the recording schedule, (a) instructing the DVR to ask the user to select between the recorded program and other programs that were previously scheduled to be recorded, (b) receiving a selection from the DVR, (c) updating the recording schedule based on the selection, and (d) sending the recording schedule to the DVR.

Claims (44)

1. A method for scheduling a recording of a broadcasted program, the method comprising:
receiving first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium; and
sending said first schedule as a single entity to said first digital video recorder over a network;
wherein the first set of two or more programs includes at least one of: (a) a program to be broadcast via a television signal and (b) a program to be downloaded or streamed over a packet-switched network.
2. The method of claim 1, wherein: the first digital video recorder does not determine the first schedule.
3. The method of claim 1, wherein: the step of determining the first schedule comprises:
for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
4. The method of claim 1, wherein: for each program identified in the first information, the first schedule identifies (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
5. The method of claim 1, further comprising:
receiving, over a network, second information from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder is recording;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
6. The method of claim 1, further comprising:
in response to receiving the first information, storing the first information on a computer-readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the change information, changing the first information, thereby producing changed first information; and
the changed first information is stored on a computer readable medium.
7. The method of claim 6, further comprising:
and sending the changed information to the first digital video recorder through the network.
8. The method of claim 1, wherein: the step of determining the first schedule further comprises:
determining that playout of two or more programs in the first group will occur within at least partially overlapping time intervals;
in response to determining that playout of two or more programs in the first set is to occur within an at least partially covered time interval, (a) for at least one of the two or more programs, determining a particular playout, the particular playout occurring within a time interval that does not overlap with any other playout of the two or more programs, and (b) adding the particular playout to the first schedule.
9. The method of claim 1, wherein: the step of determining the first schedule further comprises:
determining that playout of two or more programs in the first group will occur within at least partially overlapping time intervals;
determining all of the two or more programs that cannot be simultaneously recorded in their entirety due to an insufficient number of physical signal inputs;
in response to determining that playout of two or more programs in the first set is to occur within at least partially overlapping time intervals and that all of the two or more programs are not simultaneously recordable in their entirety, (a) determining a particular program of the two or more programs, the particular program being associated with a highest priority, the highest priority being the highest priority of the priorities associated with the two or more programs, and (b) adding the particular playout of the particular program to the first schedule without adding a playout that conflicts with the particular playout to the first schedule.
10. The method of claim 1, wherein: the step of determining the first schedule further comprises:
selecting a particular broadcast from a plurality of broadcasts of a particular program in the first set, the recording of the particular broadcast allowing at least one program already stored on the first digital video recorder to remain stored on the first digital video recorder for a longer period of time if an earlier broadcast of the particular program is to be recorded on the first digital video recorder; and
adding the particular playout to the first schedule.
11. A Digital Video Recorder (DVR), said digital video recorder configured to:
receiving user input indicating two or more programs that a DVR user wishes a DVR to record;
transmitting a list identifying the two or more programs to a server over a network;
receiving, over a network, from a server, an arrangement generated by the server based on the list; and
automatically recording the broadcast of the program identified in the schedule;
wherein the DVR does not generate the schedule.
12. The DVR of claim 11, wherein: the DVR is configured to automatically record the playout of the programs identified in the schedule by recording the playout occurring at the dates and times specified in the schedule and the playout of the channels specified in the schedule, wherein the DVR is not configured to determine the playout dates and times of the two or more programs other than the schedule generated by the reference server, and wherein the DVR is not configured to determine the channels on which the two or more programs will be played other than the schedule generated by the reference server.
13. The DVR of claim 11, wherein: the DVR is further configured to:
storing an initial version of the list on a computer-readable medium in a DVR;
receiving, over a network, a modified version of the list from a server that was generated by the server based on the initial version of the list; and
storing a modified version of the list on a computer-readable medium;
wherein the modified version is different from the original version.
14. The DVR of claim 11, wherein: the DVR is further configured to:
receiving additional user input indicating a change to the list; and
sending information indicating the change to the list to a server over a network.
15. A server, the server configured to:
receiving first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium in a server; and
sending said first schedule as a single entity to said first digital video recorder over a network.
16. The server of claim 15, wherein: the server is further configured to:
for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
17. The server of claim 15, wherein: the server is further configured to:
receiving, over a network, second information from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder is recording;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
18. The server of claim 15, wherein: the server is further configured to:
in response to receiving the first information from the first digital video recorder, storing the first information on a computer readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the first information, changing the first information, thereby producing changed first information;
storing the changed first information on a computer-readable medium;
generating a modified schedule based on the changed first information;
transmitting the modified schedule to the first digital video recorder over a network.
19. The server of claim 15, wherein: the server is configured to generate the first schedule on behalf of the first digital video recorder, thereby relieving the first digital video recorder of generating the first schedule.
20. The server of claim 15, wherein: the server is configured to synchronize a first version of the program listing on the server with a second version of the program listing stored on the first digital video server, wherein the first version of the program listing identifies the first set of two or more programs, and wherein the second version is different from the first version.
21. A method, comprising:
receiving, at a server, first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium in a server; and
sending said first schedule as a single entity to said first digital video recorder over a network.
22. The method of claim 21, further comprising:
for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
23. The method of claim 21, further comprising:
receiving, at a server, second information over a network from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder records;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
24. The method of claim 21, further comprising:
in response to receiving the first information from the first digital video recorder, storing the first information on a computer readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the first information, changing the first information, thereby producing changed first information;
storing the changed first information on a computer-readable medium;
generating a modified schedule based on the changed first information;
transmitting the modified schedule to the first digital video recorder over a network.
25. The method of claim 21, further comprising:
at the server, the first schedule is generated on behalf of the first digital video recorder, thereby relieving the first digital video recorder of generating the first schedule.
26. The method of claim 21, further comprising:
at the server, synchronizing a first version of the program on the server with a second version of the program listing stored on the first digital video server, wherein the first version of the program listing identifies the first set of two or more programs, and wherein the second version is different from the first version.
27. A volatile or non-volatile computer storage medium storing instructions for scheduling a recording of a broadcast program, characterized by: when executed by one or more processors, the instructions cause the one or more processors to perform the steps of:
receiving first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium; and
sending said first schedule as a single entity to said first digital video recorder over a network;
wherein the first set of two or more programs includes at least one of: (a) a program to be broadcast via a television signal and (b) a program to be downloaded or streamed over a packet-switched network.
28. The computer storage medium of claim 27, wherein: the first digital video recorder does not determine the first schedule.
29. The computer storage medium of claim 27, wherein: the step of determining the first schedule comprises: for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
30. The computer storage medium of claim 27, wherein: for each program identified in the first information, the first schedule identifies (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
31. The computer storage medium of claim 27, wherein: the steps further include:
receiving, over a network, second information from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder is recording;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
32. The computer storage medium of claim 27, wherein: the steps further include:
in response to receiving the first information, storing the first information on a computer-readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the change information, changing the first information, thereby producing changed first information; and
the changed first information is stored on a computer readable medium.
33. The computer storage medium of claim 32, wherein: the steps further include:
and sending the changed information to the first digital video recorder through the network.
34. The computer storage medium of claim 27, wherein: the step of determining the first schedule further comprises:
determining that playout of two or more programs in the first group will occur within at least partially overlapping time intervals;
in response to determining that playout of two or more programs in the first set is to occur within an at least partially covered time interval, (a) determining, for at least one of the two or more programs, a particular playout, the particular playout occurring within a time interval that does not overlap with any other playout of the two or more programs, and (b) adding the particular playout to the first schedule.
35. The computer storage medium of claim 27, wherein: the step of determining the first schedule further comprises:
determining that playout of two or more programs in the first group will occur within at least partially overlapping time intervals;
determining all of the two or more programs that cannot be simultaneously recorded in their entirety due to an insufficient number of physical signal inputs;
in response to determining that playout of two or more programs in the first set is to occur within at least partially overlapping time intervals and that all of the two or more programs are not simultaneously recordable in their entirety, (a) determining a particular program of the two or more programs, the particular program being associated with a highest priority, the highest priority being the highest priority of the priorities associated with the two or more programs, and (b) adding the particular playout of the particular program to the first schedule without adding a playout that conflicts with the particular playout to the first schedule.
36. The computer storage medium of claim 27, wherein: the step of determining the first schedule further comprises:
selecting a particular broadcast from a plurality of broadcasts of a particular program in the first set, the recording of the particular broadcast allowing at least one program already stored on the first digital video recorder to remain stored on the first digital video recorder for a longer period of time if an earlier broadcast of the particular program is to be recorded on the first digital video recorder; and
adding the particular playout to the first schedule.
37. A volatile or non-volatile computer storage medium storing instructions that, when processed by one or more processors, cause the one or more processors to perform the steps of:
receiving, at a server, first information from a first digital video recorder over a network, the first information identifying a first set of two or more programs that a user of the first digital video recorder has indicated are recorded by the first video recorder;
determining a first schedule for recording a playout of at least two programs of the first set of two or more programs based on the first information;
storing the first arrangement on a computer readable medium in a server; and
sending said first schedule as a single entity to said first digital video recorder over a network.
38. The method of claim 21, further comprising:
for each program identified in the first information, determining (a) a date on which the broadcast of the program will begin, (b) a time at which the broadcast of the program will begin, and (c) a channel on which the broadcast of the program will occur.
39. The computer storage medium of claim 37, wherein: the steps further include:
receiving, at a server, second information over a network from a second digital video recorder that is independent of the first digital video recorder, the second information identifying a second set of two or more programs that a user of the second digital video recorder has indicated the second digital video recorder records;
determining a second schedule for recording a playout of at least one program of the second set of two or more programs based on the second information;
storing the second arrangement on a computer readable medium; and
transmitting the second schedule to the second digital video recorder over a network.
40. The computer storage medium of claim 37, wherein: the steps further include:
in response to receiving the first information from the first digital video recorder, storing the first information on a computer readable medium;
receiving change information over a network from a device other than the first digital video recorder, the change information indicating a change that a user of the first digital video recorder wishes to make to the first information;
in response to receiving the first information, changing the first information, thereby producing changed first information;
storing the changed first information on a computer-readable medium;
generating a modified schedule based on the changed first information;
transmitting the modified schedule to the first digital video recorder over a network.
41. The computer storage medium of claim 37, wherein: the steps further include:
at the server, the first schedule is generated on behalf of the first digital video recorder, thereby relieving the first digital video recorder of generating the first schedule.
42. The computer storage medium of claim 37, wherein: the steps further include:
at the server, synchronizing a first version of the program listing on the server with a second version of the program listing stored on the first digital video server, wherein the first version of the program listing identifies the first set of two or more programs, and wherein the second version is different from the first version.
43. A method for scheduling recordings, the method comprising:
a server that receives information from a digital video recorder over a network, the information identifying a program that a user of the digital video recorder has indicated recording by the video recorder;
based on a recording schedule, the server determining whether recording of a program will conflict with recording of other programs indicated in the recording schedule, the recording schedule being associated with a digital video recorder and the recording schedule being stored only at the server;
in response to determining that the recording of the program will conflict with the recording of other programs indicated in the recording schedule, the server (a) instructs the DVR to ask the user to select between the recorded program and other programs that were previously scheduled to be recorded, (b) receives a selection from the DVR, (c) updates the recording schedule based on the selection, and (d) sends the recording schedule to the DVR.
44. A volatile or non-volatile computer storage medium storing instructions for scheduling recordings, the computer storage medium comprising: when processed by one or more processors, the instructions cause the one or more processors to perform the steps of:
receiving, at a server, information from a digital video recorder over a network, the information identifying a program that a user of the digital video recorder has indicated recording by the video recorder;
at the server, determining whether recording of a program will conflict with recording of other programs indicated in the recording schedule based on a recording schedule, the recording schedule being associated with the digital video recorder and the recording schedule being stored only at the server;
in response to determining that the recording of the program will conflict with the recording of other programs indicated in the recording schedule, (a) instructing the DVR to ask the user to select between the recorded program and other programs that were previously scheduled to be recorded, (b) receiving a selection from the DVR, (c) updating the recording schedule based on the selection, and (d) sending the recording schedule to the DVR.
HK11110791.7A 2008-09-05 2008-11-03 Server-based program recording scheduling HK1156771B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/205,761 2008-09-05

Publications (2)

Publication Number Publication Date
HK1156771A true HK1156771A (en) 2012-06-15
HK1156771B HK1156771B (en) 2018-02-15

Family

ID=

Similar Documents

Publication Publication Date Title
US10142690B2 (en) Server-based program recording scheduling
US9258610B2 (en) Correlation of media metadata gathered from diverse sources
US11051071B2 (en) Dynamic item highlighting system
CN102144397B (en) Server-based program recording schedule
HK1156771A (en) Server-based program recording scheduling
HK1156771B (en) Server-based program recording scheduling