The set-top box has become an important computing device for accessing media content services and the media content within those services. A set-top box is usually configured to provide users with access to a large number and variety of media content choices offered by a provider. For example, a user may choose to experience a variety of broadcast television programs, pay-per-view services, video-on-demand programming, Internet services, and audio programming via a set-top box.
The large number of media content choices offered by a provider can make it difficult for a user of a set-top box to find and select desired media content. On-screen program guides have alleviated this problem to some degree. A user of a set-top box is able to navigate within a conventional program guide in search of a desired media channel or program. However, as media content providers have expanded and continue to expand the services and media content choices provided to users (e.g., more media content channels), conventional tools for navigating within program guides have become inefficient and less effective. For example, certain conventional program guide tools require repetitive user input, present information in unintuitive and/or overly inclusive ways, and/or are slow to process significant amounts of program guide data typically associated with large numbers of media content choices.
The accompanying drawings illustrate various embodiments and are a part of the specification. The illustrated embodiments are merely examples and do not limit the scope of the disclosure. Throughout the drawings, identical or similar reference numbers designate identical or similar elements.
Exemplary search-based media program guide systems and methods are disclosed herein. As described in more detail below, the exemplary search-based media program guide systems and methods disclosed herein may provide a user of a media content access subsystem and/or device (e.g., a set-top box) with one or more tools for searching for media content and/or viewing search results in one or more search-based program guide graphical user interface (“GUI”) views. In certain embodiments, the exemplary systems and methods may efficiently search for media content based on one or more search requests and provide one or more search-based program guide views including data representative of media content matching the search request(s) for viewing by a user. In some examples, the exemplary systems and methods disclosed herein may provide one or more tools configured to facilitate user customization of one or more search-based program guide views.
As used herein, the terms “media content” and “media content instance” will be used herein to refer to any television program, on-demand media program, pay-per-view media program, broadcast media program, multicast media program, narrowcast media program, IPTV media content, recorded content (e.g., DVR content), advertisement (e.g., commercial), video, movie, song, video game, image, photograph, sound, or any segment, component, or combination of these or other forms of media content that may be viewed or otherwise experienced by a user. Exemplary search-based media program guide systems and methods will now be described in more detail with reference to the accompanying drawings.
For example, as shown in
Provider subsystem 102 and access subsystem 104 may communicate over network 106 using any suitable communication technologies, devices, media, and protocols supportive of remote data communications, including, but not limited to, data transmission media, communications devices, Transmission Control Protocol (“TCP”), Internet Protocol (“IP”), File Transfer Protocol (“FTP”), Telnet, Hypertext Transfer Protocol (“HTTP”), Real Time Protocol (“RTP”), User Datagram Protocol (“UDP”), Ethernet, and any other suitable communications technologies, devices, media, and protocols.
While
Components of system 100 may include any computer hardware and/or computer-implemented instructions (e.g., software), or combinations of computer-implemented instructions and hardware, configured to perform one or more of the processes described herein. In particular, one or more components of system 100 may be implemented on one physical computing device or may be implemented on more than one physical computing device. Accordingly, system 100 may include any number of computing devices, and may employ any of a number of computer operating systems.
One or more of the processes described herein may be implemented at least in part as instructions executable by one or more computing devices. In general, a processor (e.g., a microprocessor) receives instructions, from a computer-readable medium, (e.g., a memory, etc.), and executes those instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions may be stored and/or transmitted using any of a variety of known computer-readable media.
A computer-readable medium (also referred to as a processor-readable medium) includes any medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media and/or volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (“DRAM”), which typically constitutes a main memory. Common forms of computer-readable media include, for example, a floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
In some examples, provider subsystem 102 may be configured to generate or otherwise provide media content (e.g., in the form of one or more media content streams) to access subsystem 104. Access subsystem 104 may be configured to facilitate access by a user to media content received from provider subsystem 102. To this end, access subsystem 104 may present the media content for experiencing (e.g., viewing) by a user, record the media content, parse metadata and/or other data associated with the media content, etc. Presentation of the media content may include, but is not limited to, displaying, playing, or otherwise presenting the media content, or one or more components of the media content, such that the media content may be experienced by the user.
While an exemplary provider subsystem 102 is shown in
Communication interface 202 may be configured to communicate with one or more computing devices, including access subsystem 104. In particular, communication interface 202 may be configured to transmit and/or receive communication signals, media content, and/or data (e.g., program guide data) to/from access subsystem 104. Examples of communication interface 202 may include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. In at least one embodiment, communication interface 202 may provide a direct connection between provider subsystem 102 and access subsystem 104 via a direct link to a network, such as the Internet or a subscriber television network. Communication interface 202 may additionally or alternatively provide such a connection through, for example, a local area network (such as an Ethernet network), a personal area network, a telephone or cable network, a cellular telephone connection, a satellite data connection, or any other suitable connection.
In some examples, communication interface 202 may be configured to transmit (e.g., broadcast, multicast, and/or narrowcast) data representative of one or more media content instances to access subsystem 104. Such data may be transmitted in one or more media content data streams, as one or more data files, or in any other suitable manner as may serve a particular application. Communication interface 202 may be configured to interface with any suitable communication media, protocols, and formats, including any of those mentioned above.
Processor 204 generally represents any type or form of processing unit capable of processing data or interpreting, executing, and/or directing execution of one or more of the instructions, processes, and/or operations described herein. Processor 204 may direct execution of operations in accordance with one or more applications 210 or other computer-executable instructions such as may be stored in storage device 206 or another computer-readable medium. As an example, processor 204 may be configured to process data, including modulating, encoding, and/or otherwise preparing data (e.g., media content data) for transmission by communication interface 202.
Storage device 206 may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of data storage media and/or device. For example, storage device 206 may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, random access memory (“RAM”), dynamic RAM (“DRAM”), other non-volatile and/or volatile data storage units, or a combination or sub-combination thereof. Electronic data, including data described herein, may be temporarily and/or permanently stored in storage device 206. For example, data representative of one or more executable applications 210 configured to direct processor 204 to perform any of the content provider operations described herein may be stored within storage device 206. In some examples, data may be arranged in one or more databases residing within storage device 206.
While an exemplary access subsystem 104 is shown in
Communication facility 302 may be configured to communicate with one or more computing devices, including provider subsystem 102. In particular, communication facility 302 may be configured to transmit and/or receive communication signals, media content, and/or data to/from provider subsystem 102. Examples of communication facility 302 may include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. In at least one embodiment, communication facility 302 may provide a direct connection between provider subsystem 102 and access subsystem 104 via a direct link to a network, such as the Internet or a subscriber television network. Communication facility 302 may additionally or alternatively provide such a connection through, for example, a local area network (such as an Ethernet network), a personal area network, a telephone or cable network, a cellular telephone connection, a satellite data connection, or any other suitable connection.
As mentioned, provider subsystem 102 may transmit (e.g., broadcast, multicast, and/or narrowcast) data representative of one or more media content instances. Communication facility 302 may be configured to receive such data such that the data may be processed by access subsystem 104. To this end, communication facility 302 may include any device, logic, and/or other technologies suitable for receiving signals, data streams, and/or data representative of media content. Communication facility 302 may be configured to interface with any suitable communication media, protocols, and formats, including any of those mentioned above.
In certain embodiments, provider subsystem 102 may be configured to transmit and access subsystem 104 may be configured to receive data streams or signals including data representative of various media content instances in accordance with a transmission schedule. The transmission schedule may specify that particular media content instances are to be transmitted at scheduled transmission times and on certain media content carrier channels. As used herein, the term “scheduled transmission time” or “scheduled transmission” may refer generally to any period of time during which a media content instance is to be transmitted to access subsystem 104. The term “media content carrier channel” or “media content channel” as used herein may refer generally to any carrier of media content, including, but not limited to, media (e.g., television) channels, streams, addresses, frequencies or other carriers of media content.
Communication facility 302 may be configured to selectively identify, receive, and/or process appropriate data streams and/or media content instances at the scheduled transmission times and on the appropriate media content carrier channels. For instance, in certain implementations communication facility 302 may include a tuner configured to selectively receive media content carried on a particular media content carrier channel. The tuner may be tuned to a particular media content carrier channel such that the media content carried on the media content carrier channel is received and may be processed by access subsystem 104.
In some examples, communication facility 302 may include multiple tuners such that media content carried on different media content carrier channels may be concurrently received for processing by the access subsystem 104. For example, communication facility 302 may include a first tuner configured to receive media content carried on an analog video signal and a second tuner configured to concurrently receive media content carried on a digital compressed signal.
While one or more tuners may be used to receive various types of media content-carrying signals transmitted by provider subsystem 102, additionally or alternatively, communication facility 302 may be configured to receive other types of signals (e.g., other types of media content carrying signals) from provider subsystem 102 and/or one or more other sources without using a tuner. For example, provider subsystem 102 may transmit digital streams of data packets (e.g., Internet Protocol (“IP”) based data packets) that can be received without using a tuner. For such types of signals, communication facility 302 may receive and forward the signals directly to other components of access subsystem 104 without the signals going through a tuner. For an IP-based signal, for example, communication facility 302 may function as an IP receiver.
Processing facility 304 generally represents any type or form of processing unit capable of processing data or interpreting, executing, and/or directing execution of one or more of the instructions, processes, and/or operations described herein. Processing facility 304 may direct execution of operations in accordance with one or more executable applications 316 or other computer-executable instructions such as may be stored in storage facility 306 or another computer-readable medium. As an example, processing facility 304 may be configured to process data, including demodulating, decoding, and/or parsing data (e.g., data representative of media content received from provider subsystem 102 by communication facility 302), and encoding and modulating data for transmission by communication facility 302.
Storage facility 306 may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of data storage media and/or device. For example, storage facility 306 may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, random access memory (“RAM”), dynamic RAM (“DRAM”), other non-volatile and/or volatile data storage units, or a combination or sub-combination thereof. Electronic data, including any other data described herein, may be temporarily and/or permanently stored in storage facility 306. For example, data representative of one or more executable applications 316 configured to direct processing facility 304 to perform any of the operations described herein may be stored within storage facility 306. In addition, program guide data 318 and search guide data 320 may be stored in storage facility 306. Program guide data 318 and search guide data 320 will be described in more detail further below. In some examples, data may be arranged in one or more databases residing within storage facility 306.
I/O facility 308 may be configured to receive user input and provide user output and may include any hardware, firmware, software, or combination thereof supportive of input and output capabilities. For example, I/O facility 308 may include one or more devices for capturing user input, including, but not limited to, a microphone, speech recognition technologies, keyboard or keypad, touch screen component (e.g., touch screen display), receiver (e.g., an RF or infrared receiver), and one or more input buttons.
I/O facility 308 may include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers. In certain embodiments, I/O facility 308 may be configured to generate and provide graphical data to a display for presentation to a user. The graphical data may represent of one or more graphical user interfaces (“GUIs”), GUI views, media content views, program guide views, search-based program guide views, and/or any other view as may serve a particular application.
Program guide facility 310 may be configured to maintain and operate on program guide data 318. As mentioned above, media content instances may be transmitted by provider subsystem 102 at scheduled transmission times and on certain media content carrier channels. To assist access subsystem 104 and/or a user of access subsystem 104 with reception of media content instances at appropriate scheduled transmission times and on appropriate media content carrier channels, program guide data 318 may be received by communication facility 302 from provider subsystem 102 and/or from another source. The program guide data 318 may be stored in storage facility 306 as shown in
The program guide data 318 may include information descriptive of a media content transmission schedule, including information descriptive of media content carrier channels, scheduled transmission times (e.g., programming time slots), media content instances, metadata for the media content instances, and relationships between the media content channels, transmission times, and media content instances. In certain embodiments, the program guide data 318 received and stored by access subsystem 104 may be descriptive of a media content transmission schedule covering a certain period of time (e.g., a twenty-four hour period, a week, two weeks, or a month). Accordingly, access subsystem 104 may be configured to periodically receive at least one update to the program guide data 318 (i.e., updated program guide data) that is descriptive of a transmission schedule for a new period of time. For example, access subsystem 104 may be configured to receive updated program guide data on a daily basis (e.g., at a certain off-peak time each night) and to update program guide data 318 stored in storage facility 306 with the updated program guide data.
Program guide facility 310 may be configured to arrange and provide graphical data representative of a program guide view to I/O facility 308 for inclusion in a GUI. I/O facility 308 may generate and provide a GUI including the program guide view to a display for presentation to a user. A program guide view may include a graphical arrangement of program guide data 318, one or more program guide tools (e.g., program guide navigation tools), one or more graphical selectors for navigating and highlighting selectable options, and/or other graphics. Typically, a program guide view presents at least a portion of a media content transmission schedule to a user. The user may utilize the program guide view to access information about media content instances and scheduled transmission times and channels associated with the media content instances.
Search guide facility 312 may be configured to receive data representative of search requests (e.g., from I/O facility 340) and search program guide data 318 based on the search requests to identify matching media content (e.g., one or media content instances that match the search requests). In addition, search guide facility 312 may be configured to arrange and provide graphical data representative of a search-based program guide view to I/O facility 308 for inclusion in a GUI. I/O facility 308 may generate and provide a GUI including the search-based program guide view to a display for presentation to a user. A search-based program guide view may include a graphical arrangement of one or more select subsets of program guide data 318 identified as matching one or more search requests. Exemplary search-based program guide operations and views will be described in detail further below.
Access subsystem 104 and/or components of access subsystem 104 may be implemented as may suit a particular application.
As shown in
Device 400 may also include a receiver 404 configured to receive user input signals from a user input device 406. User input device 406 may include, for example, a remote control device or any other suitable input device and may be configured to communicate with receiver 404 via a wireless link, electrical connection, or any other suitable communication link.
Returning to
Data store 414 may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of storage media. For example, data store 414 may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, or other non-volatile storage unit. Media content and/or data associated with media content (e.g., program guide data 318 and/or search guide data 320) may be temporarily and/or permanently stored in data store 414.
Data store 414 is shown to be included within device 400 in
Data store 414 may include one or more live cache buffers 416. Live cache buffer 416 may additionally or alternatively reside in memory 418 or in a storage device external to device 400. In some examples, media content data may be temporarily stored in live cache buffer 416 to facilitate viewing and/or recording of the media content.
Device 400 may include memory 418. Memory 418 may include, but is not limited to, FLASH memory, random access memory (“RAM”), dynamic RAM (“DRAM”), other suitable computer-readable media, or any combination or sub-combination thereof. In some examples, one or more applications 419 configured to run on or otherwise be executed by device 400 may reside in memory 418. Applications 419 may be configured to direct device 400, or one or more components of device 400, to perform one or more of the operations described herein. In certain examples, program guide facility 310 and/or search guide facility 312 may be implemented, at least in part, as one or more applications 419 stored in memory 418 or other computer-readable medium accessible by device 400.
Device 400 may include one or more tuners 420. Tuner 420 may be configured to selectively receive media content carried on a particular media content carrier channel such that the media content may be processed by device 400. In some examples, media content received by tuner 420 may be temporarily buffered, or stored, in the live cache buffer 416. If there are multiple tuners 420, there may be a live cache buffer 416 corresponding to each of the tuners 420.
While tuner 420 may be used to receive certain media content-carrying signals transmitted by provider subsystem 102, device 400 may be configured to receive other types of media content signals (including media content signals and/or program guide data signals) from provider subsystem 102 and/or one or more other sources without using a tuner. For example, provider subsystem 102 may transmit digital streams of data packets (e.g., Internet Protocol (“IP”) based data packets) that can be received without using a tuner. For such types of media content signals, communication interface 402 may receive and forward the signals directly to other components of device 400 (e.g., processor 422 or signal processing unit 424, described in more detail below) without the signals going through tuner 420. For an IP-based signal, for example, signal processing unit 424 may function as an IP receiver.
Device 400 may include at least one processor, such as processor 422, configured to control and/or perform one or more operations of device 400. Device 400 may also include a signal processing unit 424 configured to process incoming media content. Signal processing unit 424 may be configured, for example, to demodulate and parse encoded digital media content. In some examples, device 400 may include one or more signal processing units 424 corresponding to each of the tuners 420.
As mentioned, access subsystem 104 may be configured to provide a program guide view including a graphical arrangement of program guide data 318, one or more program guide tools (e.g., program guide navigation tools), and one or more graphical selectors for navigating between and highlighting selectable options.
As shown in
Cells 602 may be arranged in program guide view 600 based on one or more attributes of cells 602 and/or the corresponding media content instances. For example, cells 602 may be arranged in program guide view 600 based on media content carrier channels associated with the media content instances and time slots representing time periods during which the media content instances are scheduled for transmission.
To this end, program guide view 600 may include graphical data representative of a plurality of media content carrier channels arranged along a channel axis. As shown in
Similarly, program guide view 600 may include a plurality of programming time slots arranged along a time axis. As shown in
Positions of cells 602 relative to channel rows 608 and time slot columns 614 in program guide view 600 may represent relationships between the media content instances associated with the cells 602 and media content carrier channels and programming time slots associated with the media content instances. For example, the position of cell 602-1 in program guide view 600 may represent that a media content instance (e.g., a television program titled “General Hospital”) associated with cell 602-1 is scheduled for transmission on the media content carrier channel labeled “2 ABC” and during the programming time slot from 3:00 PM to 3:30 PM.
Program guide view 600 may further include a graphical selector 616 which may be positioned within program guide view 600 to indicate a selected cell 602. In
The program guide view 600 shown in
As an alternative to moving selector 616 to navigate within program guide view 600, a user of access subsystem 104 may want to search for and locate desired media content in a more efficient and/or convenient manner. To this end, access subsystem 104 may be configured to provide one or more program guide search tools and search-based program guide views to a user. Exemplary program guide search tools and search-based program guide views that may be generated and provided by access subsystem 104 for display will now be described.
Moreover, while several examples described herein are directed to searching program guide data 318 for keyword search terms, this is illustrative only and not limiting in any sense. A program guide data search request may be associated with any suitable search criterion or criteria. For example, alternative or in addition to one or more keyword search terms, search criteria may include data representative of media content recommendations, scheduled media content recordings, content types (e.g., standard definition or high definition content), and any other criteria that may be used to search program guide data 318.
A user may utilize keyword search tool 902 of
Access subsystem 104 may be configured to provide graphical data representative of program guide search results for display in one or more search-based program guide views. For example,
As shown in
The media content instances may be determined to match the keyword search term when metadata associated with the media content instances includes the keyword search term, as described above. In certain examples, matching metadata may be found in the title of a media content instance, such as the keyword search term “MIL” being found in the title “Camila Visits New York,” for instance. In other examples, matching metadata may be found in one or more metadata fields other than the title of a media content instance. For example, a media content instance titled “General Hospital” may be determined to match a search request because a metadata field other than the title filed includes the keyword search term “MIL.”
As shown in
The cells 1002 may be arranged in search-based program guide view 1000 based on one or more attributes of the cells 1002 and/or corresponding matching media content instances. For example, the cells 1002 may be arranged in search-based program guide view 1000 based on media content carrier channels associated with the matching media content instances and programming time slots representing time periods during which the matching media content instances are scheduled for transmission.
To this end, search-based program guide view 1000 may include graphical data representative of a plurality of media content carrier channels arranged along a channel axis 1004. As shown in
In certain embodiments, the list 1006 of media content carrier channels includes only media content carrier channels associated with media content instances within a particular programming time block (e.g., such as time block 1016 described further below) and identified as matches to a program guide data search request. In the example illustrated in
Other media content carrier channels not associated with a matching media content instance may be omitted from the list 1006 of media content carrier channels in search-based program guide view 1000. An omission of a media content carrier channel not associated with a matching media content instance from search-based program guide view 1000 may be accomplished by filtering the media content carrier channel out of data representative of search-based program guide view 1000 and/or program guide view 600. For example, a media content carrier channel labeled “3 CW” in program guide view 600 may be filtered out of search-based program guide view 1000 when not associated with a matching media content instance.
In addition, search-based program guide view 1000 may include graphical data representative of a plurality of programming time slots arranged along a time axis 1010. As shown in
Time axis 1010 may include data representative of or otherwise associated with a time block spanning one or more programming time slots. In search-based program guide view 1000, such a time block comprises a ninety-minute time block including three thirty-minute time slots spanning a time period between 3:00 PM and 4:30 PM. This time block, which corresponds to a period of time graphically indicated in search-based program guide view 1000, may be referred to as a display time block 1016 as depicted in
In certain embodiments, display time block 1016 may span only a portion of the period of time covered by program guide data 318. As mentioned above, for example, program guide data 318 may be descriptive of a media content transmission schedule covering a certain period of time (e.g., a twenty-four hour period, a week, two weeks, or a month). Accordingly, display time block 1016 spanning programming time slots 1014 displayed in search-based program guide view 1000 may span only a portion of the overall time period covered by program guide data 318. The display time block 1016 shown in FIG. 10 is illustrative only. Other display time blocks covering other periods of time may be used as may suit a particular application, resolution, and/or display.
Positions of cells 1002 relative to channel rows 1008 and time slot columns 1014 in search-based program guide view 1000 may represent relationships between the matching media content instances associated with the cells 1002 and media content carrier channels and programming time slots associated with the matching media content instances. For example, the position of cell 1002-1 in search-based program guide view 1000 may represent that a media content instance (e.g., a television program titled “General Hospital”) associated with cell 1002-1 is scheduled for transmission on the media content carrier channel labeled “2 ABC” and during the programming time slot from 3:00 PM to 3:30 PM.
Hence, in certain embodiments, the plurality of cells 1002 included in search-based program guide view 1000 may be arranged to form a two-dimensional grid of cells 1002 having two axes—channel axis 1004 and time axis 1012. Positions of the cells 1002 within the grid may represent relationships between matching media content instances associated with the cells 1002 and media content carrier channels and programming time slots positioned along channel axis 1004 and time axis 1012, respectively.
In certain embodiments, access subsystem 104 may leverage one or more attributes of a full (e.g., unsearched) program guide view such as program guide view 600 of
Additionally or alternatively, access subsystem 104 may filter data representative of non-matching media content instances out of program guide view 600 on a cell-by-cell basis when generating search-based program guide view 1000. For example, a particular media content carrier channel may be associated with at least one matching media content instance. Accordingly, data representative of the media content channel may be included in search-based program guide view 1000. However, another media content instance associated with the media content carrier channel may not match the search request. Access subsystem 104 may filter data representative of the non-matching media content instance out of its respective cell in search-based program guide view 1000. As an example,
Search-based program guide view 1000 may further include a graphical selector 1018 which may be positioned within search-based program guide view 1000 to indicate a selected cell 1002. In
As an example, a user of access subsystem 104 may provide navigational input to cause access subsystem 104 to move selector 1018 from cell to cell in search-based program guide view 1000. The navigational input may be provided by the user in any suitable manner, including by the user utilizing input device 406. For example, the user may actuate right button 506 of input device 406 when viewing search-based program guide view 1000 of
To illustrate,
As shown in
One or more other features of search-based program guide view 1000 of
In addition, the updates may include omission, repositioning, and/or addition of data representative of one or more media content carrier channels. For instance, the updates may include omission of data representative of one or more media content carrier channels included in search-based program guide view 1000 from search-based program guide view 1100. Media content carrier channels labeled “2 ABC,” “8 NBC,” and “94 ESPN” in search-based program guide view 1000 of
In this or similar manner, access subsystem 104 may update graphical data included in search-based program guide view 1000 to produce another search-based program guide view 1100. The updates may be performed dynamically in response to user input such as navigational input causing movement of selector 1018 relative to cells 1002 within a search-based program guide grid. Accordingly, a user may navigate within a search-based program guide grid, and access subsystem 104 may dynamically update search-based program guide views based on changes to search results that may occur due to changes to a time block and/or a set of media content carrier channels.
In certain embodiments, search guide facility 312 may be configured to limit searches of program guide data 318 to one or more subsets of the program guide data 318. This may help promote quick and efficient search operations, especially where large amounts of program guide data 318 are maintained by access subsystem 104. In certain embodiments, for example, search guide facility 312 may restrict a search of program guide data 318 to data that is associated with a select time block, such as a display time block associated with a display of a program guide view and/or search-based program guide view. For instance, a search of program guide data 318 may be restricted to data associated with display time block 1016 of
To help illustrate,
In step 1202, a program guide data search request is received. For example, access subsystem 104 may receive data representative of a program guide data search request from a user of access subsystem 104, as described above.
In step 1204, a time block is associated with the program guide data search request. For example, access subsystem 104 may identify and associate a time block with the program guide data search request. Access subsystem 104 may identify the time block in any suitable way, such as in accordance with a predefined time block identification heuristic maintained by search guide facility 312. In certain embodiments, for example, access subsystem 104 may be configured to automatically identify the time block based on a time period associated with a search-based program guide GUI view. To illustrate, a program guide data search request may be received by access subsystem 104 at 3:23 PM. Access subsystem 104 may identify 3:23 PM as the time of receipt of the search request. Access subsystem 104 may then determine that the time of receipt falls within a particular programming time slot. For example, a programming time slot spanning a time period from 3:00 PM to 3:30 PM may be identified. Access subsystem 104 may identify a predetermined length of time associated with a display time block of a search-based program guide GUI view and use the predetermined length of time to identify any other programming time slots that may be included within the search-based program guide GUI view based on the time of receipt of the search request. For example, in addition to the programming time slot spanning a time period from 3:00 PM to 3:30 PM, access subsystem 104 may identify programming time slots spanning a time period from 3:30 PM to 4:30 PM. The identified time slots spanning a time period from 3:00 PM to 4:30 PM may make up the time block that access subsystem 104 associates with the search request in step 1204. Accordingly, the identified time block may correspond to a display time block such as display time block 1016 shown in
In step 1206, a set of program guide data associated with the time block is identified. For example, access subsystem 104 may identify a set of program guide data associated with the time block. For example, one or more media content instances and related program guide data associated with programming time slots within the time block may be identified. In certain embodiments, the identified set of program guide may include a subset of the program guide data 318 maintained by access subsystem 104. Accordingly, a search of programming guide data 318 may be restricted to a subset of the program guide data 318 associated with the identified time block.
In step 1208, the set of program guide data associated with the time block is searched to identify at least one matching media content instance based on the program guide data search request. For example, access subsystem 104 may search the set of program guide data identified in step 1206 to identify at least one media content instance that matches the program guide data search request received in step 1202.
In step 1210, a search-based program guide view is generated for display in a graphical user interface. For example, access subsystem 104 may generate and provide data representative of a search-based program guide view for display. In certain embodiments, the search-based program guide view may comprise or be similar to search-based program guide view 1000 shown in
In step 1212, navigational input is received. For example, access subsystem 104 may receive data representative of navigational input from input device 406 in response to a user of input device 406 actuating one or more navigational buttons (e.g., right button 506).
In step 1214, another time block is identified based on the navigational input. For example, access subsystem 104 may identify another time block based on the navigational input. In certain examples, the other time block may be identified by offsetting a currently selected time block, such as the time block identified and associated with the program guide data search request in step 1204, based on the navigation input. For example, access subsystem 104 may be configured to offset the currently selected time block by the length of time of the time block (e.g., by adding ninety minutes to the current time block) to identify the other time block. To illustrate, a currently selected time block spanning ninety minutes from 3:00 PM to 4:30 PM may be offset by ninety minutes to identify another ninety-minute time block from 4:30 PM to 6:00 PM. This illustrative only. The other time block may be identified in any suitable way based on the navigational input.
In step 1216, another set of program guide data associated with the other time block is identified. For example, access subsystem 104 may identify another set of program guide data associated with the other time block. The other set of program guide data may include one or more media content instances and related program guide data associated with programming time slots within the other time block identified in step 1214. The other set of program guide may include another subset of the program guide data 318 maintained by access subsystem 104. Accordingly, a search of programming guide data 318 may be restricted to a different subset of the program guide data 318 associated with the other time block.
In step 1218, the other set of program guide data is searched to identify at least one other matching media content instance based on the program guide data search request. For example, access subsystem 104 may search the other set of program guide data identified in step 1216 to identify at least one other media content instance that matches the program guide data search request received in step 1202.
In step 1220, the search-based program guide view is updated to exhibit data representative of the at least one other matching media content instance. For example, access subsystem 104 may update data representative of the search-based program guide view generated in step 1210 such that the search-based program guide view exhibits data representative of the at least one other matching media content instance. The updating may be performed in any suitable way and may include any of the exemplary updates described above in relation to transitioning from search-based program guide view 1000 of
For example, the updates may reflect a transition from one time block to another time block and a change in matching media content instances associated with the time block transition, including removal of graphical data representative of matching media content instances associated with the first time block and addition of graphical data representative of matching media content instances associated with the other time block. In certain examples, the updates may include replacement of a media content channel with another media content channel within a channel row of search-based program guide view 1000. For example, the media content carrier channel labeled “2 ABC” in
In certain embodiments, access subsystem 104 may be configured to generate a virtual search channel associated with a program guide data search request and provide graphical data representative of the virtual search channel for display in a search-based program guide view. The graphical data representative of the virtual search channel may include graphical data representative of one or more media content instances determined to match the program guide data search request.
To illustrate,
For each of the virtual search channels 1302, graphical data representative of one or more media content instances matching the corresponding program guide data search request (e.g., the respective keyword search term(s) associated with the program guide data search request) may be displayed within the virtual search channel. In the illustrated example, the graphical data representative of the matching media content instances may include textual data representing titles (e.g., “Argentina vs. Peru, World Soccer Championship” in virtual search channel 1302-1 and “Ed, Edd, 'n Eddy” and “Ben 10” in virtual search channel 1302-2) of the matching media content instances.
As shown in
Cells 1304 may be arranged in search-based program guide view 1300 based on one or more attributes of cells 1304 and/or corresponding matching media content instances. For example, cells 1304 may be arranged in search-based program guide view 1300 based on and/or relative to virtual search channels 1302 associated with the matching media content instances and programming time slots representing time periods during which the matching media content instances are scheduled for transmission.
To this end, search-based program guide view 1300 may include graphical data representative of a plurality of programming time slots arranged along a time axis 1306. As shown in
Time axis 1306 may include data representative of or otherwise associated with a time block spanning one or more programming time slots. In search-based program guide view 1300, the time block comprises a ninety-minute time block including three thirty-minute time slots spanning a time period between 4:30 PM and 6:00 PM. This time block, which corresponds to a period of time graphically indicated in search-based program guide view 1300, may be referred to as display time block 1312 as depicted in
In addition, virtual search channels 1302 may be arranged vertically along a channel axis 1314, forming a plurality of horizontal rows 1316 (e.g., rows 1316-1 and 1316-2). In
In other examples, matching media content instances associated with a virtual search channel 1302 may be associated with multiple media content channels and overlapping programming time slots. In such examples, the virtual search channel 1302 may include multiple rows representing multiple media content carrier channels. For example,
As shown in
In
Virtual search channels 1302 may be arranged along channel axis 1314 in any suitable order and/or configuration. In certain embodiments, access subsystem 104 may be configured to provide one or more tools that may be utilized by a user of access subsystem 104 to customize the order in which virtual search channels 1302 are displayed in search-based program guide view 1300 or 1400.
Additionally or alternatively, access subsystem 104 may be configured to provide one or more tools that may be utilized by a user of access subsystem 104 to select one or more program guide data search requests to be represented in one or more virtual search channels 1302 in search-based program guide view 1300 or 1400. To this end, access subsystem 104 may be configured to save and maintain data representative of received program guide data search requests. Such data may be saved within search guide data 320 shown in
Graphical data representative of saved search requests may be provided by access subsystem 104 for display and consideration of a user.
In certain embodiments, access subsystem 104 may provide one or more tools that may be utilized by a user of access subsystem 104 to select one or more of the saved searches for inclusion in one or more virtual search channels 1302 in search-based program guide view 1300 or 1400. For example, a user may select the saved searches labeled “MIL” and “Soccer,” and, in response, access subsystem 104 may generate and provide data representative of search-based program guide view 1300 or 1400 including virtual search channels 1302-1 and 130-1 representative of the “MIL” and “Soccer” search requests, respectively, for display. In certain examples, the generation of the search-based program guide view 1300 or 1400 may include or be preceded by access subsystem 104 searching program guide data 318 for media content instances matching the selected search requests, as described above.
In this or similar manner, access subsystem 104 may enable a user of access subsystem 104 to provide input to customize one or more search-based program guide views that may be generated and provided for display by access subsystem 104. Accordingly, a user may build one or more custom views that may include data representative of media content instances that are of interest to the user.
In step 1502, data representative of a plurality of program guide data search requests is maintained. For example, access subsystem 104 may maintain data representative of a plurality of program guide data search requests. The data, which may be included in search guide data 320 in storage facility 306, may represent one or more saved program guide data search requests.
In step 1504, program guide data is searched to identify at least one matching media content instance for each of the program guide data search requests. For example, access subsystem 104 may search program guide data 318 to identify at least one matching media content instance for each of the program guide data search requests. The searching may be performed in any suitable way, including performing one search or multiple searches of program guide data in parallel or serially. In certain embodiments, step 1504 may include restricting one or more searches of program guide data 318 to at least one subset of the program guide data 318. For example, access subsystem 104 may restrict a search to a subset of the program guide data 318 that is associated with a time block (e.g., display time block 1016, 1102, or 1312) corresponding to a time period indicated in a search-based program guide view.
In step 1506, a plurality of virtual search channels is generated, each of the virtual search channels corresponding to one of the program guide data search requests. For example, access subsystem 104 may generate data representative of the plurality of virtual search channels, the virtual search channels including one virtual search channel for each program guide data search request. In certain embodiments, the data representative of the virtual search channels may be included in search guide data 320 in storage facility 306.
In step 1508, data representative of a search-based program guide view is generated for display in a graphical user interface, the search-based program guide view including graphical data representative of the plurality of virtual search channels. For example, access subsystem 104 may generate data representative of a search-based program guide view such as search-based program guide view 1300 or 1400 for display in a graphical user interface. In certain embodiments, graphical data representative of the at least one matching media content instance corresponding to one of virtual search channels may be included within the graphical data representative of the same virtual search channel in the search-based program guide interface.
In the preceding description, various exemplary embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the scope of the invention as set forth in the claims that follow. For example, certain features of one embodiment described herein may be combined with or substituted for features of another embodiment described herein. The description and drawings are accordingly to be regarded in an illustrative rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
4977455 | Young | Dec 1990 | A |
5151789 | Young | Sep 1992 | A |
5253066 | Vogel | Oct 1993 | A |
5307173 | Yuen et al. | Apr 1994 | A |
5335079 | Yuen et al. | Aug 1994 | A |
5353121 | Young et al. | Oct 1994 | A |
5382983 | Kwoh et al. | Jan 1995 | A |
5479266 | Young et al. | Dec 1995 | A |
5479268 | Young et al. | Dec 1995 | A |
5499103 | Mankovitz | Mar 1996 | A |
5512963 | Mankovitz | Apr 1996 | A |
5515173 | Mankovitz et al. | May 1996 | A |
5532732 | Yuen et al. | Jul 1996 | A |
5532754 | Young et al. | Jul 1996 | A |
5541738 | Mankovitz | Jul 1996 | A |
5550576 | Klosterman | Aug 1996 | A |
5553123 | Chan et al. | Sep 1996 | A |
5559550 | Mankovitz | Sep 1996 | A |
5600711 | Yuen | Feb 1997 | A |
5619274 | Roop et al. | Apr 1997 | A |
5640484 | Mankovitz | Jun 1997 | A |
5684525 | Klosterman | Nov 1997 | A |
5699107 | Lawler et al. | Dec 1997 | A |
5701383 | Russo et al. | Dec 1997 | A |
5706145 | Hindman et al. | Jan 1998 | A |
5727060 | Young | Mar 1998 | A |
5734786 | Mankovitz | Mar 1998 | A |
5790198 | Roop et al. | Aug 1998 | A |
5801787 | Schein et al. | Sep 1998 | A |
5808608 | Young et al. | Sep 1998 | A |
5809204 | Young et al. | Sep 1998 | A |
5812205 | Milnes et al. | Sep 1998 | A |
5828945 | Klosterman | Oct 1998 | A |
5870150 | Yuen | Feb 1999 | A |
5886746 | Yuen et al. | Mar 1999 | A |
5915026 | Mankovitz | Jun 1999 | A |
5923362 | Klosterman | Jul 1999 | A |
5940073 | Klosterman et al. | Aug 1999 | A |
5949954 | Young et al. | Sep 1999 | A |
5959688 | Schein et al. | Sep 1999 | A |
5969748 | Casement et al. | Oct 1999 | A |
5970206 | Yuen et al. | Oct 1999 | A |
5974222 | Yuen et al. | Oct 1999 | A |
5987213 | Mankovitz et al. | Nov 1999 | A |
5988078 | Levine | Nov 1999 | A |
5991498 | Young | Nov 1999 | A |
6002394 | Schein et al. | Dec 1999 | A |
6016141 | Knudson et al. | Jan 2000 | A |
6028599 | Yuen et al. | Feb 2000 | A |
6049652 | Yuen et al. | Apr 2000 | A |
6052145 | Macrae et al. | Apr 2000 | A |
6072983 | Klosterman | Jun 2000 | A |
6075551 | Berezowski et al. | Jun 2000 | A |
6075575 | Schein et al. | Jun 2000 | A |
6078348 | Klosterman et al. | Jun 2000 | A |
6091882 | Yuen et al. | Jul 2000 | A |
6118492 | Milnes et al. | Sep 2000 | A |
6133909 | Schein et al. | Oct 2000 | A |
6137950 | Yuen | Oct 2000 | A |
6144401 | Casement et al. | Nov 2000 | A |
6151059 | Schein et al. | Nov 2000 | A |
6167188 | Young et al. | Dec 2000 | A |
6177931 | Alexander et al. | Jan 2001 | B1 |
6216265 | Roop et al. | Apr 2001 | B1 |
6239794 | Yuen et al. | May 2001 | B1 |
6247176 | Schein et al. | Jun 2001 | B1 |
6262722 | Allison et al. | Jul 2001 | B1 |
6263501 | Schein et al. | Jul 2001 | B1 |
6323911 | Schein et al. | Nov 2001 | B1 |
6341195 | Mankovitz et al. | Jan 2002 | B1 |
6341374 | Schein et al. | Jan 2002 | B2 |
6388714 | Schein et al. | May 2002 | B1 |
6396546 | Alten et al. | May 2002 | B1 |
6412110 | Schein et al. | Jun 2002 | B1 |
6430358 | Yuen et al. | Aug 2002 | B1 |
6430359 | Yuen et al. | Aug 2002 | B1 |
6453471 | Klosterman | Sep 2002 | B1 |
6460181 | Donnelly | Oct 2002 | B1 |
6466734 | Yuen et al. | Oct 2002 | B2 |
6469753 | Klosterman et al. | Oct 2002 | B1 |
6477705 | Yuen et al. | Nov 2002 | B1 |
6498895 | Young et al. | Dec 2002 | B2 |
6505348 | Knowles et al. | Jan 2003 | B1 |
6538701 | Yuen | Mar 2003 | B1 |
6549719 | Mankovitz | Apr 2003 | B2 |
6564379 | Knudson et al. | May 2003 | B1 |
6567606 | Milnes et al. | May 2003 | B2 |
6588013 | Lumley et al. | Jul 2003 | B1 |
6668133 | Yuen et al. | Dec 2003 | B2 |
6687906 | Yuen et al. | Feb 2004 | B1 |
6732369 | Leftwich et al. | May 2004 | B1 |
6742183 | Reynolds et al. | May 2004 | B1 |
6745391 | Macrae et al. | Jun 2004 | B1 |
6756997 | Ward et al. | Jun 2004 | B1 |
6760537 | Mankovitz | Jul 2004 | B2 |
6799326 | Boylan et al. | Sep 2004 | B2 |
6799327 | Reynolds et al. | Sep 2004 | B1 |
6850693 | Young et al. | Feb 2005 | B2 |
6859799 | Yuen | Feb 2005 | B1 |
7039935 | Knudson et al. | May 2006 | B2 |
7069576 | Knudson et al. | Jun 2006 | B1 |
7487529 | Orlick | Feb 2009 | B1 |
20010013126 | Lemmons et al. | Aug 2001 | A1 |
20010029610 | Corvin et al. | Oct 2001 | A1 |
20010047298 | Moore et al. | Nov 2001 | A1 |
20010054181 | Corvin | Dec 2001 | A1 |
20020073424 | Ward et al. | Jun 2002 | A1 |
20020124255 | Reichardt et al. | Sep 2002 | A1 |
20020184625 | Allport | Dec 2002 | A1 |
20030005445 | Schein et al. | Jan 2003 | A1 |
20030028889 | McCoskey et al. | Feb 2003 | A1 |
20030056219 | Reichardt et al. | Mar 2003 | A1 |
20030110495 | Bennington et al. | Jun 2003 | A1 |
20030110499 | Knudson et al. | Jun 2003 | A1 |
20030115599 | Bennington et al. | Jun 2003 | A1 |
20030115602 | Knee et al. | Jun 2003 | A1 |
20030163813 | Klosterman et al. | Aug 2003 | A1 |
20030164858 | Klosterman et al. | Sep 2003 | A1 |
20030177494 | Satterfield et al. | Sep 2003 | A1 |
20030188310 | Klosterman et al. | Oct 2003 | A1 |
20030188311 | Yuen et al. | Oct 2003 | A1 |
20030196201 | Schein et al. | Oct 2003 | A1 |
20030204847 | Ellis et al. | Oct 2003 | A1 |
20030208756 | Macrae et al. | Nov 2003 | A1 |
20040010806 | Yuen et al. | Jan 2004 | A1 |
20040045025 | Ward et al. | Mar 2004 | A1 |
20040107437 | Reichardt et al. | Jun 2004 | A1 |
20040117848 | Karaoguz et al. | Jun 2004 | A1 |
20040168189 | Reynolds et al. | Aug 2004 | A1 |
20040194138 | Boylan et al. | Sep 2004 | A1 |
20040261098 | Macrae et al. | Dec 2004 | A1 |
20050010949 | Ward et al. | Jan 2005 | A1 |
20050028201 | Klosterman et al. | Feb 2005 | A1 |
20050125823 | McCoy et al. | Jun 2005 | A1 |
20050149964 | Thomas et al. | Jul 2005 | A1 |
20050155056 | Knee et al. | Jul 2005 | A1 |
20050216936 | Knudson et al. | Sep 2005 | A1 |
20050251824 | Thomas et al. | Nov 2005 | A1 |
20060020973 | Hannum et al. | Jan 2006 | A1 |
20060156336 | Knudson et al. | Jul 2006 | A1 |
20060212894 | Knudson et al. | Sep 2006 | A1 |
20060277574 | Schein et al. | Dec 2006 | A1 |
20060288366 | Boylan et al. | Dec 2006 | A1 |
20070016926 | Ward et al. | Jan 2007 | A1 |
20070033613 | Ward et al. | Feb 2007 | A1 |
20070107010 | Jolna et al. | May 2007 | A1 |
20070118873 | Houh et al. | May 2007 | A1 |
20070186241 | Sugimoto et al. | Aug 2007 | A1 |
20070288959 | Istvan et al. | Dec 2007 | A1 |
20080276279 | Gossweiler et al. | Nov 2008 | A1 |
20090064228 | Lin | Mar 2009 | A1 |
20090320072 | McClanahan et al. | Dec 2009 | A1 |
20100299701 | Liu et al. | Nov 2010 | A1 |
Number | Date | Country | |
---|---|---|---|
20100333139 A1 | Dec 2010 | US |