The present arrangement provides a system and method that automatically searches and retrieves information from at least one source that is associated with content selected by a user.
The number of available television channels has steadily increased over the years. In view of this increase, the average viewer is facing a glut of television content from which to choose. The average number of television channels that are received in a U.S. home has reached a record high of 118.6. The magnitude of available content combined with the busy lifestyle of the average viewer is bound to create instances where the viewer ends up missing programs of interest. Conventional solutions have been developed in an attempt to address this problem.
One solution to address this problem includes devices that employ time shifting of content such as a VCR, a Personal Video Recorder (PVR) and/or a Digital Video Recorder (DVR). These devices enable a user to access content of interest at a time other than when the original content is being broadcasted. Time shifting of content is provided by scheduling recordings of content of interest to be stored on a storage medium or in a memory. Additionally, as systems have advanced, PVRs/DVRs allow a user to schedule recordings by time, by specific program, by programming season etc. The systems utilize the program guide to allow the device to factor in re-runs, last minute schedule changes, changes in broadcast time, etc. Furthermore, these devices now include more than one independently operating tuner within the same receiver. Multiple tuners enable a user to record a live program while watching another live program simultaneously or to record two programs at the same time while watching a previously recorded one. Some dual-tuner DVRs also have the ability to output to two separate television sets at the same time. Moreover, these devices allow users to remotely program their DVR via an internet enabled device.
Another solution that has been developed is the implementation of Video on Demand (VoD) services which offer a different type of time shifting as compared to the recording devices discussed above. VoD services offered by cable providers typically work by hosting content on their backend servers and offering viewers a way to browse through and select a particular piece of content on their own television sets. The content is then streamed directly to their set-top boxes. With the improvement in compression and streaming technology in conjunction with the increasing bandwidth capacities of communication networks, websites such as HULU® and FANCAST® offer time and place shifting of television programs. A user can stream programs available on these sites, at any time and to any internet enabled device.
A drawback associated with time shifting devices and schemes is that these solutions require the user to be cognizant of what he/she will be missing or has already missed. However, being aware of all content that may be of interest to a user is increasingly difficult in view of the vast library of content available to users. Another drawback is that these solutions are unable to operate without the manual request and intervention of the user. The user needs to be aware of his likes/dislikes and then actively seek that content via any of the above mentioned services. This becomes increasingly difficult as the content space continues to expand. The above mentioned services require the user to actively pull content from them which is orthogonal to the push model typically associated with the consumption of TV content. Therefore, there is a need for a system that suggests content that may be desirable to a user without requiring user intervention to obtain the suggested content.
In a multi-screen home environment, the combination of set-top box (STB) and television (STB+TV) may be referred to as a primary display device that can function to record live content and organizes it as clips. When the presence of a secondary device is detected, a list of pre-recorded clips is presented on the secondary display device. The user now has the option of either watching the content on the primary display device or on the secondary display device or storing the content as content-on-the-go for later viewing on the second screen.
In one embodiment, a method of identifying and providing content to a user, the method performed by a controller with an internet interface. The method includes the activities of receiving, by the controller, electronic program guide data, the electronic program guide data being selectively displayed on a primary display device. The method further includes parsing, by an attribute processor, the received electronic program guide data to identify at least one program description attribute for a currently tuned program. The received electronic program guide is searched by a content processor which also detects at least one further program having the identified at least one program description attribute. The content processor also identifies the at least one further program as recommended content. The method further includes the activity of generating, by a user interface generator, a user interface display including the recommended content user interface including a user selectable data item representing the recommended content for display on a secondary display device different from the primary display device.
In another embodiment, a system for identifying and providing content to a user is described. The method is performed by a controller with an internet interface. A controller receives electronic program guide data, the electronic program guide data being selectively displayed on a primary display device. An attribute processor parses the received electronic program guide data to identify at least one program description attribute for a currently tuned program. A content processor searches the received electronic program guide and detects at least one further program having the identified at least one program description attribute. The content processor identifies the at least one further program as recommended content in step and a user interface generator generates, a recommended content user interface including a user selectable data item representing the recommended content for display on a secondary display device different from the primary display device.
The above presents a simplified summary of the subject matter in order to provide a basic understanding of some aspects of subject matter embodiments. This summary is not an extensive overview of the subject matter. It is not intended to identify key/critical elements of the embodiments or to delineate the scope of the subject matter. Its sole purpose is to present some concepts of the subject matter in a simplified form as a prelude to the more detailed description that is presented later.
To the accomplishment of the foregoing and related ends, certain illustrative aspects of embodiments are described herein in connection with the following description and the annexed drawings. These aspects are indicative, however, of but a few of the various ways in which the principles of the subject matter can be employed, and the subject matter is intended to include all such aspects and their equivalents. Other advantages and novel features of the subject matter can become apparent from the following detailed description when considered in conjunction with the drawings.
The subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject matter. It can be evident, however, that subject matter embodiments can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the embodiments.
As used in this application, the term “component” is intended to refer to hardware or a combination of hardware and software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable running on a processor, and/or a microchip and the like. By way of illustration, both an application running on a processor and the processor can be a component. One or more components can reside within a process and a component can be localized on one system and/or distributed between two or more systems. Functions of the various components shown in the figures can be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software.
When provided by a processor, the functions can be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which can be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and can implicitly include, without limitation, digital signal processor (“DSP”) hardware, read-only memory (“ROM”) for storing software, random access memory (“RAM”), and non-volatile storage. Moreover, all statements herein reciting instances and embodiments of the invention are intended to encompass both structural and functional equivalents. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure).
It should be noted that any hyperlinks used herein are used for purposes of example only. These hyperlinks may or may not be active and may or may not contain data. Any data stored at the location corresponding to any hyperlink is not required for an understanding of the present invention.
Content providers provide access to different types of content to a plurality of users. For example, cable/satellite providers typically rent set top boxes to consumers which act as a portal or gateway for the delivery of different types of content. The equipment that selectively provides access to content advantageously accesses content guide data that can be decoded and displayed to a user on a display device. Content guide data includes a listing of at least one channel on which content may be accessed and information associated with the content on the at least one channel. An example is electronic program guide (EPG) data that is delivered either directly inbound from the cable provider through the same channel as the broadcast data or through an added internet service that compiles and provides content guide data.
As noted above, the amount of content that is accessible by a user is increasing exponentially with the improvement in communication technology and infrastructure. The system described herein advantageously provides an automatic recommendation regarding content that may be interesting to at least one user at a location where content may be accessed. In one embodiment, the system automatically uses user-specific data in a user profile that includes content characteristic data (e.g. likes, dislikes, content genres, actors, etc) to automatically search for content that corresponds to at least one content characteristic data in the user profile. Once located, the system automatically acquires data representing at least a portion of the entire content to be provided to the user as a recommendation. The acquired recommended content may be automatically provided to (e.g. “pushed”) the at least one user on at least one of a primary display device and a secondary display device.
In another embodiment, the system advantageously identifies content that the user may have at least one of (a) previously accessed; (b) scheduled a recording; (c) performed a search to find; and (d) indicated via user input that the content is of interest. The system automatically searches content information sources (e.g. EPG data or any other external data source) that include information associated with the interesting content. The system automatically parses the information to identify attributes associated with a respective program that provide particular types of information about the program and populates a database with the identified attributes. The identified attributes may be used as seed terms for a searching algorithm that automatically searches locations on a communication network for information that is related to the program.
The present system advantageously searches for and acquires related recommended content information from a plurality of different external sources for use in producing a user interface display image that provides recommended content to a user. The search and acquisition of related content information may be done in advance of when the user would be viewing the content and the recommendations may be automatically pushed to the user when the system identifies that the user is connected (e.g. the user is located within a predetermined area of a set top box). The results of these searches are automatically formatted into a user interface and presented to a user on at least one of a primary or secondary display device.
The system further provides techniques that leverage, for example, the primary display device (e.g., STB+TV) as the media hub in a multi screen interactive home setup (see
One exemplary embodiment of the system is shown in
In the system embodiment 100 of
The secondary display devices 112 are able to communicate with the set top box 102 via a transceiver 110. The secondary display devices may communicate with the set top box 102 via wireless communication and/or wired communication. Examples of communication modes that may be supported and implemented by the set top box 102 include but are not limited to (a) wifi; (b) Bluetooth; (c) radio frequency; and (d) Ethernet. However, any communication scheme that enables data to be transmitted and received between the set top box 102 and any secondary device 112 may be used. The system advantageously distinguishes between the plurality of secondary display devices 112 connected to the set top box 102 by actively monitoring a device specific identifier that is unique to each secondary display device 112. An example of a device specific identifier may be a Media Access Control (MAC) address. However, this is described for purposes of example only and any data in any format may be used as a device specific identifier provided that the data uniquely identifies the particular device and allows it to be distinguished from any other device of the same type or different type.
In one embodiment, the set top box 102 includes a memory (
Additionally, the user profile data stored in memory of the set top box includes user activity profile data items that are dynamically updated and based on the type of content that is accessed by the user. Set top box 102 may automatically track content that is tuned and displayed on primary display device 104. In one embodiment, the system automatically parses content description information (e.g. electronic program guide data) to derive content data corresponding to at least content attribute that describes the content. The parsing may occur if the content remains tuned for a predetermined period of time. In another embodiment, the system may automatically track user navigation of electronic program guide to identify content in which the user has interest. If the system determines that the guide navigation tool remains on a particular piece of content for a predetermined period of time (e.g. highlighting of an entry in the EPG), the system automatically parses content description information (e.g. electronic program guide data) to derive attributes describing the content and automatically add the content data to the user activity profile data. Alternatively, the system may automatically parse content description information (e.g. electronic program guide data) to derive attributes describing the content in response to a control signal requesting additional information about the content (e.g. selection of an “information button” on a remote control). Content data may be automatically added to the user activity profile data whereby these attributes can be used to search for and acquire content which will be presented to a user as recommended content data.
In these embodiments, the system advantageously makes content recommendations to users of the secondary devices without requiring direct input from the user. The recommendation algorithm gradually builds up a personal user profile of data by monitoring the content being accessed without having to solicit explicit feedback about the likes and dislikes of the user. The secondary display devices enable the system to push recommendations to the user in a non intrusive fashion. In another embodiment, the set top box 102 may be able to access user activity on the secondary display device (e.g. browsing history, social networking site information, other sources of user-specific information) to further refine the recommendation system by including this data in the user profile stored in set top box 102. This advantageously enables the system to make targeted recommendations of content that the user will be more likely to consume. For example, the viewing frequency of a particular user can be an input factor into an algorithm to improve the content being recommended to the user. If User A has a substantial amount of content pushed to them but the system determines that User A only watches the content infrequently (e.g. once a month), the system may automatically modify the manner in which the content is provided to User A by transcoding recommended content in a data format that allows the secondary device to acquire and store all recommended content data between viewings. Along the same lines, if User B has few pieces of content pushed to them but accesses the pushed content daily, the system may automatically modify the delivery manner by transcoding the recommended content in a higher resolution because it is accessed and deleted more frequently. Other modifications may be possible based on the viewing patterns and the content being viewed. The system automatically updates the user profile data with any data item that defines how recommendations should be made and how recommended content may be delivered to the secondary device.
The above described updating of data in a user activity profile may be performed by an attribute processor (
The attribute processor (
The set top box 102 further includes a user interface (UI) display processor (
The following is an exemplary description of how recommended content data is caused to be pushed and displayed on the secondary display device 112. The following includes a description of television shows and content associated with the television show. However, one skilled in the art would appreciate that the system is operable to search for any television show, either broadcast live or stored on a storage medium, and acquire a set of related content data associated therewith to be provided in a UI display on the secondary display device 112.
This exemplary embodiment will be described with respect to User A with secondary device 112B shown in
In response to the creation of a user profile for User A, the content processor (
In another embodiment, the set top box 102 may be controlled by a user 106 or other device (e.g. a VCR, a DVR, another tuner, etc) in a known manner, for example using a remote control (not shown), to cause the set top box 102 (or primary display device 104) to tune a desired program. In response to tuning a desired program, the content processor (
In a further embodiment, the set top box 102 may controlled by a user 106 or other device (e.g. a VCR, a DVR, another tuner, etc) in a known manner, for example using a remote control (not shown), to cause the set top box 102 (or primary display device 104) to display a user interface including an electronic program guide on primary display device 104. The program guide data includes information that describes the plurality of programs that are available to be tuned at a give time. In creating a set of recommended content for display on the secondary display device 112, program guide data and any other data identifying and/or describing program content are parsed by the system to retrieve attribute data therefrom. The attribute data is derived by parsing the EPG data as a user selects a particular program within the EPG being displayed. It is important to note that this selection does not necessarily mean that the program is being tuned by the tuner module, but rather that the data in the EPG is highlighted or otherwise designated as active to be shown to the user on the primary display device. Thus, selection of a program within the EPG functions as a program identifier which identifies a respective program that is of interest to the user. The system uses the program identifier to retrieve attribute data for the selected program which may be used in searching EPG data for additional content that may be of interest to the user based on the attributes associated with the currently selected program. Moreover, in response to receipt of a control signal that causes the current program selection to change (i.e. scrolling through the guide), the system automatically searches for additional interesting content based on the attributes associated with the newly selected program. This advantageously provides the most complete set of recommended content to a user at any given time based on their content viewing habits.
An exemplary user interface generated by the system enabling a user to review and select recommended content is shown in
In another embodiment, the recommended content data items 120A-D may include a user selectable image element that enables the user to specify if the particular recommended content is interesting to the user. By indicating that recommended content is interesting or not interesting, a profile update signal is generated by the secondary display device 112 for transmission to the set top box. In response to receipt of the profile update signal, the system automatically updates user profile data to indicate that a particular recommendation was desired or non-desired. In this manner, the user is able to selectively approve or disapprove of recommended content and improve the recommendation algorithm implemented by the system. In one exemplary embodiment, the user profile data may be updated when a user identifies related content as not desirable by identify attributes of the not desirable content that differ from the attributes used as seed terms that located the content. Over time, content identified as not desirable includes similar non-matching attributes, the system may automatically modify the search algorithm to search for content having a certain set of attributes but not others. This modification is described for purposes of example only and any other modification that enables the system to dynamically update the user profile data to improve recommendations may be implemented.
The recommendation algorithm described in either of
Further, in another embodiment, steps 304 in
The memory 520 includes at least one data structure, such as a database, that includes at least one user profile. The at least one user profile corresponds to a unique secondary display device 545 and includes information defining content that is interesting to the user. The user profile data may include a set of attributes used in describing program content. The attribute set may be predefined by the content provider (cable/satellite provider) and correspond to content characteristics that are transmitted along with the input signal that describe the various programs able to be tuned by tuner 510. In an alternative embodiment, the function of a database for the EPG function, may be located external to the controller 500. An external database (not shown), would interface with the content processor 525 via a suitable interface, such as a disc drive interface or a web interface for an external drive or cloud-based database respectively.
The controller 500 further includes an attribute processor 515 coupled to both the tuner 510 and the memory 520. In response to tuning a particular piece of content, the attribute processor 515 automatically parses the ancillary data to identify the attributes associated with each program listed in the ancillary data. In another embodiment, the attribute processor 515 is operable in response to user selection of content during program guide navigation. In a further embodiment, attribute processor 515 may be operable using data in the unique user profile to identify attributes associated with programs listed in the electronic program guide. In this embodiment, the attribute processor 515 automatically parses the electronic program guide at a set time in advance of the time frame in which the ancillary data will actually be displayed to a user. For example, if the ancillary data is electronic program guide data for a particular day, the attribute processor 515 may parse the electronic program guide at a predetermined time prior to the particular day. Alternatively, the parsing and populating may occur in response to receipt of a selection signal from a user.
In another embodiment, the system may automatically take into consideration user preferences and past user behavior data for use as input in order to search for content to be recommended to the user. The system may automatically track user behavior including user navigation and content selection data that can be stored with the user profile data in memory 520. The system can further access the user preference and navigation data to identify other potential types of content information and content sources that are displayed to the user on the secondary display device. By considering user preferences and behavior, the attribute processor 515 may automatically update the set of attributes in the data structure stored in memory 520 thereby enabling additional attribute data to be collected and used in searching for related content information. For example, the user-specified attributes may enable the system to prioritize an order of sources of related content information to be searched.
A content processor 525 is coupled to the tuner 510, attribute processor 515, a user interface (UI) display processor 540 and the memory 520. The content processor may execute a recommended content search algorithm such as those described above with respect to
The content processor 525 may also query the data structure in memory 520 to acquire attribute data which may be used to search additional sources for related content information and for sources where related content is stored. The attribute data may be used as search terms in the recommended content searching algorithm to locate information about each respective program assigned a unique program identifier. The content processor 525 initiates a search across at least one of a local and wide area network for information about the program. The recommended content information search algorithm may be included in the content search module which is executed by the content processor 525 engages an internet interface 530 which is coupled thereto to initiate a search of external data sources 535. Data representing the results of the search are retrieved by the content processor 525 and may be stored in memory 520. The search result data may be stored in a separate data structure from the attribute data and/or the user profile data but may be linked via the unique program identifiers so that the relevant data is quickly and easily retrieved when needed.
Content processor 525 may also automatically initiate a related content search algorithm which parses the search result data in the memory to search at least one external data source 535 for a source file of content corresponding to any data item listed in the search result data. As used herein, external data source 535 is a generic term used to denote any source of data for any purpose. For example, external data source 535 may be a source of content information (i.e. Wikipedia or IMDB.com) or a content provider (i.e. Netflix, Fancast.com). Upon performing the search for content, content processor 525 obtains the results including the location of the related content and content information. Content processor 525 automatically generates user-selectable links for any item for which location information has been obtained for the particular piece of content.
In one embodiment, during the search for recommended content, the content processor 525 may automatically take into account user subscription service information to determine if the content which may be identified as recommended is viewable by the user. For example, if the recommended content is determined to be located on a premium channel and the user's subscription does not allow access to the particular channel, the system may automatically append the particular recommended content data with a message telling the user that this content may be of interest but is unavailable due to content rights restrictions. Additionally, the message may also include information and/or a link enabling the user to modify service subscription so the recommended content can be viewed by the user. In another embodiment, if the ancillary data is searched and the content is not within a user's subscription level, the content processor 525 may engage the internet interface 530 to search external data sources including content providers to determine if the content is available from another source to which the user does have access. For example, if the content is located on an unavailable premium channel, the system may search HULU® or FANCAST® for the content and provide the source to the user on the secondary display device 545 in the form of a link viewable in a web browsing application.
Content processor 525 provides data representing the recommended content to a user interface (UI) display processor 540. UI display processor 540 automatically formats the recommended content according to a predetermined format and causes the recommended content to be displayed on a secondary display device 545 which is separate and different from a primary display device 505. The UI display processor 540 is responsive to a control signal generated by a user.
In one embodiment, the UI display processor 540 may provide the formatted user interface to the internet interface 530 which functions as a webserver and allows a browser executing on the secondary display device 545 to be pointed to a hosted user interface allowing user access thereto. Once presented on the secondary display device 545, a user may browse and navigate the data items on the list in order to view and/or select recommended content that interests them.
In another embodiment, the system may be embodied in a server responsible for serving a set of users. In this embodiment, the server executes the search algorithms described above to identify recommended content and provides users access to the recommended content to reduce the bandwidth and processing power needed to perform a full search of all of the possible content information and content provider sources. In response to selection of primary content, the set top box may automatically execute an application that initiates the content information and content provider search in the database of the server for recommended content thus reducing the amount of processing power, bandwidth and time required to provide the user with a set of enhanced content information.
While the above description of identifying and acquiring related content is described for a broadcast television program, one skilled in the art may apply the principles of the system to any type of content that is available to a user. In an alternate embodiment, the system may tune a music station enabling a user to listen to a radio program. In this embodiment, the system identifies the content by parsing radio program guide information and, in order to acquire related content, may search content information sources other than Wikipedia, Google, and Fancast as described above. The system would then search content provider sources that are specific to the type of primary content being accessed by the user, for example internet radio broadcast sites, the iTunes store, etc. The techniques also apply to scenarios beyond television such as music playback and the location of related music in the user's music library, on a subscription service such as Rhapsody, or on a purchase site such as Amazon MP3 and the like.
The implementations described herein may be implemented in, for example, a method or process, an apparatus, or a combination of hardware and software. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed may also be implemented in other forms (for example, a hardware apparatus, hardware and software apparatus, or a computer-readable media). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to any processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processing devices also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users.
Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions may be stored on a processor or computer-readable media such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette, a random access memory (“RAM”), a read-only memory (“ROM”) or any other magnetic, optical, or solid state media. The instructions may form an application program tangibly embodied on a computer-readable medium such as any of the media listed above. As should be clear, a processor may include, as part of the processor unit, a computer-readable media having, for example, instructions for carrying out a process. The instructions, corresponding to the method of the present invention, when executed, can transform a general purpose computer into a specific machine that performs the methods of the present invention.
What has been described above includes examples of the embodiments. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the embodiments, but one of ordinary skill in the art can recognize that many further combinations and permutations of the embodiments are possible. Accordingly, the subject matter is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims.
This application claims the benefit of U.S. Provisional Application Ser. No. 61/306,216 filed 19 Feb. 2010, and is hereby incorporated by reference in its entirety for all purposes.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US11/00255 | 2/11/2011 | WO | 00 | 8/13/2012 |
Number | Date | Country | |
---|---|---|---|
61306216 | Feb 2010 | US |