Abstract:
A system and methods of incrementally updating a recording schedule in response to changes in user requests and changes in availability of requested content. Changes to the recording schedule may be prompted by a user request to record new content, a change in the parameters of an existing request, removal of a request, and the like. Before changing the recording schedule, an algorithm generates new possible recording schedules by combining recording assignments for a given program with the existing recording schedule. In one embodiment, the algorithm reduces the new possible recording schedules to a final recording schedule and applies the final recording schedule to a digital recording device. In another embodiment, the final recording schedule is presented to a user for approval before the schedule is applied to the digital recording device.

Description:
BACKGROUND 
       [0001]    Television programs are commonly recorded on hard disks in digital recorders associated with televisions. These digital recorders are often referred to as a personal video recorder (PVR) or a digital video recorder (DVR). Traditional PVRs and DVRs have a fixed number of tuners which can be used to record content from a broadcast source, which limits the number of shows that can be simultaneously recorded at any given time. If the user requests that too many shows be recorded at once, the only recourse is to prompt the user to ask which subset of those shows are most important to record and to fail to record the rest. 
         [0002]    Another recent development is the electronic program guide (EPG), which graphically displays television program&#39;s listings on television screens. Although there are various EPGs being used today, EPGs typically display programs in a grid format for multiple channels and various time slots. Accordingly, the viewer scrolls along both horizontal and vertical axis to identify television programs being broadcast at different times and on different channels. The EPG allows a viewer to easily learn what program is being broadcast on a specific channel during a specific time. 
         [0003]    While EPGs can assist the viewer in identifying when programs are being broadcast, they have also been used to streamline the process of programming recording systems. For instance, depending upon the user interface associated with the PVR that includes the EPG, a viewer can use specific features on the user interface (UI) of the PVR to program a recording. For example, the viewer may simply select a box or region corresponding to a program within the EPG in order to schedule the program for recording. Alternatively, the viewer may be required to go to a different user interface page or display to cause the recording system to be programmed appropriately. 
         [0004]    Programs (also referred to as “broadcast content”) are now available through alternate sources. For example, episodes of television programs are now commonly available as a digital download or streaming media. The same is true for movies. Yet PVRs and DVRs cannot resolve a recording conflict by obtaining the broadcast content with identical or overlapping broadcast times by obtaining the broadcast content from an alternate source. 
       SUMMARY 
       [0005]    One aspect of the present technology is to provide a method that automatically generates a new recording schedule when a user adds a program request to an existing recording schedule. When a request is received from a user to record a program, the method identifies all recording assignments associated with the program. The recording assignments associated with the program are grouped together according to a first comparison metric. The groups of recording assignments associated with the program are combined with the recording assignments associated with the other programs in the existing recording schedule until at least one new recording schedule is generated. If more than one new recording schedule is generated, the system reduces the new recording schedules to a final recording schedule. The existing recording schedule is then replaced with the final recording schedule. 
         [0006]    One aspect of the present technology is to provide a method that generates a new recording schedule when a user deletes a program from an existing recording schedule. In one embodiment, the method attempts to reschedule one of the program assignments remaining in the existing recording schedule into the time period made available by the deleted program assignment. The method identifies the time period and tuner associated with the deleted program assignment. For each program assignment remaining in the existing recording schedule, the method identifies the program associated with the program assignment, identifies additional program assignments that have a time period that overlaps the time period associated with the deleted program assignment, and determines whether any of the additional program assignments are preferable over the program assignment in the existing recording schedule. If any of the additional program assignments are preferable over the program assignment in the existing recording schedule, the method designates the program associated with the program assignment to be rescheduled. The method attempts to generate a new recording schedule that includes at least one additional program assignment associated with a program that was designated to be rescheduled. 
         [0007]    One aspect of the present technology is to resolve recording conflicts when new recording requests are added to an existing recording schedule. In one embodiment, the programs associated with the new recording requests are prioritized. A new recording schedule is generated based on first combining assignments of the highest priority program with the existing recording schedule. Assignments of the next highest priority program are then combined with the new recording schedule(s), creating the latest schedules. This cycle is continued until all the new recording requests have been scheduled. One of the latest schedules is selected and the digital recording devices records the programs based on the selected latest schedule. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]      FIG. 1  depicts a schematic diagram of an embodiment of a television system. 
           [0009]      FIG. 2  depicts a block diagram of a computer system for performing the methods described herein. 
           [0010]      FIG. 3  depicts a flow diagram providing exemplary steps for generating a new recording schedule. 
           [0011]      FIGS. 4-5  depict a flow diagram providing exemplary steps for rescheduling content in an existing recording schedule; and 
           [0012]      FIG. 6  depicts a flow diagram providing exemplary steps associated with another embodiment for generating a new recording schedule. 
       
    
    
     DETAILED DESCRIPTION 
       [0013]    The technology described herein includes methods for generating a recording schedule. For example, a digital recording device may have an existing recording schedule to obtain content previously specified by a user. When the user sends a new recording request to the digital recording device, the device identifies all assignments associated with the program. The device attempts to generate a new recording schedule that includes one of the assignments associated with the new program without deleting any of the programs currently in the existing recording schedule. 
         [0014]      FIG. 1  illustrates an embodiment of a television system  100 . The system  100  includes a broadcast system  102  and a receiver system. The broadcast system includes a television antenna  104 , a cable broadcast system  106  and a satellite broadcast system  108 . The receiver system includes an antenna  110 , a satellite dish  112 , a first digital recorder  120 , a second digital recorder  122 , a personal computer (PC)  126  and a television  128 . In the  FIG. 1  embodiment, each of these components is connected to a network  116 . The television  128  is connected to the first digital recorder  120  and is not connected directly to the network  116 , as shown in  FIG. 1 . Of course, the television  128  may be connected directly to the network  116 . The coaxial cable  114  is shown in  FIG. 1  as connected directly to the network  116 . The cable  114  may also be connected to other components. By way of example only, the cable  114  may also be connected directly to the computer  126 , the first digital recorder  120 , the second digital recorder  122  or the television  128 . 
         [0015]    The system  100  also includes an Internet provider  124  so that the system  100  may acquire content from sources other than from the broadcast system  102 . For example, the system  100  may acquire a digital download of a television program. The Internet provider  124  may communicate with the network  116  (or any other component) either wirelessly, a network or any other technology known in the computer communication art. In one embodiment, the Internet may also be accessed through the coaxial cable  114  as well as the Internet provider  124 . The  FIG. 1  embodiment illustrates that the first digital recorder  120  may receive a broadcast signal either from the network  116  or through a wireless connection  130 . Of course, the entire network  116  may comprise a wireless network. 
         [0016]    The present technology described herein may reside in the any of the components displayed in  FIG. 1 . For example, software executing the methods described herein may reside in the PC  126 . In another embodiment, the software may reside in the first digital recorder  120 . In another embodiment, the software may reside in the second digital recorder  122 . In yet another embodiment, the software may reside in a set-top box (not shown). 
         [0017]      FIG. 1  illustrates an example of a suitable general computing system environment  201  for generating a recording schedule. It is understood that the term “computer” as used herein broadly applies to any digital or computing device or system. The computing system environment  201  is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the inventive system. Neither should the computing system environment  201  be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary computing system environment  201 . 
         [0018]    With reference to  FIG. 2 , an exemplary system for implementing the inventive system includes a general purpose computing device in the form of a computer  210 . Components of computer  210  may include, but are not limited to, a processing unit  220 , a system memory  230 , and a system bus  221  that couples various system components including the system memory to the processing unit  220 . The system bus  221  may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus. 
         [0019]    Computer  210  may include a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer  210  and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, as well as removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, random access memory (RAM), read only memory (ROM), EEPROM, flash memory or other memory technology, CD-ROMs, digital versatile discs (DVDs) or other optical disc storage, magnetic cassettes, magnetic tapes, magnetic disc storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer  210 . Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as RF and other wireless media. Combinations of any of the above are also included within the scope of computer readable media. 
         [0020]    The system memory  230  includes computer storage media in the form of volatile and/or nonvolatile memory such as ROM  231  and RAM  232 . A basic input/output system (BIOS)  233 , containing the basic routines that help to transfer information between elements within computer  210 , such as during start-up, is typically stored in ROM  231 . RAM  232  typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit  220 . By way of example, and not limitation,  FIG. 2  illustrates operating system  234 , application programs  235 , other program modules  236 , and program data  237 . 
         [0021]    The computer  210  may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,  FIG. 2  illustrates a hard disc drive  241  that reads from or writes to non-removable, nonvolatile magnetic media and a magnetic disc drive  251  that reads from or writes to a removable, nonvolatile magnetic disc  252 . Computer  210  may further include an optical media reading device  255  to read and/or write to an optical media. 
         [0022]    Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, DVDs, digital video tapes, solid state RAM, solid state ROM, and the like. The hard disc drive  241  is typically connected to the system bus  221  through a non-removable memory interface such as interface  240 . Magnetic disc drive  251  and optical media reading device  255  are typically connected to the system bus  221  by a removable memory interface, such as interface  250 . 
         [0023]    The drives and their associated computer storage media discussed above and illustrated in  FIG. 2 , provide storage of computer readable instructions, data structures, program modules and other data for the computer  210 . In  FIG. 2 , for example, hard disc drive  241  is illustrated as storing operating system  244 , application programs  245 , other program modules  246 , and program data  247 . These components can either be the same as or different from operating system  234 , application programs  235 , other program modules  236 , and program data  237 . Operating system  244 , application programs  245 , other program modules  246 , and program data  247  are given different numbers here to illustrate that, at a minimum, they are different copies. 
         [0024]    A user may enter commands and information into the computer  210  through input devices such as a keyboard  262  and a pointing device  261 , commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit  220  through a user input interface  260  that is coupled to the system bus  221 , but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor  291  or other type of display device is also connected to the system bus  221  via an interface, such as a video interface  290 . In addition to the monitor, computers may also include other peripheral output devices such as speakers  297  and printer  296 , which may be connected through an output peripheral interface  295 . 
         [0025]    The computer  210  may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer  280 . The remote computer  280  may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer  210 , although only a memory storage device  281  has been illustrated in  FIG. 2 . The logical connections depicted in  FIG. 2  include a local area network (LAN)  271  and a wide area network (WAN)  273 , but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. 
         [0026]    When used in a LAN networking environment, the computer  210  is connected to the LAN  271  through a network interface or adapter  270 . When used in a WAN networking environment, the computer  210  typically includes a modem  272  or other means for establishing communication over the WAN  273 , such as the Internet. The modem  272 , which may be internal or external, may be connected to the system bus  221  via the user input interface  260 , or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer  210 , or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,  FIG. 2  illustrates remote application programs  285  as residing on memory device  281 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communication link between the computers may be used. 
         [0027]    For purposes of describing the technology herein, the user requests to record two programs: “The Office” (referred to hereinafter as “Program TO”) and “Grey&#39;s Anatomy” (referred to hereinafter as “Program GA”). The user selected to record a specific airing of Program TO (HD broadcast) through the EPG and selected to record Program GA through the wish list (by requesting to record a program with the term “Grey&#39;s” in the title). There are many ways for the user to request a recording of these two programs. In one embodiment, the user selects a program through the EPG. In another embodiment, the user may request a program through a “wish list” request. Such a request comprises an agent that looks for content that matches some set of criteria. The user, without ever looking at a program guide, can request to record every program where the term “star” appears in the title. In this case, the digital recording device would attempt to record episodes of “Star Trek,” “Battlestar Galactica,” any airings of the movie “Star Wars,” and the like. In another embodiment, the user may select programs by a keyword in the title or description. For example, the user can select programs by actor or director, category (e.g., only movies, anything but horror, etc.), and the like. 
         [0028]      FIG. 3  illustrates a flow diagram providing exemplary steps for generating a recording schedule. In step  302 , requests are received from the user to record at least one program. Using the example provided above, requests to record Program TO and Program GA are received in step  302 . In step  303 , the method adds Program TO and Program GA to a record list. In step  304 , the programs added to the record list (Step  303 ) are prioritized. For purposes of describing this technology only, Program TO is a higher-priority program than Program GA. Thus, in step  304 , Program TO is designated as the highest-priority program and Program GA as the second highest-priority program. 
         [0029]    In step  306 , the current recording schedule (also referred to as an “existing recording schedule”) is recalled. The existing recording schedule includes assignments of other programs already scheduled to be recorded. An existing recording schedule containing no assignments is referred to as an {empty} recording schedule. The existing recording schedule may be stored in any recording device (e.g., PC, PVR, DVR, etc.). For purposes of describing the method in  FIG. 3 , the existing recording schedule is {empty}. 
         [0030]    In step  308 , assignments of the highest-priority program in the record list are identified. An assignment designates the information the recording device requires to acquire the program. For example, an assignment designates the channel, airing time and tuner. For the purpose of describing this technology only, three assignments of Program TO are identified in an EPG: (i) Thursday, cable channel 704 (HD) at 8 pm on tuner A (referred to hereinafter as “TO1”), (ii) Saturday, satellite channel 4 (SD) at 7 pm on tuner B (referred to hereinafter as “TO2”), and (iii) Saturday, cable channel 704 (HD) at 2 am on tuner A (referred to hereinafter as “TO3”). As will be discussed in more detail later, it is possible that Program TO will not be recorded at all and therefore, a &lt;none&gt; assignment (referred to hereinafter as “TO4”) is added to the three assignments recognized in the EPG. Thus, in this example, the method, in step  308 , identifies four assignments of Program TO: TO 1 , TO 2 , TO 3  and TO 4 . 
         [0031]    In step  310 , the assignments of Program TO are grouped according to a first-pass comparison metric. By way of example only, the first-pass comparison metric comprises a comparison operator that is used by a sorting algorithm to compare two assignments at a time to indicate which assignment is preferable or whether the two assignments are equal. A sorting algorithm may comprise, by way of example only, quicksort, merge sort, bubble sort, and the like. These comparison-based sorting algorithms use the first-pass and second-pass comparison metrics (described in more detail later). Such sorting algorithms are well known within the computer science art and therefore, additional disclosure is not required. When the sorting algorithm is done, the assignments will be in order. Each assignment is either more preferable or equally preferable to the assignments after it in the list. Using the example provided above, the sorting algorithm uses the first-pass comparison metric to compare and group the four assignments of Program TO. By way of example only, the first-pass comparison operation includes the following five defining properties: 
         [0032]    (1) Are either assignment A or assignment B (but not both)_already_in the process of recording?→That one is preferable. 
         [0033]    (2) Are either assignment A or assignment B (but not both) for the “prototypical” schedule entry?→That one is preferable. 
         [0034]    (3) Are either assignment A or assignment B more preferable based on quality?→That one is preferable. 
         [0035]    (4) Is A urgent and does it start before B?→A is preferable 
         [0036]    (5) Is B urgent and does it start before A?→B is preferable 
         [0037]    (6) If comparison (1)-(5) do not provide an answer, A and B are equally preferable. 
         [0038]    With regard to defining property (3), quality comprises more than just a preference for obtaining an HD broadcast. For example, the user could prefer to obtain an HD broadcast, or not care, or the user might actually prefer SD. Quality also includes more than just SD/HD. For example, the technology described herein distinguishes between “true HD,” “HD signal but SD content,” “Digital SD,” and “Analog SD”—and these can be preferred (or not) in any order, and individually allowed/disallowed. Regardless, the possible results from comparing two assignments using the third defining property results in either “the quality of A is preferable,” “the quality of B is preferable,” or “the qualities of A and B are equally preferable.” If either assignment is preferable based on using the third defining property (based on the settings of the request in question), the assignment is preferable. Otherwise, the sorting algorithm continues with the assignment comparison by comparing the assignments using the fourth defining property. 
         [0039]    There are other factors that may influence group size. By way of example only, if the same airing can be recorded on three separate tuners (e.g., a digital recorder with three tuners), there may be three assignments in the same group—one assignment for each airing/tuner pair regardless of quality preference or urgency. It is also possible to have the same content in the same quality on at the same time but on a different channel. None of these assignments will be preferable over the other. 
         [0040]    The sorting algorithm uses the second-pass comparison to compare additional characteristics of each assignment after it has completed the comparisons based on the first-pass comparison metric. For example, the sorting algorithm uses the second-pass comparison operator to compare the start time of each assignment again (for non-urgent shows). The sorting algorithm also uses the second-pass comparison metric to compares characteristics that need to be decided but which do not impact the user&#39;s preferences in any way. For example, the second-pass comparison metric may be used to comparing the tuners each assignment proposes to use and the like. Grouping of assignments is accomplished by making divisions between assignments that are not equal and grouping together assignments that are equal. 
         [0041]    Using the example provided above, the user has not designated a quality preference associated with Program TO (e.g., prefer to acquire an HD broadcast, SD broadcast, etc.). In general, obtaining any recording of a program is preferred over the &lt;none&gt; assignment. Assuming that Program TO is not marked “urgent,” the sorting algorithm, using the defining properties of the first-pass comparison operator, determines that TO 1 , TO 2  and TO 3  are equal and each preferable over TO 4 . The four assignments of Program TO are therefore divided into two groups: {TO 1 , TO 2 , TO 3 } and {TO 4 }. The three assignments in the first group are placed in order of beginning broadcast time according to the defining properties of the second-pass comparison operator. 
         [0042]    In step  312 , the current recording schedule is combined with each of the assignments of Program TO included in the preferred group. In the example provided above, the current recording schedule is {empty} (e.g., contains no current assignments). The assignments of Program TO included in the preferred group include TO 1 , TO 2  and TO 3 . Thus, the method, in step  312 , generates three new recording schedules: 
         [0043]    (i) {empty}+TO 1  (referred to as “NewSchedule1”); 
         [0044]    (ii) {empty}+TO 2  (referred to as “NewSchedule2”); and 
         [0045]    (iii) {empty}+TO 3  (referred to as “NewSchedule3”). 
         [0046]    In step  314 , the new recording schedules—NewSchedule 1 , NewSchedule 2  and NewSchedule 3 —are evaluated to determine if any are valid schedules. A valid schedule comprises a recording schedule that does not contain any overlapping assignments. The method evaluates each NewSchedule in priority order. By way of example only, NewSchedule 1  is evaluated first, then NewSchedule 2  and finally NewSchedule 3 . All three NewSchedules are valid because none of the three NewSchedules contains an overlapping assignment. 
         [0047]    In one embodiment, if at least one valid NewSchedule has been generated, the current recording schedule is not subsequently combined with assignments from any of the additional groups of assignments. As described above, the assignments within the preferred group are a higher priority than the assignments in the other groups. Accordingly, combining the current recording schedule with an assignment from any of the other groups (e.g., assignments not within the preferred group) will necessarily be inferior to the NewSchedules already generated (schedules containing assignments from the preferred group). In an alternative embodiment, the current recording schedule is combined with every assignment before deciding if a valid schedule exists, in step  314 . 
         [0048]    If none of the NewSchedules were identified as valid in step  314 , the method returns to step  312 . In returning to step  312 , the current recording schedule is combined with the assignments included in the next best group of assignments. In the example provided above, the next best group of assignments of Program TO includes TO 4 . Thus, the method combines the current recording schedule with TO 4  and generates one potential new recording schedule: {empty}+TO 4  (referred to as “Newschedule4”). In step  314 , NewSchedule 4  is recognized as a valid schedule because there are no overlapping assignments. Regardless of the number of groups, the last group of assignments to be combined with the recording schedule is the group with only the &lt;none&gt; assignment, which can always be combined with any recording schedule. Thus, the method will eventually generate one valid recording schedule. 
         [0049]    Because, in step  314 , three valid recording schedules exit, the method continues to step  316 . In step  316 , the current recording schedule {empty} is replaced with the three valid recording schedules: NewSchedule 1 , NewSchedule 2  and NewSchedule 3 . Program TO is also removed from the record list. 
         [0050]    In step  318 , the method determines whether there are any programs remaining in the record list. If there are no programs remaining in the record list, the method proceeds to step  332 . In step  332 , the three NewSchedules are reduced to a single or final NewSchedule (discussed in more detail later). In one embodiment, the final NewSchedule is loaded into the digital recording device. In an alternative embodiment, the user is presented with the final NewSchedule in a UI (not shown). In the UI, the user may accept the final NewSchedule or modify it. However, if a program remains in the record list, the method does not choose a NewSchedule and instead proceeds to step  320 . 
         [0051]    In the example provided above, Program GA remains in the record list. In step  320 , all assignments of Program GA are identified. For the purpose of describing this technology only, three assignments of Program GA are identified in an EPG: (i) Thursday, cable channel 707 (HD) at 8 pm on tuner A (referred to hereinafter as “GA1”), (ii) Saturday, cable channel 7 (SD) at 11 pm on tuner A (referred to hereinafter as “GA2”), (iii) Saturday, cable channel 707 (HD) at 2 am on tuner B (referred to hereinafter as “GA3”). As previously described above, the &lt;none&gt; assignment (referred to hereinafter as “GA4”) is added to the three assignments from the EPG. 
         [0052]    In step  322 , the four assignments of Program GA are grouped according to sorting algorithm using the first-pass comparison operator described above. The four assignments of Program GA are divided into three groups: {GA 1 ; GA 3 }, {GA 2 } and {GA 4 }. GA 1  and GA 3  are placed together in the first group (the “preferred” group) because these two assignments will record an HD broadcast of Program GA. GA 2  is placed by itself in a second group (the “next best” group) because GA 2  (SD broadcast) is not as preferable as GA 1  or GA 3  (both an HD broadcast). GA 2  is not grouped with GA 4  (no recording) because GA 2  is preferred over GA 4 . As discussed above, GA 4  is placed in the last group, by itself, because GA 4  represents the least desirable assignment (Program GA will not be recorded at all). 
         [0053]    In step  324 , each of the NewSchedules (NewSchedule 1 , NewSchedule 2  and NewSchdeule 3 ) is combined with each of the assignments of Program GA in the preferred group. At this point, NewSchedule 1  includes TO 1 , NewSchedule 2  includes TO 2  and NewSchdeule 3  includes TO 3 . The assignments of Program GA included in the preferred group include GA 1  and GA 3 . Thus, six potential latest recording schedules are generated, in step  324 : 
         [0054]    (i) TO 1 +GA 1  (referred to as “LatestSchedule1”); 
         [0055]    (ii) TO 1 +GA 3  (referred to as “LatestSchedule2”); 
         [0056]    (iii) TO 2 +GA 1  (referred to as “LatestSchedule3”) 
         [0057]    (iv) TO 2 +GA 3  (referred to as “LatestSchedule4”); 
         [0058]    (v) TO 3 +GA 1  (referred to as “LatestSchedule5”); and 
         [0059]    (iv) TO 3 +GA 3  (referred to as “LatestSchedule6”). 
         [0060]    In step  326 , the LatestSchedules are evaluated to determine if any are a valid recording schedule. Using the example provided above, LatestSchedule 1  is not a valid recording schedule because TO 1  and GA 1  air at the same time (assuming that the digital recording device has a single tuner). None of the other LatestSchedules includes a similar time overlap. Thus, there are five valid LatestSchedules (LatestSchedule 2 -LatestSchedule 6 ). The evaluation process performed in step  326  (and step  314 ) is described in more detail later. 
         [0061]    If none of the LatestSchedules were valid, the method returns to step  324 . In returning to step  324 , the three NewSchedules (TO 1 , TO 2  and TO 3 ) are combined with the assignments of Program GA in the “next best” group of assignments. Using the example provided above, the “next best” group of assignments of Program GA includes GA 2 . Steps  324  and  326  would then be repeated. 
         [0062]    Because there are five valid LatestSchedules, the method continues to step  328 . In step  328 , the NewSchedules (TO 1 , TO 2  and TO 3 ) are replaced with the five valid LatestSchedules (LatestSchedule 2 -LatestSchedule 6 ). Program GA is also removed from the record list. 
         [0063]    In step  330 , the method determines if any other programs remain in the record list. At this point, the record list is empty. Program TO and Program GA have been removed from the record list. However, if a program still remained in the record list, the method returns to step  320  and repeats steps  320 - 328 . Because the record list does not contain any programs, the method continues to step  332 . 
         [0064]    In step  332 , the five valid LatestSchedules are reduced to a single LatestSchedule. As previously described above, the assignments of Program TO and Program GA were combined in priority order. Thus, the first valid LatestSchedule includes the highest-priority assignment of both Program TO and Program GA. In this case, the first valid LatestSchedule is selected. In one embodiment, the selected LatestSchedule is automatically downloaded to the digital recording device. In another embodiment, the selected LatestSchedule is provided to the user (e.g., through a UI) for approval before the schedule is downloaded to the digital recording device. 
         [0065]      FIGS. 4-5  illustrate a method for evaluating whether to reject or modify a combined schedule (e.g., NewSchedule or LatestSchedule) containing one or more conflicting assignments. During this evaluation process (see steps  312  and  324  in  FIG. 3 ), programs may be added to the record list to be rescheduled later. 
         [0066]    For the purpose of describing the interrogation process in  FIGS. 4-5  only, the existing recording schedule (referred to as “{existing schedule}”) recalled in step  306  includes three assignments for three programs previously requested to be recorded by the user. The assignments included in the {existing schedule} are A 1 , B 1  and C 1 . Thus, in step  312 , the method generates the following three recording schedules by adding each assignment of Program TO in the preferred group to the current recording schedule in priority order: 
         [0067]    (i) {existing schedule}+TO 1  (referred to as “NewScheduleX”); 
         [0068]    (ii) {existing schedule}+TO 2  (referred to as “NewScheduleY”); and 
         [0069]    (iii) {existing schedule}+TO 3  (referred to as “NewScheduleZ”). 
         [0070]    In step  402 , NewScheduleX is selected first for evaluation. The method may of course choose to interrogate the NewSchedules in any order. In step  404 , the method determines if NewScheduleX contains any conflicting assignments. If TO 1  does not conflict with any of the assignment in the {existing schedule}, NewScheduleX is valid and the method continues to step  406 . In step  406 , the method determines if there are any other NewSchedules. If there are no additional NewSchedules, the method continues to step  408  and the interrogation process is complete. Here, however, there are two additional NewSchedules—NewScheduleY and NewScheduleZ. In step  410 , NewScheduleY is selected and step  404  is repeated. 
         [0071]    If, in step  404 , it is determined that TO 1  conflicts with an assignment in the {existing schedule}, the method continues to step  412 . In step  412 , the method determines whether TO 1  conflicts with one of the assignments already scheduled in the {existing schedule}. For the purpose of describing this technology, TO 1  conflicts with assignment C 1  in the {existing schedule}. In step  418 , the conflicting assignment C 1  is removed from NewScheduleX. 
         [0072]    In step  420 , the priority of the program associated with the removed assignment C 1  (referred to as “Program C”) is compared to the priority of Program TO. If Program C is a lower priority program than Program TO, the method continues to step  422 . In step  422 , Program C is added to the record list. The method shown in  FIG. 3  will reschedule Program C at a later time. 
         [0073]    If Program C is higher-priority program than Program TO, TO 1  is returned to the record list and NewScheduleX, NewScheduleY and NewScheduleZ are discarded, in step  426 . At this point, a process begins to ensure that the assignments in the {existing schedule} were scheduled in priority order. In step  428 , the priority associated with the assignment just removed from the {existing schedule}, C 1 , is compared to the priority of the assignment scheduled prior to C 1  in the {existing schedule}. Here, the priority of Program C is compared to the priority of Program B (the program associated with B 1 ). If C 1  is not higher-priority than B 1 , the method continues to step  434 . In step  434 , the method returns to step  308  and identifies the assignments associated with Program C. Program C is rescheduled back into the {existing schedule}, which now includes TO 1 , according to the method shown in  FIG. 3 . 
         [0074]    If the removed assignment, C 1 , is higher-priority than B 1 , the method continues to step  430 . In step  430 , the Program associated with C 1  (Program C) is added to the record list. The method returns to step  428  and determines if Program C is higher-priority than the program associated with B 1  (Program B). If it is not, the method continues to step  434  and reschedules Program C. If it is higher priority, the method repeats steps  430 - 432 . 
         [0075]      FIG. 6  illustrates a method for generating a new recording schedule when the user deletes a program from the existing or current recording schedule. In step  602 , the user deletes a program assignment from the existing recording schedule. For the purpose of describing  FIG. 6  only, the {existing schedule} is {A 1 +B 2 +C 1 +TO 2 }, there are no programs in the record list and the user deletes C 1  (which designates recording Program C, cable channel 704, Thursday between 9 pm-10 pm, tuner A). 
         [0076]    In step  604 , the airing time and tuner designated by the deleted assignment are identified. The airing time and tuner is effectively freed-up from the {existing schedule}. Using the example provided above, tuner A and the airing time 9-10 pm are identified as freed-up as a result of the deleted assignment. In step  606 , assignments associated with each remaining program in the {existing schedule} and assignments of each program still in the record list are identified. After C 1  is deleted, the {existing schedule} includes {A 1 +B 2 +TO 2 }. Using the example provide above, other assignments associated with Program A (e.g., A 2  and A 3 ), Program B (e.g., B 1  and B 3 ) and Program TO (e.g., TO 1  and TO 3 ) are identified. 
         [0077]    In step  608 , the method determines if any of the other assignments associated with Program A, Program B or Program TO overlap the time period previously occupied by C 1 . If none of the other assignments identified in step  606  overlap with the 9-10 pm time period on tuner A, the {existing schedule} is maintained as {A 1 +B 1 +TO 1 }, in step  608 . If any of the other assignment (A 2 , A 3 , B 1 , B 3 , TO 1 , etc.) overlap the time period Thursday, 9-10 pm, the method continues to step  612 . 
         [0078]    In step  612 , the method determines if any of the other overlapping assignments are preferable to the current assignment in the {existing schedule}, program by program. There are many reasons why one of the other overlapping assignments may be preferable. By way of example only, one of the other assignments may be preferable if it designates an earlier airing time than the existing assignment, designates recording an HD broadcast of the program when the existing assignment designates recording an SD broadcast, the program&#39;s current assignment is &lt;none&gt;, and so on. If the other assignment (e.g., A 2 ) is not preferable over the assignment in the {existing schedule} (e.g., A 1 ), the existing assignment (A 1 ) is maintained, in step  614 . If the other assignment (e.g., B 1 ) is preferable to the assignment in the {existing schedule} (e.g., B 2 ), the program associated with both assignments (Program B) is added to the record list. In step  618 , the method shown in  FIG. 3  reschedules each of the programs contained in the record list. 
         [0079]    The foregoing detailed description of the inventive system has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the inventive system to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the inventive system and its practical application to thereby enable others skilled in the art to best utilize the inventive system in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the inventive system be defined by the claims appended hereto. 
         [0080]    Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.