Patent Publication Number: US-9900648-B2

Title: Systems and methods for search and categorization

Description:
CROSS REFERENCE TO RELATED APPLICATION(S) 
     This application claims priority to U.S. Provisional Application No. 62/208,446, filed Aug. 21, 2015, the disclosure of which is incorporated by reference herein in its entirety. 
    
    
     FIELD OF THE TECHNOLOGY 
     The present disclosure relates to a computer technology for generating and transmitting results lists during a search of a television receiver for data using a television search device. Specifically, various techniques and systems are provided for dynamically generating a results list based on real-time data gathered from a television receiver, user interaction, and other resources. 
     BRIEF SUMMARY 
     The present disclosure relates to a computer technology for generating and transmitting results lists during a search of a television receiver for data using a television search device. Specifically, various techniques and systems are provided for dynamically generating a results list based on real-time data gathered from a television receiver, user interaction, and other resources. In an embodiment, a television receiver for generating input results is disclosed. The television receiver comprises one or more tuners configured to receive television programming via a television service provider distribution network, a television interface configured to output the television programming to a display device, one or more processors, and a memory communicatively coupled with and readable by the one or more processors and having stored therein processor-readable instructions. The instructions, when executed by the one or more processors, cause the one or more processors to receive, via the one or more tuners, from the television service provider distribution network, a set of television data, wherein the television data is associated with programming of multiple television channels, receive a set of user data, wherein the user data includes data associated with a user of the television receiver, receive an input from the user, wherein the input indicates a preference for a search, determine a list of input results based on the set of television data, the set of user data, and the input, and transmit the list of television input results, wherein when the list of television input results is received, the list of television input results is displayable on the display device. 
     In another embodiment, a computer-implemented method, comprises receiving, via the one or more tuners, from the television service provider distribution network, a set of television data, wherein the television data is associated with programming of multiple television channels, receiving a set of user data, wherein the user data includes data associated with a user of the television receiver, receiving an input from the user, wherein the input indicates a preference for a search, determining a list of input results based on the set of television data, the set of user data, and the input, and transmitting the list of television input results, wherein when the list of television input results is received, the list of television input results is displayable on the display device. 
     In another embodiment, a computer-program product tangibly embodied in a non-transitory machine-readable storage medium. The non-transitory machine-readable storage medium may include instructions configured to cause a data processing apparatus to receive, via the one or more tuners, from the television service provider distribution network, a set of television data, wherein the television data is associated with programming of multiple television channels, receive a set of user data, wherein the user data includes data associated with a user of the television receiver, receive an input from the user, wherein the input indicates a preference for a search, determine a list of input results based on the set of television data, the set of user data, and the input, and transmit the list of television input results, wherein when the list of television input results is received, the list of television input results is displayable on the display device. 
     In an aspect, of any of the above embodiments, the set of television data includes predetermined television programming information related to the multiple television channels. In another aspect, the set of television data includes data related to an environment of the television receiver. In another aspect, the set of user data includes data related to preferences of a user of the television receiver. In another aspect, the preferences of the user are collected over a period of time and are based on the user&#39;s interactions with the television receiver. In another aspect, the list of input results includes a ranking of results, wherein the ranking of the results is determined based on the set of television data, the set of user data, and the input. In another aspect, the list of input results includes one or more results groupings, wherein the results groupings each include a set of results associated with the grouping. 
     This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by reference to appropriate portions of the entire specification of this patent, any or all drawings, and each claim. 
     The foregoing, together with other features and embodiments, will become more apparent upon referring to the following specification, claims, and accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A further understanding of the nature and advantages of various embodiments may be realized by reference to the following figures. In the appended figures, similar components or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label. 
         FIG. 1  illustrates an embodiment of a satellite television distribution system. 
         FIG. 2  illustrates an embodiment of a television receiver that is configured to manage storage space. 
         FIG. 3  illustrates an example television display configuration, in accordance with some embodiments. 
         FIG. 4  illustrates an embodiment showing a receiver interface with a TV search mechanism for entry of data and a remote control, according to some embodiments. 
         FIG. 5  illustrates an embodiment showing a receiver interface with a TV search interface for entry of data and a search results interface, according to some embodiments. 
         FIG. 6  illustrates four different search results interfaces, according to some embodiments. 
         FIG. 7  illustrates multiple search results interfaces that show grouping of search results, according to some embodiments. 
         FIG. 8  illustrates a search results interface and an information interface, according to some embodiments. 
         FIG. 9  illustrates an embodiment of a method for dynamically generating a results list based on user, the user&#39;s input, and collected television receiver data, according to some embodiments. 
         FIG. 10  illustrates an embodiment of a computer system. 
     
    
    
     DETAILED DESCRIPTION 
     The present disclosure is directed to systems, methods, and products for receiving, gathering, categorizing, and displaying data on a graphical user interface, such as a receiver interface of a television receiver. Furthermore, the present disclosure is also directed to systems, methods, and products for interacting with and/or controlling such a graphical user interface to search for and find certain subsets of the data so that the subsets of the data are displayed on the graphical user interface. The disclosed systems, methods, and products enable more efficient navigation of the data on the graphical user interface, such as by interpreting input commands in a more efficient manner, requiring fewer numbers of input steps to achieve a particular result, and/or using reduced processor or system resources, as compared to previous techniques. In this way, a user experience can be enhanced by increasing the usability and reducing the input time required for performing a many step sequence, resulting in a more intuitive input experience for a user. 
     For example, the disclosed systems, methods, and products may include receiving input data from an input device and processing the input data more efficiently. The input devices are useful for providing input data, such as a string of letters or words, that can be interpreted as providing a selection of one or more subsets of the data. As will be understood by the skilled artisan, buttons or arrays of buttons may be present on a keyboard, remote control, or other similar input device and are typically intended for providing input data via individual buttons presses. 
     As used herein, a graphical user interface refers to an interactive display in which commands can be entered and received using one or more input devices for purposes of controlling aspects of the graphical user interface, including items or objects shown on the interface. For example, a user may perform item selection using a graphical user interface, such as for entering letters or phrases into the graphical user interface, or for advancing a graphical user interface through one or more menus. As another example, a user may input data using a graphical user interface such as by directing input using a virtual keyboard or keypad. Graphical user interfaces may be displayed to a user on one or more display devices, such as a monitor, television, etc. Graphical user interfaces may be interactive or non-interactive. For example, a graphical user interface may include an input or navigation portion, such as including a grid or arrangement of interactive virtual buttons or selection elements. Additionally or alternatively, portions of a graphical user interface may be used for displaying media content, such as static images or video, which may not be interactive, for example. 
     A user may enter or otherwise select one or more letters or words into an input device to navigate a graphical user interface. However, the input may only represent a subset of a longer string of letters or words that the user intends to input over a longer period of time. Therefore, the input may be interpreted to be only the beginning of one of one or more longer strings of letters or words. The graphical user interface may display a single selection or a list of words or phrases in response to the input from the user based on this interpretation. Accurate interpretation of the input may allow the graphical user interface to more efficiently and accurately display a list of words or phrases that more accurately reflect the user&#39;s intent. 
     The data received and/or gathered to accurately interpret the input may come from a variety of different sources. For example, the data may include predetermined data related to the use of the graphical user interface. For example, if the graphical user interface is a receiver interface of a television receiver, the data may include data related to television shows, movies, popular culture, etc. In another example, other data may include historical data gathered over time related to the user and the user&#39;s actions taken when interacting with the graphical user interface. In another example, other data may include environmental data related to the day, time, or other environmental conditions that the graphical user interface is in at the time. 
       FIG. 1  illustrates an embodiment of a satellite television distribution system  100 . While embodiments detailed herein may be applied to various television distribution systems, including cable and IP, a satellite television distribution system is provided as an example. Satellite television distribution system  100  may include: television service provider system  110 , satellite transmitter equipment  120 , satellites  130 , satellite dish  140 , television receiver  150 , and display device  160 . Alternate embodiments of satellite television distribution system  100  may include fewer or greater numbers of components. While only one satellite dish  140 , television receiver  150 , and display device  160  (collectively referred to as “user equipment”) are illustrated, it should be understood that multiple (e.g., tens, thousands, millions) instances of user equipment may receive television signals from satellites  130 . 
     Television service provider system  110  and satellite transmitter equipment  120  may be operated by a television service provider. A television service provider may distribute television channels, on-demand programming, programming information, and/or other services to users. Television service provider system  110  may receive feeds of one or more television channels from various sources. Such television channels may include multiple television channels that contain the same content (but may be in different formats, such as high-definition and standard-definition). To distribute such television channels to users, feeds of the television channels may be relayed to user equipment via one or more satellites via transponder streams. Satellite transmitter equipment  120  may be used to transmit a feed of one or more television channels from television service provider system  110  to one or more satellites  130 . While a single television service provider system  110  and satellite transmitter equipment  120  are illustrated as part of satellite television distribution system  100 , it should be understood that multiple instances of transmitter equipment may be used, possibly scattered geographically to communicate with satellites  130 . Such multiple instances of satellite transmitting equipment may communicate with the same or with different satellites. Different television channels may be transmitted to satellites  130  from different instances of transmitting equipment. For instance, a different satellite dish of satellite transmitter equipment  120  may be used for communication with satellites in different orbital slots. 
     Satellites  130  may be configured to receive signals, such as streams of television channels, from one or more satellite uplinks such as satellite transmitter equipment  120 . Satellites  130  may relay received signals from satellite transmitter equipment  120  (and/or other satellite transmitter equipment) to multiple instances of user equipment via transponder streams. Different frequencies may be used for uplink signals  170  from transponder stream  180 . Satellites  130  may be in geosynchronous orbit. Each satellite  130  may be in a different orbital slot, such that the signal paths between each satellite, transmitter equipment, and user equipment vary. Multiple satellites  130  may be used to relay television channels from television service provider system  110  to satellite dish  140 . Different television channels may be carried using different satellites. Different television channels may also be carried using different transponders of the same satellite; thus, such television channels may be transmitted at different frequencies and/or different frequency ranges. As an example, a first and second television channel may be carried on a first transponder of satellite  130 - 1 . A third, fourth, and fifth television channel may be carried using a different satellite or a different transponder of the same satellite relaying the transponder stream at a different frequency. A transponder stream transmitted by a particular transponder of a particular satellite may include a finite number of television channels, such as seven. Accordingly, if many television channels are to be made available for viewing and recording, multiple transponder streams may be necessary to transmit all of the television channels to the instances of user equipment. 
     Satellite dish  140  may be a piece of user equipment that is used to receive transponder streams from one or more satellites, such as satellites  130 . Satellite dish  140  may be provided to a user for use on a subscription basis to receive television channels provided by the television service provider system  110 , satellite transmitter equipment  120 , and/or satellites  130 . Satellite dish  140  may be configured to receive transponder streams from multiple satellites and/or multiple transponders of the same satellite. Satellite dish  140  may be configured to receive television channels via transponder streams on multiple frequencies. Based on the characteristics of television receiver  150  and/or satellite dish  140 , it may only be possible to capture transponder streams from a limited number of transponders concurrently. For example, a tuner of television receiver  150  may only be able to tune to a single transponder stream from a transponder of a single satellite at a time. 
     In communication with satellite dish  140  may be one or more sets of receiving equipment. Receiving equipment may be configured to decode signals received from satellites  130  via satellite dish  140  for display on a display device, such as display device  160 . Receiving equipment may be incorporated as part of a television or may be part of a separate device, commonly referred to as a set-top box (STB). Receiving equipment may include a satellite tuner configured to receive television channels via a satellite. In  FIG. 1 , receiving equipment is present in the form of television receiver  150 . As such, television receiver  150  may decode signals received via satellite dish  140  and provide an output to display device  160 .  FIG. 2  provides additional detail of a television receiver. A television receiver is defined to include set-top boxes (STBs) and also circuitry having similar functionality that may be incorporated with another device. For instance, circuitry similar to that of a television receiver may be incorporated into a television. As such, while  FIG. 1  illustrates an embodiment of television receiver  150  as separate from display device  160 , it should be understood that in other embodiments, similar functions may be performed by a television receiver integrated with display device  160 . 
     Display device  160  may be used to present video and/or audio decoded by television receiver  150 . Television receiver  150  may also output a display of one or more interfaces to display device  160 , such as an electronic programming guide (EPG). In some embodiments, a display device other than a television may be used. Display device  160  may be a television, monitor, or some other device configured to display video and, possibly, play audio. 
     Uplink signal  170 - 1  represents a signal between satellite transmitter equipment  120  and satellite  130 - 1 . Uplink signal  170 - 2  represents a signal between satellite transmitter equipment  120  and satellite  130 - 2 . Each of uplink signals  170  may contain streams of one or more different television channels. For example, uplink signal  170 - 1  may contain a certain group of television channels, while uplink signal  170 - 2  contains a different grouping of television channels. Each of these television channels may be scrambled such that unauthorized persons are prevented from accessing the television channels. 
     Transponder stream  180 - 1  represents a signal between satellite  130 - 1  and satellite dish  140 . Transponder stream  180 - 2  represents a signal path between satellite  130 - 2  and satellite dish  140 . Each of transponder streams  180  may contain one or more different television channels in the form of transponder streams, which may be at least partially scrambled. For example, transponder stream  180 - 1  may include a first transponder stream containing a first group of television channels, while transponder stream  180 - 2  may include a second transponder stream containing a different group of television channels. A satellite may transmit multiple transponder streams to user equipment. For example, a typical satellite may relay thirty-two transponder streams via corresponding transponders to user equipment. Further, spot beams are possible. For example, a satellite may be able to transmit a transponder stream to a particular geographic region (e.g., to distribute local television channels to the relevant market). Different television channels may be transmitted using the same frequency of the transponder stream to a different geographic region. 
       FIG. 1  illustrates transponder stream  180 - 1  and transponder stream  180 - 2  being received by satellite dish  140 . For a first group of television channels, satellite dish  140  may receive a transponder stream of transponder stream  180 - 1 ; for a second group of channels, a transponder stream of transponder stream  180 - 2  may be received. Television receiver  150  may decode the received transponder stream. As such, depending on which television channel(s) are desired, a transponder stream from a different satellite (or a different transponder of the same satellite) may be accessed and decoded by television receiver  150 . Further, while two satellites are present in satellite television distribution system  100 , in other embodiments greater or fewer numbers of satellites may be present for receiving and transmitting transponder streams to user equipment. 
     Network  190  may serve as a secondary communication channel between television service provider system  110  and television receiver  150 . Via such a secondary communication channel, bidirectional exchange of data may occur. As such, data may be transmitted to television service provider system  110  via network  190 . Data may also be transmitted from television service provider system  110  to television receiver  150  via network  190 . Network  190  may be the Internet. While audio and video services may be provided to television receiver  150  via satellites  130 , feedback from television receiver  150  to television service provider system  110  may be transmitted via network  190 . 
       FIG. 1  illustrates an example of a satellite-based television channel distribution system. It should be understood that at least some of the aspects of such a system may be similar to a cable television distribution system. For example, in a cable television system, rather than using satellite transponders, multiple RF channels on a cable may be used to transmit streams of television channels. As such, aspects detailed herein may be applicable to cable television distribution systems. 
       FIG. 2  illustrates an embodiment of television receiver  200 , which may typically be in the form of a separate device configured to be connected with a presentation device, such as a television. Embodiments of television receiver  200  may include set top boxes (STBs). As previously noted, in addition to being in the form of an STB, a television receiver may be incorporated into another device, such as a television. For example, a television may have an integrated television receiver (which does not involve an external STB being coupled with the television). An STB may contain some or all of the components of television receiver  200  and/or may be able to perform some or all of the functions of television receiver  200 . Accordingly, instances in this document referring to an STB and steps being performed by an STB may also be performed, more generally, by a television receiver. 
       FIG. 2  illustrates a block diagram of an embodiment of television receiver  200  that is configured to record omnibus channel files and extract a television program from a recorded omnibus channel file. Television receiver  200  may be the television receiver of  FIG. 1  and may be in the form of an STB that communicates with a display device such as a television. Television receiver  200  may be incorporated as part of a television, such as display device  160  of  FIG. 1 . Television receiver  200  may include: processors  210  (which may include control processor  210 - 1  and tuning management processor  210 - 2 ), tuners  215 , network interface  220 , non-transitory computer-readable storage medium  225 , electronic programming guide (EPG) database  230 , television interface  235 , networking information table (NIT)  240 , digital video recorder (DVR) database  245  (which may include provider-managed television programming storage  246  and/or user-defined television programming  247 ), on-demand programming  227 , user interface  250 , external storage device  252 , PID filters  255 , smart card  260 , and/or descrambling engine  265 . In other embodiments of television receiver  200 , fewer or greater numbers of components may be present. It should be understood that the various components of television receiver  200  may be implemented using hardware, firmware, software, and/or some combination thereof. Functionality of components may be combined; for example, functions of descrambling engine  265  may be performed by tuning management processor  210 - 2 . Further, functionality of components may be spread among additional components; for example, PID filters  255  may be handled by separate hardware from program management table  257 . 
     Processors  210  may include one or more specialized and/or general-purpose processors configured to perform processes such as tuning to a particular channel, accessing and displaying EPG information from EPG database  230 , and/or receiving and processing input from a user. For example, processors  210  may include one or more processors dedicated to decoding video signals from a particular format, such as MPEG, for output and display on a television and for performing decryption. It should be understood that the functions performed by various modules of  FIG. 2  may be performed using one or more processors. As such, for example, functions of descrambling engine  265  may be performed by control processor  210 - 1 . 
     Control processor  210 - 1  may communicate with tuning management processor  210 - 2 . Control processor  210 - 1  may control the recording of television channels based on timers stored in DVR database  245 . Control processor  210 - 1  may initiate recording of a television channel by sending a record command along with an indication of the television channel to be recorded to tuning management processor  210 - 2 . Control processor  210 - 1  may not send a second record command (if additional recording is to begin at the same time) until an acknowledgement that recording of the first television channel has successfully been received and initiated by tuning management processor  210 - 2 . Control processor  210 - 1  may also provide commands to tuning management processor  210 - 2  when recording of a television channel is to cease. In addition to providing commands relating to the recording of television channels, control processor  210 - 1  may provide commands to tuning management processor  210 - 2  that indicate television channels to be output to audio/video decoder  233  for output to a presentation device, such as a television. 
     Control processor  210 - 1  may also communicate with network interface  220  and user interface  250 . Control processor  210 - 1  may handle incoming data from network interface  220  and user interface  250 . Additionally, control processor  210 - 1  may be configured to output data via network interface  220 . 
     Tuners  215  may include one or more tuners used to tune to television channels, such as television channels transmitted via satellite or cable. In the illustrated embodiment of television receiver  200 , three tuners are present (tuner  215 - 1 , tuner  215 - 2 , and tuner  215 - 3 ). Each tuner contained in tuners  215  may be capable of receiving and processing a single stream of data from a satellite transponder (or a cable RF channel) at a given time. As such, a single tuner may tune to a single transponder (or, for a cable network, a single cable RF channel). If tuners  215  include multiple tuners, one tuner may be used to tune to a television channel on a first transponder stream for display using a television, while another tuner may be used to tune to a television channel on a second transponder for recording and viewing at some other time. Still another tuner may be used to check various television channels to determine if they are available or not. If multiple television channels transmitted on the same transponder stream are desired, a single tuner of tuners  215  may be used to receive the signal containing the multiple television channels for presentation and/or recording. Tuners  215  may receive commands from tuning management processor  210 - 2 . Such commands may instruct tuners  215  which frequencies are to be used for tuning. 
     Network interface  220  may be used to communicate via an alternate communication channel with a television service provider. For example, the primary communication channel may be via satellite (which may be unidirectional to the STB) and the alternate communication channel (which may be bidirectional) may be via a network, such as the Internet. Referring back to  FIG. 1 , television receiver  150  may be able to communicate with television service provider system  110  via a network, such as the Internet. This communication may be bidirectional: data may be transmitted from television receiver  150  to television service provider system  110  and from television service provider system  110  to television receiver  150 . Referring back to  FIG. 2 , network interface  220  may be configured to communicate via one or more networks, such as the Internet, to communicate with television service provider system  110  of  FIG. 1 . Information may be transmitted and/or received via network interface  220 . 
     Storage medium  225  may represent a non-transitory computer-readable storage medium. Storage medium  225  may include memory and/or a hard drive. Storage medium  225  may be used to store information received from one or more satellites and/or information received via network interface  220 . Storage medium  225  may store information related to EPG database  230 , other non-video/audio data  231 , DVR database  245 , and/or on-demand programming  227 . Recorded television programs may be stored using storage medium  225  as part of DVR database  245 . Storage medium  225  may be partitioned or otherwise divided (such as into folders) such that predefined amounts of storage medium  225  are devoted to storage of television programs recorded due to user-defined timers and stored of television programs recorded due to provider-defined timers. 
     EPG database  230  may store information related to television channels and the timing of programs appearing on such television channels. EPG database  230  may be stored using storage medium  225 , which may be a hard drive. Information from EPG database  230  may be used to inform users of what television channels or programs are popular and/or provide recommendations to the user. Information from EPG database  230  may provide the user with a visual interface displayed by a television that allows a user to browse and select television channels and/or television programs for viewing and/or recording. Information used to populate EPG database  230  may be received via network interface  220  and/or via satellites, such as satellites  130  of  FIG. 1  via tuners  215 . For instance, updates to EPG database  230  may be received periodically via satellite. EPG database  230  may serve as an interface for a user to control DVR functions of television receiver  200 , and/or to enable viewing and/or recording of multiple television channels simultaneously. 
     In addition to being used to provide users with information about scheduled programming, information from EPG database  230  may be used to determine when television programs begin and end for the purposes of recording. For instance, if a channel-specific file is recorded that contains multiple television programs, the start and end of time of specific television programs within the channel-specific file may be based on the start and end times indicated in the EPG. Other data may be stored for the EPG that may be useful in managing channel-specific files, such as series identifiers and episode identifiers (which may be used by a television service provider to identify particular television programs). 
     The network information table (NIT)  240  may store information used by television receiver  200  to access various television channels. NIT  240  may be stored locally by a processor, such as tuning management processor  210 - 2  and/or by storage medium  225 . Information used to populate NIT  240  may be received via satellite (or cable) through tuners  215  and/or may be received via network interface  220  from the television service provider. As such, information present in NIT  240  may be periodically updated. In some embodiments, NIT  240  may be locally-stored by television receiver  200  using storage medium  225 . Generally, NIT  240  may store information about a service provider network, such as a satellite-based service provider network. Information that may be present in NIT  240  may include: television channel numbers, satellite identifiers, frequency identifiers and/or transponder identifiers for various television channels. In some embodiments, NIT  240  may contain additional data or additional tables may be stored by the television receiver. For example, specific audio PIDs and video PIDs may not be present in NIT  240 , a channel identifier may be present within NIT  240  which may be used to look up the audio PIDs and video PIDs in another table, such as a program map table (PMT). In some embodiments, a PID associated with the data for the PMT is indicated in a separate table, program association table (PAT), which is not illustrated in  FIG. 2 . A PAT may be stored by the television receiver in a similar manner to the NIT. For example, a PMT may store information on audio PIDs, and/or video PIDs. A PMT store data on ECM (entitlement control message) PIDs for television channels that are transmitted on a transponder frequency. 
     Table 1 provides a simplified example of NIT  240  for several television channels. It should be understood that in other embodiments, many more television channels may be represented in NIT  240 . NIT  240  may be periodically updated by a television service provider. As such, television channels may be reassigned to different satellites and/or transponders, and television receiver  200  may be able to handle this reassignment as long as NIT  240  is updated. 
     
       
         
           
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Channel 
                 Satellite 
                 Transponder 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
            
               
                 4 
                 1 
                 2 
               
               
                 5 
                 2 
                 11 
               
               
                 7 
                 2 
                 3 
               
               
                 13 
                 2 
                 4 
               
               
                   
               
            
           
         
       
     
     Based on information in the NIT, it may be possible to determine the proper satellite and transponder to which to tune for a particular television channel. In some embodiments, the NIT may list a particular frequency to which to tune for a particular television channel. Once tuned to the proper satellite/transponder/frequency, the PMT PID may be used to retrieve a program management table that indicates the PIDs for audio and video streams of television channels transmitted by that transponder. 
     It should be understood that the values provided in Table 1 are for example purposes only. Actual values, including how satellites and transponders are identified, may vary. Additional information may also be stored in NIT  240 . 
     While a large portion of storage space of storage medium  225  is devoted to storage of television programming, a portion  241  may be devoted to storage of non-audio/video data, such as EPG database  230  and other non-video/audio data  231 . This “other” data may permit television receiver  200  to function properly. In some embodiments, at least ten gigabytes are allocated to such other data. For example, if NIT  240  is stored by storage medium  225 , it may be part of other non-video/audio data  231 . 
     Audio/video decoder  233  may serve to convert encoded video and audio into a format suitable for output to a display device. For instance, audio/video decoder  233  may receive MPEG video and audio from storage medium  225  or descrambling engine  265  to be output to a television. MPEG video and audio from storage medium  224  may have been recorded to DVR database  245  as part of a previously-recorded television program. Audio/video decoder  233  may convert the MPEG video and audio into a format appropriate to be displayed by a television or other form of display device and audio into a format appropriate to be output from speakers, respectively. 
     Television interface  235  may serve to output a signal to a television (or another form of display device) in a proper format for display of video and playback of audio. As such, television interface  235  may output one or more television channels, stored television programming from storage medium  225  (e.g., television programs from DVR database  245 , television programs from on-demand programming  227  and/or information from EPG database  230 ) to a television for presentation. 
     Digital Video Recorder (DVR) functionality may permit a television channel to be recorded for a period of time. DVR functionality of television receiver  200  may be managed by control processor  210 - 1 . Control processor  210 - 1  may coordinate the television channel, start time, and stop time of when recording of a television channel is to occur. DVR database  245  may store information related to the recording of television channels. DVR database  245  may store timers that are used by control processor  210 - 1  to determine when a television channel should be tuned to and its programs recorded to DVR database  245  of storage medium  225 . In some embodiments, a limited amount of storage medium  225  may be devoted to DVR database  245 . Timers may be set by the television service provider and/or one or more users of television receiver  200 . 
     The DVR functionality of control processor  210 - 1  may have multiple modes. First, the DVR functionality of control processor  210 - 1  may be configured to record individual television programs selected by a user to user-defined television programming  247 . Such user-defined television programming  247  may be recorded based on user-defined timers. Each user-defined timer is set by a user and specifies a date, television channel, and a time period for recording. User-defined television programming  247 , in addition to including audio and video data for the television program, may include data about the recording, such as a time and/or date of when the television program was recorded, whether the television program has been designated as protected, and EPG information. To create a user-defined timer, a user may select a particular television program via a graphically-displayed EPG. Based on the date, time period, and television channel indicated by EPG database  230 , Control processor  210 - 1  may record the associated television program to user-managed television programming storage  247  of DVR database  245 . In some embodiments, a series identifier and episode identifier may be used to schedule a timer to record the broadcast of a television program. 
     DVR database  245  may also be used to record recordings of service provider-defined television channels. For each day, an array of files may be created. For example, based on provider-defined timers, a file may be created for each recorded television channel for a day. For example, if four television channels are recorded from 6-10 PM on a given day, four files may be created (one for each television channel). Within each file, one or more television programs may be present. The service provider may define the television channels, the dates, and the time periods for which the television channels are recorded for the provider-defined timers. The provider-defined timers may be transmitted to television receiver  200  via the television provider&#39;s network. For example, referring to system  100  of  FIG. 1 , in a satellite-based television service provider system, data necessary to create the provider-defined timers at television receiver  150  may be received via satellite. 
     As an example of DVR functionality of television receiver  200  being used to record based on provider-defined timers, a television service provider may configure television receiver  200  to record television programming on multiple, predefined television channels for a predefined period of time, on predefined dates. For instance, a television service provider may configure television receiver  200  such that television programming may be recorded from 7 to 10 PM on NBC, ABC, CBS, and FOX on each weeknight and from 6 to 10 PM on each weekend night on the same channels. If a television program is selected for recording by a user and is also specified for recording by the television service provider, the user selection may serve as an indication to save the television program for an extended time (beyond the time which the predefined recording would otherwise be saved). Television programming recorded based on provider-defined timers may be stored to provider-managed television programming storage  246 . 
     Storage space of storage medium  225  may be allocated among provider-managed television programming storage  246  and user-managed television programming storage  247 . For instance, space that is allocated to provider-managed television programming storage  246  may be reallocated to user-managed television programming storage  247 ; the reverse may also be possible. Reallocation may occur based on user-preferences and/or service provider propagated settings. 
     On-demand programming  227  may represent additional television programming stored by storage medium  225 . On-demand programming  227  may include television programming that was not recorded to storage medium  225  via a timer (either user- or provider-defined). Rather, on-demand programming is programming provided to the television receiver directly for storage by the television receiver and for later presentation to one or more users. In some systems, such as cable and IP-based television distribution networks, on-demand content is requested by a television receiver and retrieved from a remote server in response to a user requesting the on-demand content. In other systems, such as systems in which bandwidth is at a premium and/or communication to the television receiver is one-way (e.g., satellite-based television distribution networks), on-demand content may be pre-loaded to a television receiver for the possibility of a user requesting the on-demand content. On-demand content may be “free” (e.g., included in the cost of a user&#39;s subscription with the television service provider) or may be pay-per-view (e.g., a movie that costs an amount of money to be viewed). On-demand programming  227  may not be user-selected. As such, the television programming stored to on-demand programming storage  227  may be the same for each television receiver of a television service provider. In some embodiments, programming stored to on-demand programming storage  227  may be standardized based on a manufacturer and/or model of television receiver (e.g., television receivers of the same make and/or model store the same on-demand programming). What on-demand programming and for how long such on-demand programming is retained by the television receiver may be determined based on settings propagated by the television service provider. 
     Storage space of storage medium  225  may also be allocated among provider-managed television programming storage  246 , user-managed television programming storage  247 , and on-demand programming storage  227 . For instance, space may be allocated among provider-managed television programming storage  246 , user-managed television programming storage  247 , and/or on-demand programming storage  227 . Reallocation may occur based on user-preferences and/or service provider propagated settings. 
     User interface  250  may include a remote control (physically separate from television receiver  200 ) and/or one or more buttons on television receiver  200  that allow a user to interact with television receiver  200 . User interface  250  may be used to select a television channel for viewing, view information from EPG database  230 , and/or program a timer stored to DVR database  245 , wherein the timer is used to control the DVR functionality of control processor  210 - 1 . 
     Referring back to tuners  215 , television channels received via satellite (or cable) may contain at least some scrambled data. Packets of audio and video may be scrambled to prevent unauthorized users (e.g., nonsubscribers) from receiving television programming without paying the television service provider. When a tuner of tuners  215  is receiving data from a particular transponder of a satellite, the transponder stream may be a series of data packets corresponding to multiple television channels. Each data packet may contain a packet identifier (PID), which, in combination with NIT  240  and/or PMT  257 , can be determined to be associated with particular television channel. Particular data packets, referred to as entitlement control messages (ECMs) may be periodically transmitted. ECMs may be associated with another PID and may be encrypted; television receiver  200  may use smart card  260  to decrypt ECMs. Decryption of an ECM may only be possible if the user has authorization to access the particular television channel associated with the ECM. When an ECM is determined to correspond to a television channel being stored and/or displayed, the ECM may be provided to smart card  260  for decryption. 
     When smart card  260  receives an encrypted ECM, smart card  260  may decrypt the ECM to obtain some number of control words. In some embodiments, from each ECM received by smart card  260 , two control words are obtained. In some embodiments, when smart card  260  receives an ECM, it compares the ECM to the previously received ECM. If the two ECMs match, the second ECM is not decrypted because the same control words would be obtained. In other embodiments, each ECM received by smart card  260  is decrypted; however, if a second ECM matches a first ECM, the outputted control words will match; thus, effectively, the second ECM does not affect the control words output by smart card  260 . Smart card  260  may be permanently part of television receiver  200  or may be configured to be inserted and removed from television receiver  200 . 
     Tuning management processor  210 - 2  may be in communication with tuners  215  and control processor  210 - 1 . Tuning management processor  210 - 2  may be configured to receive commands from control processor  210 - 1 . Such commands may indicate when to start/stop recording a television channel and/or when to start/stop causing a television channel to be output to a television. Tuning management processor  210 - 2  may control tuners  215 . Tuning management processor  210 - 2  may provide commands to tuners  215  that instruct the tuners which satellite, transponder, and/or frequency to tune to. From tuners  215 , tuning management processor  210 - 2  may receive transponder streams of packetized data. As previously detailed, some or all of these packets may include a PID that identifies the content of the packet. 
     Tuning management processor  210 - 2  may be configured to create one or more PID filters  255  that sort packets received from tuners  215  based on the PIDs. When a tuner is initially tuned to a particular frequency (e.g., to a particular transponder of a satellite) a PID filter may be created based on the PMT data. The PID created based on the PMT data packets may be known because it is stored as part of NIT  240  or another table, such as a program association table (PAT). From the PMT data packets, PMT may be constructed by tuning management processor  210 - 2 . Table 2 provides an exemplary extract of a PMT. PMT  257  may be specific to a television channel on a transponder. As such, if tuning to a different television channel or transponder occurs, a new PMT may be created for the different transponder. 
     
       
         
           
               
               
               
               
               
             
               
                   
                 TABLE 2 
               
               
                   
                   
               
               
                   
                 Channel 
                 Video PID 
                 1 st  Audio PID 
                 2 nd  Audio PID 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
            
               
                   
                 4 
                 1003 
                 2383 
                 2119 
               
               
                   
                 5 
                 2993 
                 2727 
                 2728 
               
               
                   
                 7 
                 9238 
                 1233 
                 0129 
               
               
                   
                 13 
                 0012 
                 9348 
                 — 
               
               
                   
                   
               
            
           
         
       
     
     Accordingly, based on the information present in PMT  257 , the audio and video PIDs for specific television channels may be identified. A television channel may have multiple audio PIDs due to a second audio program (SAP), which may be in a different language. 
     It should be understood that the values provided in Table 2 are for example purposes only. Actual values may vary. Additional information or less information may also be stored in PMT  257 . 
     PID filters  255  may be configured to filter data packets based on PIDs. In some embodiments, PID filters  255  are created and executed by tuning management processor  210 - 2 . In other embodiments, separate hardware may be used to create and execute such PID filters. Depending on a television channel selected for recording/viewing, a PID filter may be created to filter the video and audio packets associated with the television channel (based on the PID assignments present in PMT  257 ). For example, if a transponder data stream includes multiple television channels, data packets corresponding to a television channel that is not desired to be stored or displayed by the user may be ignored by PID filters  255 . As such, only data packets corresponding to the one or more television channels desired to be stored and/or displayed may be filtered and passed to either descrambling engine  265  or smart card  260 ; other data packets may be ignored. For each television channel, a stream of video packets, a stream of audio packets (one or both of the audio programs) and/or a stream of ECM packets may be present, each stream identified by a PID. In some embodiments, a common ECM stream may be used for multiple television channels. Additional data packets corresponding to other information, such as updates to NIT  240 , may be appropriately routed by PID filters  255 . At a given time, one or multiple PID filters may be executed by tuning management processor  210 - 2 . 
     Descrambling engine  265  may use the control words output by smart card  260  in order to descramble video and/or audio corresponding to television channels for storage and/or presentation. Video and/or audio data contained in the transponder data stream received by tuners  215  may be scrambled. Video and/or audio data may be descrambled by descrambling engine  265  using a particular control word. Which control word output by smart card  260  to be used for successful descrambling may be indicated by a scramble control identifier present within the data packet containing the scrambled video or audio. Descrambled video and/or audio may be output by descrambling engine  265  to storage medium  225  for storage (in DVR database  245 ) and/or to audio/video decoder  233  for output to a television or other presentation equipment via television interface  235 . 
     External storage device  252  may represent an external, detachable computer-readable non-transitory storage device. The storage device may be memory, a hard drive, or some other type of device for storing computer-readable data. The user may be permitted to connect and disconnect external storage device  252  to increase and decrease an amount of storage space available for storing on-demand programming, service provider-managed television programming, and/or user managed television programming. When external storage device  252  is connected to television receiver  200 , storage space on storage medium  225  may be reallocated based on additional storage space now being present on external storage device  252 . As such, from the viewpoint of a user, additional space may be available for television programming recorded using user-defined timers. If an external storage device  252  is connected to a television receiver  200 , external storage device  252  may be used for provider-managed television programming storage  246  with DVR database  245  being dedicated to user-managed television programming storage  247  (the reverse is also possible). As such, external storage device  252  may be used to isolate provider managed television programming from user managed television programming. Alternatively, television programming recorded due to provider-managed timers and user-managed timers may be stored on both DVR database  245  and external storage device  252 . In some embodiments, when DVR database  245  becomes full, the recorded television programs may begin being written to external storage device  252 . If an external storage device  252  is removed from being connected with television receiver  200 , storage space on storage medium  225  may be reallocated to compensate for the loss of storage space. As such, if the total amount of space needed to be dedicated to on-demand programming storage  227  and television programs recorded based on provider-managed timers remains constant, television programming recorded due to user-managed timers may be deleted (or space available to record such programming may be decreased) to make sufficient storage space available on storage medium  225  for on-demand programming storage  227  and provider-managed television programming storage  246 . 
     For simplicity, television receiver  200  of  FIG. 2  has been reduced to a block diagram; commonly known parts, such as a power supply, have been omitted. Further, some routing between the various modules of television receiver  200  has been illustrated. Such illustrations are for exemplary purposes only. The state of two modules not being directly or indirectly connected does not indicate the modules cannot communicate. Rather, connections between modules of the television receiver  200  are intended only to indicate possible common data routing. It should be understood that the modules of television receiver  200  may be combined into a fewer number of modules or divided into a greater number of modules. Further, the components of television receiver  200  may be part of another device, such as built into a television. Also, while television receiver  200  may be used to receive, store, and present television channels received via a satellite, it should be understood that similar components may be used to receive, store, and present television channels via a cable network. 
       FIG. 3  illustrates an example television display configuration  300 , in accordance with some embodiments. Television display configuration  300  includes television  302 , receiver  304  and remote control  306 . Television  302  may, for example, represent television  160  illustrated in  FIG. 1 , or another non-television display device, such as a computer monitor. Television  302  displays a graphical user interface, exemplified as a receiver interface provided by television receiver  304 . 
     As will be understood by the skilled artisan, video signal encoding hardware present within receiver  304  may encode a video signal, such as including the receiver interface and/or television video programming, which is output from the receiver  304 . In embodiments, the video signal may be a digital video signal or an analog video signal, which may be provided to television  302 , such as using one or more signal cables, such as a composite, S-video, high-definition multimedia interface (HDMI) or other digital or analog signal cable. Embodiments are contemplated where a video signal is provided from receiver  304  to television  302  by way of one or more networks or one or more intermediate devices. Optionally, a video signal may be provided in an uncompressed form or in a compressed form. Upon receiving the video signal, television receiver may decode or otherwise process the video signal for display on the screen of television  302 . 
     Receiver  304  includes remote control interface  308  for receiving commands from remote control  306 . Remote control interface  308  may be exemplified by a variety of hardware, such as for wirelessly receiving commands from remote control  306 . Wireless remote commands may be received, for example, using one or more wireless technologies, such as optical, infrared or radio frequency electromagnetic technologies. In one embodiment, remote control interface  308  includes an infrared receiver and remote control  306  includes an infrared transmitter. In another embodiment, remote control interface  308  includes a Bluetooth receiver and remote control  306  includes a Bluetooth transmitter. Other examples are possible. Optionally, remote commands from remote control  306  may be received over a wired connection at remote control interface  308 . 
     Remote control  306  is illustrated as including a plurality of buttons  310 , as will be understood by the skilled artisan, for communicating any of a set of remote commands to receiver  304  by way of remote control interface  308 . Remote control  306  could further include an interface itself, such as interface  312 , which may include a touchpad or trackpad type interface. Interface  312  could include one or more graphics on the surface, such as numerals or other symbols. Interface  312  may also be useful for generation of coordinates corresponding to locations of the remote control  306  at which inputs are received. For example, coordinates may be generated by interface  312  that correspond to the location on the interface at which a user&#39;s finger contacts the surface of the interface. Interface  312  may also include one or more buttons which may be clickable, as will be understood by the skilled artisan, to allow the interface to register button presses, which may be communicated and/or interpreted as selection or confirmation signals, in addition to location coordinates. Inputs at buttons  310  or an interface  312  may be transmitted by remote control  306 , via communication path  314 , for receipt at remote control interface  308 . Data may also be transmitted by receiver  304  to remote control  306  via communication path  316 . 
     Other remote control types are envisioned, including, but not limited to gesture based devices, such as including one or more gyroscopic sensors, one or more accelerometers, one or more video or optical sensors, one or more depth sensors, one or more range sensors, and/or one or more motion sensors. 
       FIG. 4  illustrates an embodiment showing a receiver interface  402  with a TV search mechanism  404  for entry of data and a remote control  406 , according to some embodiments. As illustrated, receiver interface  402  shows a virtual keyboard  403  for entry of text into a search box  401 . The search box may be used, as will be described further herein, to search through an EPG or database within a television receiver associated with receiver interface  402 . Characters may be selectable, such as using remote control  406 . Further aspects of  FIG. 4  illustrate a user providing data to a television receiver, resulting in modification of receiver interface  402 . When a user&#39;s finger makes contact with a button or interface of remote control  406 , coordinates or other data may be generated by remote control  406  and transmitted to a television receiver, for example. When the data is received by a television receiver, the receiver interface  402  may be modified, such as to include an indicator at the virtual keyboard  403 , here exemplified as a highlighted border around the character “T”, and/or search box  401 , here exemplified as the letter “T” in search box  401 . If remote control  406  includes a touch sensitive interface, for example, then a cursor or other indicator may move on the receiver interface  402  (e.g., on the virtual keyboard  403 ) in a way that corresponds to movement of the user&#39;s finger on the interface of remote control  406 . In such an example, when the user presses down on a button associated with the interface, data associated with these respective locations may be transmitted to the television receiver. When data is received by the television receiver, again the receiver interface  402  may be modified, such as to include an indicator at the virtual keyboard  403 , here exemplified as a highlighted border around the character “T”, and/or search box  401 , here exemplified as the letter “T” in search box  401 . 
       FIG. 5  illustrates an embodiment showing a receiver interface  502  with a TV search interface  504  for entry of data and a search results interface  518 , according to some embodiments. Receiver interface  502  shows a virtual keyboard  503  for entry of text into a search box  501 . Characters may be selectable using, for example, a remote control, such as remote control  406  shown in  FIG. 4 . When a user makes a selection, including a letter or number, the virtual keyboard may light up or otherwise show selection of that letter or number, and the selection may be shown in the search box  501 , and/or may be shown in the results interface  518 . 
     Results interface  518  includes a visualization of the dynamic search process utilized in embodiments of the present technology. As a selection is made by the user, the results interface  518  may display a list of results that may be relevant to the user&#39;s selection. For example, as shown in  FIG. 5 , if the letter “T” is selected, then various results that include (e.g., start with) the letter “T” may be listed in the results list in search results interface  518 . Additionally, instead of the result starting with “T”, a word other than the first word of the result may start with “T”. As a second and further letters and/or numbers are selected, the list of results may change based on the inputs. For example, if the letter “H” is entered after the letter “T”, then various results that include (e.g., start with) the letters “Th” may be listed in the results list in search results interface  518 . This process may repeat for additional letters. The list of results may include a variety of movies, television shows, sports teams, sporting events, events, etc. that include the letter “T”, as shown in  FIG. 5 . 
     The list of results may be generated using a variety of different types of data and data from a variety of different sources. The results list may include the results in a certain order (e.g., by “ranking” or “rating”), and this order may also be determined using the variety of different types of data and data from a variety of different sources. For example, data related to a user actions taken when engaging with the receiver interface may be recorded and stored over time, such as shows that the user watches regularly, types of shows that the user watches regularly, previous searches that the user made, interests that the user indicates based on their actions engaging with the receiver interface, publically available profile information associated with the user (e.g. Facebook, Linkedin, Twitter, etc.), Common Sense data, among others. This data may be used to predict what the user may input into the receiver interface and/or what the user may want to watch. For example, if the user has watched a lot (e.g., greater than a certain threshold number of times or for greater than a certain threshold amount of time) of horror shows and movies, then the user may be interested in watching The Walking Dead. The user may also be interested in watching The Walking Dead if the user has regularly watched The Walking Dead in the past. Such data may be used to include The Walking Dead, or other similar shows or movies, in the results list. In another example, if the user is a child, the ranking of a show may go up or down based on children warnings associated with a show. 
     In another example, data from public sources may also be used to generate the results list. For example, data or information may be received or retrieved from online encyclopedia Wikipedia or other online sources of information. For example, external feeds for trending, such as Wikipedia page ranking, may be used. In another example, twitter rankings or trending information may be used. If a major event occurs in a celebrity&#39;s life, the weighting of that celebrity or shows or other programming may be boosted based on those events. Data regarding such events may be discovered through mining online sources of information. In another example, data related to popularity of a certain TV show, movie, actor/actress (or other celebrities), genre, etc. may be used. Data or information may be received or retrieved from rating websites such as IMDB, Rotten Tomatoes or other reviewing websites. Furthermore, data related to expected future popularity of a TV show, movie, actor/actress (or other celebrities), genre, etc. may also be used. For example, data may be generated related to a movie that the general public expects to be popular, and that data may be used to help generate the results list. In another example, data related to the environment in which the inputs are being made into the search interface may also be used. For example, data including the time of year (e.g., season, holiday, etc.), time of the month, day of the week, time of the day, etc. may all be used. For example, the system may generate a results list without football teams if the search is not being made during football season. In another example, the location of an event or other result may determine whether a result is included or the ranking of a result in the results list. For example, if an event is located in or near the location of the user, then the result may be included and/or moved higher in priority on the results list. 
     In another example, the location of the user of the television receiver may be used. For example, if the user is located in Denver, Colo., then results that are more relevant to such a user may be included in the results list. For example, if a user selects “B” as its first letter input, then the system may include the “Denver Broncos” in the results list for that user since that user is located in Denver, Colo., the city in which the Denver Broncos are based. However, on the other hand, if the user who selects “B” is located in Boston, Mass., then the Denver Broncos may not be included in the results list. 
     In another example, data related to a television receiver and/or television service provider system may be used. For example, information about scheduled programming and other information from a database, such as EPG database  230  in  FIG. 2 , may be used to help generate the results list. For example, the system may generate a results list without a certain television show if the television show is not airing new episodes during that time of year based on the scheduled programming provided by the television service provider system. 
     Other information related to scheduled programming may be used. For example, if the letter “T” is selected as an input, the system may determine how many potential results within each of a variety of categories (e.g., movies, television shows, sports, etc.) start with the letter “T”. For example, the system may have set a certain number, or a maximum number, of results that may be included in the results list from one or more of the variety of categories. More specifically, the results list may be set to include a maximum of three movies in the results list. In such an example, the results may include a television show or sporting event in the results list even if a fourth movie is ranked higher than the television show or sporting event. 
     As noted, different results within a result list may include ratings or rankings relative to the other results in the result list. The order in which the results are listed in the results list may be determined by the rankings for each result. The rankings for the results may be determined based on the various data obtained by the television receiver system. Each possible result (e.g., a television show, movie, sports team, etc.) may be assigned a rating for a user based on that data. For example, if, based on the data associated with a user and the other objective data obtained, a user watches every new episode of a particular television show, then that television show may be ranked higher than a different television show that the user has never watched before. More specifically, if a user watches every episode of only one show, The Walking Dead, then The Walking Dead may have a higher ranking than a different show, such as Top Chef, of which the user only watches every other episode. In such a situation, The Walking Dead may be listed first in a results list for that user (as shown in  FIG. 5 ). 
     The ratings/rankings of possible results may be dynamic, or may change over time (e.g., in real time), based on new or changing data obtained by the television receiver system. For example, obtained data may indicate that while the user watches a particular television show less often than others, that television show is not currently airing new episodes, is going off the air, or may have received bad ratings (or other examples of the data collected, as described herein). In such an example, another television show may be assigned a higher rating because of that data. Furthermore, certain data may be assigned more or less weight when assigning a rating to a potential user result. For example, data that is collected from a user or the user&#39;s actions may be given more weight than another type of data because it is specific to the user. More specifically, if data indicates that a user watches a certain television show on a regular basis even when the television show is not running new episodes, that data may be weighed higher than the data that indicates that the television show is not running new episodes. In such an example, the user has shown that even though the television show is not running new episodes, the user still watches the show regularly. Therefore, the data that indicates that the television show is not running new episodes is not as valuable or relevant than the data that indicates that the user watches the television show. A set of data, or a factor relevant for rankings to generate a results list, may be given a higher weight if the set of data is valuable or relevant, but may be given a lower weight if the set of data is not valuable or not relevant. In another example, a program may be weighted/ranked higher if a user binge watches a show (watches several episodes or seasons of the show in a short period of time) instead of casually watching the show over a longer period of time. More accurate weighting or rankings may be achieved by using a variety of different technologies, such as NLP, neural network processing, Bayesian statistics and networks, or other technologies. 
     Other data that may be used to determine programming rankings for a user may include recommendations for the user. For example, the system may use recommendations otherwise determined for a user based on the user&#39;s watching and/or preference data to determine where certain programming should be ranked (or how it should be weighted). Furthermore, a user&#39;s reviews (e.g. rating a certain show highly, or poorly) of certain shows may also be used to rank (or weight) those shows and associated shows. In turn, such reviews and the rankings/weightings may be used for recommendations so that the system may recommend shows for the user to watch next. 
     As noted, different television shows, video games, DVDs, celebrities, novels, and other possible results may have associations with each other. These associations may be assigned such that they are predetermined and stored. In another embodiment, these associations may be assigned in real time. For example, if a new data point is received related to a new possible result (e.g., a new movie, new television show, new actor, etc.), then the new possible result may be assigned associations to other possible results based on its relationship with them. A result may be associated with another result based on a direct relationship or based on an indirect relationship through other results. For example, an actor (or other celebrity) may be associated with a movie or a television show if the actor was in that movie or television show. In another example, an actor may be associated with another actor if the two actors worked together on a movie or a television show. In another example, an actor may be associated with a movie if an actress that was in the movie has acted with the actor in the past (e.g., on a regular basis and have a strong association). These associations may contribute to the rankings/ratings (or weighting) assigned to certain results, and may cause certain results to be a part of a results list together. 
     A results list displayable in search results interface  518  may be divided up into sets of slots, wherein each set may be designated to a different category of result (e.g., television shows, movies, sports teams, sporting events, events, among others). As noted, results may include a variety of programming, including television shows, movies, sports teams, sporting events, events, etc. The television receiver system may set a certain number of slot allocations for each category of result. For example, if the search results list is designated to include movies, television shows, and sports (e.g., teams, events, etc.), and nine total slots are included in the result list, the search results list may be designated to have exactly three movies, three television shows, and three sports-related results. However, the allocation of search result list slots may be dynamic, or may change over time (e.g., in real time), based on new or changing data obtained by the television receiver system. For example, if a user watches significantly more sports than movies or television shows, then the slots in the search result list may be dynamically changed so that more than three slots are allocated to sports. For example, five slots may be allocated to sports, two slots allocated to television shows, and two slots allocated to movies. More specifically, slots may be allocated to a certain category based on what percentage of television a user watches in each category. The percentage of television watched may be based on the number of programs watched in each category, may be based on the time watched in each category, or may be based on another predetermined ratio. In another example, the slots may be allocated based on certain watching thresholds being crossed. For example, the system may initiate a rule that if a user watches or otherwise selects programs in a certain category over a certain percentage of time, a certain number of slots will be allocated to that category. 
       FIG. 6  illustrates four different search results interfaces, according to some embodiments. As noted, a search result interface may include a visualization of the dynamic search process utilized in embodiments of the present technology. As a selection is made by the user, the results interface may display a list of results that may be relevant to the user&#39;s selection. The results in the results list and the order of the results in the results list may dynamically change over time based on the data input by a user and based on the data collected by the television receiver, which may control the results interface. 
     For example, search results interface  618   a  includes a results list  619   a  that includes nine itemized results based on an input of the letter “T” by a user. As noted, the results and their order may depend on a variety of different types of data, including data collected over time based on the user&#39;s interactions with the interface and television receiver, other user interactions that may feed information to the television receiver, publicly available data related to the environment that the user is in when making a selection, publicly available data related to the results themselves, such as movie and television show ratings, scheduling information received by the television receiver, user preferences, such as user preferences for certain shows, genres, etc., among other data. Search results interface  618   a  shows results list  619   a , which includes “Texas Longhorns” and “Texas Rangers” as first and second results on the list, respectively. The user input of “T” that resulted in list  619   a  may be located, from, or otherwise associated with the state of Texas. In another example, the user may have watched Texas Longhorns and/or Texas Rangers games or other associated material using the television receiver in the past. Furthermore, result three is the Tennessee Titans and result four is the Tennessee Volunteers. Therefore, the user may generally be located in the southern part of the United States, may watch a lot of football games, or may just like sports. The remaining results may be relevant to the user based on the user&#39;s interactions, or they may be relevant to the user because those results are popular choices or have high ratings. However, results 1-4 are listed above results 5-9 because the system analyzed data collected, and determined that the user would be more interested in results 1-4 than results 5-9. For example, data considered may indicate that the user is located in Texas and watches a lot of sports, and that those factors were more highly rated than the factors that caused results 5-9 to be listed in the results list  619   a . Results 1-4 may be listed higher because the determination that results 1-4 were relevant to the user (and their assigned ratings) were based on subjective criteria specific to the user instead of general criteria that may apply to any average person. 
     Similarly, search results interface  618   b  includes a results list  619   b  that includes nine itemized results based on an input of the letter “T” by a user. However, when this user selected an input of “T”, different search results were included in the results list  619   b  as compared to results list  619   a . Search results list  619   b  includes a variety of programming, such as television shows related to cooking and a variety of cartoon television shows. Therefore, this user may have shown an interest in cooking. For example, the user may have watched a lot of television shows related to cooking, may have indicated an interest in cooking manually by sending that information to the television receiver, or related data may have been collected in some other way. Furthermore, the data may have indicated that the user also watches cartoons on a regular basis (or over a certain predetermined threshold amount of time). However, the data may also indicate that the user watches cartoons only in the mornings and cooking related shows only in the evenings, and the cooking related shows should be rated higher than the cartoons because the user is performing the search (by selecting “T”) in the evening. 
     As additional characters are selected when entering a search input, the results list may dynamically change based on the characters that are entered. For example, as shown in search results interface  618   c , the entire word “The” has been selected. Because of this progress, results list  619   c  only includes search results that include the word “The”. Similarly, results list  619   d  in results interface  618   d  include the top rated results for an input of “The W”. As a user progresses further and enters more characters, the results list may dynamically adjust based on the inputs and based on additional data that has been collected over time. However, results may be included even if they do not match exactly with the characters that have been entered. For example, in results list  619   d , result two includes “Fear The Walking Dead” and result nine includes “The Talking Dead”. These results may be displayed because it is related to other results (e.g., The Walking Dead Season 19), and other users (or other collected data) may indicate that The Talking Dead is a popular television show to watch, either generally or along with The Walking Dead (which does, for example, fit the entry of “The W” by the user). Similar to other search results, Fear The Walking Dead may be listed in the rankings above The Talking Dead because of an analysis of the data collected regarding the user and other data. 
       FIG. 7  illustrates multiple search results interfaces that show grouping of search results, according to some embodiments. As noted, a search result interface may include a visualization of the dynamic search process after a selection is made by the user, and the results interface may display a list of results that may be relevant to the user&#39;s selection. However, many results can be joined together into different groups or categories of results. As shown in  FIG. 7 , search results interface  718   a  includes a list with several results (bolded for reference) that could be groups or parts of a group. For example, The Walking Dead is a broad category of television shows, video games, DVDs, etc. and is related to a variety of actors/celebrities, novels, and other possible results. These results may have associations with each other. Therefore, even if a user is very interested in a particular television show, such as the Walking Dead, instead of listing all results related to that television show, the results list may only list one result as a group. The group may be displayed in the results list as a group until a certain predetermined time. For example, the group may be displayed in the results list as a group until the entire name of the group is spelled out or selected by a user. In another example, the group may be displayed in the results list as a group until a certain predetermined number of characters of the group name have been spelled out or selected by a user. In another example, the group may be displayed in the results list as a group until a user has ceased selecting characters in the search box. Other example methods for the are also possible. 
     As noted, different programming and other EPG listings, including television shows, video games, DVDs, actors (or other celebrities), novels, and other possible results may have associations with each other. These associations may be assigned such that they are predetermined and stored. In another embodiment, these associations may be assigned in real time. For example, if a new data point is received related to a new possible result (e.g., a new movie, new television show, new actor, etc.), then the new possible result may be assigned associations to other possible results based on its relationship with them. A result may be associated with another result based on a direct relationship or based on an indirect relationship through other results. For example, an actor may be associated with a movie or a television show if the actor was in that movie or television show. In another example, an actor may be associated with another actor if the two actors worked together on a movie or a television show. In another example, an actor may be associated with a movie if an actress that was in the movie has acted with the actor in the past (e.g., on a regular basis and have a strong association). These associations may contribute to the groups that are created and the rankings, ratings or weighting assigned to the groups. 
     Even though a group is listed in a results list, individual results from within a group may also be listed in the same results list. Similar to results in a results list, groups may be assigned rankings or ratings using a method similar to that for assigning the same to individual results. Therefore, an individual result may have a higher rating than a group, such as even a group that the individual result is a part of. However, if a group is rated higher than an individual result that may be included in that group, the system may reduce the rating of the individual result (either temporarily or permanently) so that the individual result is not included in the results list along with the group (e.g., to save space in the results list). 
     Groups may be curated or un-curated. Curated grouping may include groups that are manually created and stored at the television receiver for use during search and selection by a user. For example, groups may be created and received by the television receiver via a transponder stream, such as transponder stream  180 - 2  in  FIG. 1 . In other words, data with group information may be transmitted from a television service provider system, such as television service provider system  110  via satellites and transponder streams from the satellites. Curated groups may also be manually changed by a user, for example by removing or adding results from groups of results. For example, if a user does not enjoy a certain season of a television show, then the user may remove that season from a group representing the television show, which may include the different seasons of that television show. A user may also create new groups based on the user&#39;s tastes. Un-curated groups may be created using implicit grouping, or automatic grouping based on the letters or words entered by a user. Examples of un-curated groups include the result lists shown in  FIG. 6 . Un-curated groups may be created based on the real-time input by a user, and may take into account a variety of data collected by the television receiver over time and based on the environment at the time the group is being created. 
     When a user selects a group, new information may subsequently be listed in another results list that replaces or is displayed near the original results list that includes the group. For example, a second results list is illustrated as search results interface  718   b . Search results interface  718   b  includes a variety of search results related to The Walking Dead, the user&#39;s selection. The individual results included in the list in interface  718   b  may not be included in the initial list (i.e. the list that is one level higher in the user list selection process) to save room in that list, and because the user can gain access to those results by selecting the group as a whole. Furthermore, as shown in  FIG. 7 , an additional search results interface  718   c  may replace or be displayed next to interface  718   b  and/or  718   a  after a user continues to select a group from within a list, such as result “The Walking Dead Season 5” of “The Walking Dead” group/list. Search results interface  718   c  includes more specific information related to the user&#39;s selection, The Walking Dead Season 5. For example, as shown in  FIG. 7 , results interface  718   c  includes a list of episodes from that group, among other results (e.g., a trailer—“Trailer”—for that season/group). 
     The television receiver may display an unlimited series of groups in a continued string of groups when groups are selected by a user, or may restrict/limit the number of groups that can be selected (e.g., by the user eventually reaching a “dead-end”). 
       FIG. 8  illustrates a search results interface and an information interface, according to some embodiments. As noted, many results can be joined together into different groups or categories of results. However, the selection of a group or an individual search result may result in the displaying of additional information related to the input or selection by a user. For example, as shown in  FIG. 8 , if a user selects a certain result, such as actor Norman Reedus from the list in search results interface  818 , another interface, information interface  822 , may display information related to that selection. For example, as shown in interface  822 , information (such as information related to the user&#39;s selection or otherwise) may be displayed to inform the user of the information about the selection. The information may include associations or relationships that the input has. 
     Information displayed in an information interface, such as information interface  822 , may also include a picture or multiple pictures, videos, or other media for viewing. Groups may also be associated with one or more media. 
       FIG. 9  illustrates an embodiment of a method  900  for dynamically generating a results list based on user, the user&#39;s input, and collected television receiver data, according to some embodiments. Method  900  includes step  902 , which includes receiving, via one or more tuners, from the television service provider distribution network, a set of television data, wherein the television data is associated with programming of multiple television channels. Step  904  includes receiving a set of user data, wherein the user data includes data associated with a user of the television receiver. Step  906  includes receiving an input from the user, wherein the input indicates a preference for a search. Step  908  includes determining a list of input results based on the set of television data, the set of user data, and the input. Step  910  includes transmitting the list of television input results, wherein when the list of television input results is received, the list of television input results is displayable on the display device. 
     A computer system as illustrated in  FIG. 10  may be incorporated as part of the previously described computerized devices. For example, computer system  1000  can represent some of the components of the television receivers and/or television service provider systems.  FIG. 10  provides a schematic illustration of one embodiment of a computer system  1000  that can perform the methods provided by various embodiments. It should be noted that  FIG. 10  is meant only to provide a generalized illustration of various components, any or all of which may be utilized as appropriate.  FIG. 10 , therefore, broadly illustrates how individual system elements may be implemented in a relatively separated or relatively more integrated manner. 
     The computer system  1000  is shown comprising hardware elements that can be electrically coupled via a bus  1005  (or may otherwise be in communication, as appropriate). The hardware elements may include one or more processors  1010 , including without limitation one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices  1015 , which can include without limitation a mouse, a keyboard, and/or the like; and one or more output devices  1020 , which can include without limitation a display device, a printer, and/or the like. 
     The computer system  1000  may further include (and/or be in communication with) one or more non-transitory storage devices  1025 , which can comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, a solid-state storage device, such as a random access memory (“RAM”), and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like. Such storage devices may be configured to implement any appropriate data stores, including without limitation, various file systems, database structures, and/or the like. 
     The computer system  1000  might also include a communications subsystem  1030 , which can include without limitation a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device, and/or a chipset (such as a Bluetooth™ device, an 802.11 device, a WiFi device, a WiMax device, cellular communication facilities, etc.), and/or the like. The communications subsystem  1030  may permit data to be exchanged with a network (such as the network described below, to name one example), other computer systems, and/or any other devices described herein. In many embodiments, the computer system  1000  will further comprise a working memory  1035 , which can include a RAM or ROM device, as described above. 
     The computer system  1000  also can comprise software elements, shown as being currently located within the working memory  1035 , including an operating system  1040 , device drivers, executable libraries, and/or other code, such as one or more application programs  1045 , which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein. Merely by way of example, one or more procedures described with respect to the method(s) discussed above might be implemented as code and/or instructions executable by a computer (and/or a processor within a computer); in an aspect, then, such code and/or instructions can be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods. 
     A set of these instructions and/or code might be stored on a non-transitory computer-readable storage medium, such as the non-transitory storage device(s)  1025  described above. In some cases, the storage medium might be incorporated within a computer system, such as computer system  1000 . In other embodiments, the storage medium might be separate from a computer system (e.g., a removable medium, such as a compact disc), and/or provided in an installation package, such that the storage medium can be used to program, configure, and/or adapt a general purpose computer with the instructions/code stored thereon. These instructions might take the form of executable code, which is executable by the computer system  1000  and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computer system  1000  (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.), then takes the form of executable code. 
     It will be apparent to those skilled in the art that substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input/output devices may be employed. 
     As mentioned above, in one aspect, some embodiments may employ a computer system (such as the computer system  1000 ) to perform methods in accordance with various embodiments of the invention. According to a set of embodiments, some or all of the procedures of such methods are performed by the computer system  1000  in response to processor  1010  executing one or more sequences of one or more instructions (which might be incorporated into the operating system  1040  and/or other code, such as an application program  1045 ) contained in the working memory  1035 . Such instructions may be read into the working memory  1035  from another computer-readable medium, such as one or more of the non-transitory storage device(s)  1025 . Merely by way of example, execution of the sequences of instructions contained in the working memory  1035  might cause the processor(s)  1010  to perform one or more procedures of the methods described herein. 
     The terms “machine-readable medium” and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. In an embodiment implemented using the computer system  1000 , various computer-readable media might be involved in providing instructions/code to processor(s)  1010  for execution and/or might be used to store and/or carry such instructions/code. In many implementations, a computer-readable medium is a physical and/or tangible storage medium. Such a medium may take the form of a non-volatile media or volatile media. Non-volatile media include, for example, optical and/or magnetic disks, such as the non-transitory storage device(s)  1025 . Volatile media include, without limitation, dynamic memory, such as the working memory  1035 . 
     Common forms of physical and/or tangible computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, any other physical medium with patterns of marks, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read instructions and/or code. 
     Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to the processor(s)  1010  for execution. Merely by way of example, the instructions may initially be carried on a magnetic disk and/or optical disc of a remote computer. A remote computer might load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and/or executed by the computer system  1000 . 
     The communications subsystem  1030  (and/or components thereof) generally will receive signals, and the bus  1005  then might carry the signals (and/or the data, instructions, etc. carried by the signals) to the working memory  1035 , from which the processor(s)  1010  retrieves and executes the instructions. The instructions received by the working memory  1035  may optionally be stored on a non-transitory storage device  1025  either before or after execution by the processor(s)  1010 . 
     It should further be understood that the components of computer system  1000  can be distributed across a network. For example, some processing may be performed in one location using a first processor while other processing may be performed by another processor remote from the first processor. Other components of computer system  1000  may be similarly distributed. 
     The methods, systems, and devices discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as appropriate. For instance, in alternative configurations, the methods may be performed in an order different from that described, and/or various stages may be added, omitted, and/or combined. Also, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims. 
     Specific details are given in the description to provide a thorough understanding of example configurations (including implementations). However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. This description provides example configurations only, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations will provide those skilled in the art with an enabling description for implementing described techniques. Various changes may be made in the function and arrangement of elements without departing from the spirit or scope of the disclosure. 
     Also, configurations may be described as a process which is depicted as a flow diagram or block diagram. Although each may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may have additional steps not included in the figure. Furthermore, examples of the methods may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a non-transitory computer-readable medium such as a storage medium. Processors may perform the described tasks. 
     Having described several example configurations, various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the disclosure. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of the invention. Also, a number of steps may be undertaken before, during, or after the above elements are considered. Accordingly, the above description does not bind the scope of the claims.