The present disclosure is generally related to providing television program recommendations.
Technological advancements in television and video transmission services have enabled content providers to offer viewers a broad range of entertainment. For example, evolutions from broadcast transmission, to off-air broadcasting, to cable and satellite transmissions have allowed content providers to increase programming from fifty channels to over five hundred channels. The increase in the number of available channels allows viewers to watch their favorite types of content, such as sports, comedy, news, and documentaries, at nearly any time of day, simply by switching to a channel that is dedicated to the content type or by requesting on-demand content.
The quantity and variety of content that content providers offer can make choosing a program difficult. In many cases, viewers may wish to receive programming recommendations. In the past, recommendations have been based on ratings of the most popular television programming that are sampled and published by research organizations. These publications are available weeks or even months after a program airs. Thus, the ratings services are unlikely to help a particular viewer decide what to watch at a given time. Accordingly, there is a need for an improved system and method of providing television program recommendations.
A system to provide television program recommendations is disclosed and includes a server within an Internet Protocol Television (IPTV) system, the server having a processor and a memory device accessible to the processor. The memory device includes a user store that is configured to store a review of a television program received from a set-top box device and to associate the review with a user of the set-top box device. The memory device includes a recommendation engine that is executable by the processor to generate a recommendation list that includes at least one recommended program. The server is configured to transmit the recommendation list to the set-top box device via an access network of the IPTV system.
In another embodiment, a system to receive television program recommendations is disclosed and includes a set-top box having a processor and a memory device accessible to the processor. The memory device includes a review module that is executable by the processor to submit a user review of a television program to a server via an Internet Protocol Television (IPTV) system, where the review is associated with the user. The memory device includes a recommendation module that is executable by the processor to issue a request via the IPTV system to receive programming recommendations. The recommendation module is configured to transmit a recommendation list to a display device coupled to the set-top box device, the recommendation list including at least one recommended program.
In another embodiment, a method of providing television program recommendations is disclosed and includes receiving a user review of a television program from a set-top box device via an access network of an Internet Protocol Television (IPTV) system. The method also includes associating the user review with a user of the set-top box device. The method also includes receiving a request for programming recommendations from the set-top box device and generating a recommendation list that includes at least one recommended program.
In another embodiment, a method of receiving television program recommendations is disclosed and includes submitting a user review of a television program to a server via an access network of an Internet Protocol Television (IPTV) system, where the review is associated with the user at the server. The method also includes issuing a request for programming recommendations to the server via the access network and receiving a recommendation list via the access network, where the recommendation list includes at least one recommended program.
In another embodiment, a computer program embedded in a computer-readable medium is disclosed and includes instructions to store a review of a television program received from a set-top box device and to associate the review with a user of the set-top box device. The computer program also includes instructions to generate a recommendation list that includes at least one recommended program, in response to a request for programming recommendations received from the set-top box device. The computer program also includes instructions to transmit the recommendation list to the set-top box device via an access network of an Internet Protocol Television (IPTV) system.
In another embodiment, a computer program embedded in a computer-readable medium is disclosed and includes instructions to submit a user review of a television program to a server via an access network of an Internet Protocol Television (IPTV) system. The computer program also includes instructions to issue a request to the server via the access network to receive programming recommendations. The computer program also includes instructions to transmit a recommendation list received from the server to a display device coupled to the set-top box device, the recommendation list including at least one recommended program.
Referring to
As illustrated in
As illustrated in
In a particular embodiment, the client-facing tier 102 can be coupled to the modems 114, 122 via fiber optic cables. Alternatively, the modems 114, 122 can be digital subscriber line (DSL) modems that are coupled to one or more network nodes via twisted pairs, and the client-facing tier 102 can be coupled to the network nodes via fiber-optic cables. Each set-top box device 116, 124 can process data received via the access network 166, via an IPTV software platform, such as Microsoft® TV IPTV Edition.
Additionally, the first set-top box device 116 can be coupled to a first external display device, such as a first television monitor 118, and the second set-top box device 124 can be coupled to a second external display device, such as a second television monitor 126. Moreover, the first set-top box device 116 can communicate with a first remote control 120, and the second set-top box device can communicate with a second remote control 128. The set-top box devices 116, 124 can include IPTV set-top box devices; video gaming devices or consoles that are adapted to receive IPTV content; personal computers or other computing devices that are adapted to emulate set-top box device functionalities; any other device adapted to receive IPTV content and transmit data to an IPTV system via an access network; or any combination thereof.
In an exemplary, non-limiting embodiment, each set-top box device 116, 124 can receive video content, which may include video and audio portions, from the client-facing tier 102 via the access network 166. The set-top boxes 116, 124 can transmit the video content to an external display device, such as the television monitors 118, 126. Further, the set-top box devices 116, 124 can each include a STB processor, such as STB processor 170, and a STB memory device, such as STB memory 172, which is accessible to the STB processor 170. In one embodiment, a computer program, such as the STB computer program 174, can be embedded within the STB memory device 172. Each set-top box device 116, 124 can also include a video content storage module, such as a digital video recorder (DVR) 176. In a particular embodiment, the set-top box devices 116, 124 can communicate commands received from the remote control devices 120, 128 to the client-facing tier 102 via the access network 166.
In an illustrative embodiment, the client-facing tier 102 can include a client-facing tier (CFT) switch 130 that manages communication between the client-facing tier 102 and the access network 166 and between the client-facing tier 102 and the private network 110. As shown, the CFT switch 130 is coupled to one or more data servers, such as D-servers 132, that store, format, encode, replicate, or otherwise manipulate or prepare video content for communication from the IPTV system 100 to the set-top box devices 116, 124. The CFT switch 130 can also be coupled to a terminal server 134 that provides terminal devices, such as a program information server 190, with a connection point to the private network 110. In a particular embodiment, the CFT switch 130 can also be coupled to a video-on-demand (VOD) server 136 that stores or provides VOD content imported by the IPTV system 100.
In a particular embodiment, the CFT switch 130 can also be coupled to one or more video content servers 180. The video content server(s) 180 can include a cluster of video content servers, such as a group of multicast video content servers. Each video content server 180 includes a processor 182 and a memory device 184. In one embodiment, the memory device 184 of each video content server 180 can include one or more modules 186, 188 that are executable by the processor 182. For example, the memory device 184 of each video content server 180 can include a multicast group module 186 executable by the processor 182 to manipulate multicast groups in response to join commands or leave commands issued by the set-top box devices 116, 124. Additionally, the memory device 184 of each video content server 180 can include a video content module 186 executable by the processor 182 to provide video content of a channel to the set-top boxes 116, 124 within one or more multicast groups.
As illustrated in
Further, the second APP switch 140 can be coupled to a domain controller 146 that provides Internet access, for example, to users via the public network 112. For example, the domain controller 146 can provide remote Internet access to IPTV account information, e-mail, personalized Internet services, or other online services via the public network 112. Users can access such information or services using their personal computers 168. The second APP switch 140 can be coupled to a subscriber and system store 148 that includes account information, such as account information that is associated with users who access the system 100 via the private network 110 or the public network 112. Additionally, the second APP switch 140 can be coupled to one or more interactive voice response (IVR) servers 182 that can communicate with a user telephone 184 via the public network 112.
In a particular embodiment, the application tier 104 can also include a client gateway 150 that communicates data directly with the client-facing tier 102. In this embodiment, the client gateway 150 can be coupled directly to the CFT switch 130. The client gateway 150 can provide or restrict access to the private network 110 and the tiers coupled thereto.
In a particular embodiment, the set-top box devices 116, 124 can access the IPTV system 100 via the access network 166, using information received from the client gateway 150. In this embodiment, the access network 166 can provide security for the private network 110. User devices can access the client gateway 150 via the access network 166, and the client gateway 150 can allow such devices to access the private network 110 once the devices are authenticated or verified. Similarly, the client gateway 150 can prevent unauthorized devices, such as hacker computers or stolen set-top box devices from accessing the private network 110, by denying access to these devices beyond the access network 166.
For example, when the first representative set-top box device 116 accesses the system 100 via the access network 166, the client gateway 150 can verify subscriber information by communicating with the subscriber and system store 148 via the private network 110, the first APP switch 138, and the second APP switch 140. Further, the client gateway 150 can verify billing information and status by communicating with the OSS/BSS gateway 144 via the private network 110 and the first APP switch 138. In one embodiment, the OSS/BSS gateway 144 can transmit a query via the first APP switch 138, to the second APP switch 140, and the second APP switch 140 can communicate the query via the public network 112 to the OSS/BSS server 164. After the client gateway 150 confirms subscriber and/or billing information, the client gateway 150 can allow the set-top box device 116 to access IPTV content and VOD content. If the client gateway 150 cannot verify subscriber information for the set-top box device 116, e.g., because it is connected to an unauthorized twisted pair, the client gateway 150 can block transmissions to and from the set-top box device 116 beyond the access network 166.
As indicated in
Further, the television or movie content can be transmitted to the D-servers 132, where it can be encoded, formatted, stored, replicated, or otherwise manipulated and prepared for communication to the set-top box devices 116, 124. The CFT switch 130 can receive the television or movie content from the D-servers 132 and communicate the content to the modems 114, 122 via the access network 166. The set-top box devices 116, 124 can receive the television or movie content via the modems 114, 122, and can transmit the television or movie content to the television monitors 118, 126. In an illustrative embodiment, video or audio portions of the television or movie content can be streamed to the set-top box devices 116, 124.
Further, the AQT switch can be coupled to a video-on-demand importer server 158 that stores television or movie content received at the acquisition tier 106 and communicates the stored content to the VOD server 136 at the client-facing tier 102 via the private network 110. Additionally, at the acquisition tier 106, the video-on-demand (VOD) importer server 158 can receive content from one or more VOD sources outside the IPTV system 100, such as movie studios and programmers of non-live content. The VOD importer server 158 can transmit the VOD content to the AQT switch 152, and the AQT switch 152, in turn, can communicate the material to the CFT switch 130 via the private network 110. The VOD content can be stored at one or more servers, such as the VOD server 136.
When users issue requests for VOD content via the set-top box devices 116, 124, the requests can be transmitted over the access network 166 to the VOD server 136, via the CFT switch 130. Upon receiving such requests, the VOD server 136 can retrieve the requested VOD content and transmit the content to the set-top box devices 116,124 across the access network 166, via the CFT switch 130. The set-top box devices 116, 124 can transmit the VOD content to the television monitors 118, 126. In an illustrative embodiment, video or audio portions of VOD content can be streamed to the set-top box devices 116, 124.
In an illustrative embodiment, the live acquisition server 154 can transmit the television or movie content to the AQT switch 152, and the AQT switch 152, in turn, can transmit the television or movie content to the OMT switch 160 via the public network 112. In this embodiment, the OMT switch 160 can transmit the television or movie content to the TV2 server 162 for display to users accessing the user interface at the TV2 server 162. For example, a user can access the TV2 server 162 using a personal computer (PC) 168 coupled to the public network 112.
In a particular embodiment, a user can issue a request to a set-top box device, such as the second representative set-top box device 124, to view an electronic program guide (EPG). The set-top box processor 170 can be configured to transmit the request to a program information server 190 via the CFT switch 130. The memory device 194 of the program information server 190 can include an EPG module 196 that is executable by the processor 192 to generate the EPG and transmit the EPG to the set-top box device 124 over the access network 166. The set-top box device 124 can receive the EPG via a modem 122, for example, and transmit the EPG to a television monitor 126 that is coupled to the set-top box device 124.
In a particular embodiment, the program information server 190 can maintain reviews of one or more programs by associating reviews received from individual set-top boxes 116, 124 with users of the set-top boxes 116, 124 at the user store 199. A user can submit a review, for instance, by pressing a review submission key on a remote control 128. Alternatively, the EPG can include a first indicator of a first selectable option to submit a review, such as that illustrated at 614 in
The user can input a review of the program, such as a number of stars, and the set-top box device 124 can transmit the review to the program information server 190. The review can be stored in the user store 199. In a particular embodiment, the review can also be stored at the ratings information module 198 and can be used to calculate an average review of the program that is stored in the ratings information module 198.
In an illustrative embodiment, the EPG can include a second indicator of a second selectable option to receive program recommendations from the program information server 190. A user can issue a command to receive the program recommendations, for example, by pressing a recommend programming button on a remote control 128 or by using a remote control 128 to select a soft button displayed on the EPG, such as that illustrated at 616 in
In a particular embodiment, the recommendation engine 197 can generate the recommendation list by comparing one or more programs, to be shown within a period of time after the user issues the request for program recommendations, with user-defined preferences stored at the user store 199. For example, the user can set programming preferences, such as preferences for actors, program types, program genres, sport teams, or any combination thereof, by using the personal computer (PC) 168 to communicate with the user store 199 via a web portal maintained by the domain controller 146. In another embodiment, the user can set programming preferences, such as preferences for actors, program types, program genres, sport teams, or any combination thereof, via the electronic program guide (EPG) or other graphical user interface (GUI) suitable to enter user-defined preferences. An example of a GUI suitable to allow a user to enter user-defined preferences is illustrated in
In another particular embodiment, the recommendation engine 197 can generate the recommendation list by identifying programs that the user has watched and rated during a certain time before the request. The recommendation engine 197 can determine which programs the user gave a threshold rating to, e.g., three stars or greater, during a period of time before the request. The recommendation engine can also identify other users whose reviews are stored at the user store 199 and who gave the threshold rating to the same program. The recommendation engine can determine which other program(s) the other users also rated at or above the threshold rating or a different threshold rating. The recommendation list generated by the recommendation engine 197 can include such other program(s).
In an illustrative, non-limiting embodiment, the recommendation engine 197 can generate the recommendation list by identifying programs that the user has watched and rated during a certain time before the request. The recommendation engine 197 can determine which programs the user gave a threshold rating to, e.g., three stars or greater, during a period of time before the request. The recommendation engine can identify other program(s) being shown during a certain period of time after the request, which share a program type, actor, sport team, or any combination thereof, with the programs that received the threshold rating from the user. The recommendation list generated by the recommendation engine 197 can include such other program(s).
In another illustrative embodiment, the recommendation engine 197 can generate the recommendation list by aggregating program viewing across a user base, such as a nationwide area, region, state, metropolitan area, neighborhood, or other market area. The recommendation engine 197 can measure audience data related to various television channels or programs, for example, by measuring multicast groups associated with each channel or by determining what programming is being called down from the access network 166 by each set-top box device 116, 124. The recommendation engine can recommend programs having the highest aggregated audience data during a past period of minutes, hours, days, or weeks. For example, the recommendation list can include a “What's Hot” list, such as that illustrated in
In another illustrative embodiment, the recommendation engine 197 can generate the recommendation list by aggregating program viewing across a user base and data mining program viewing associated with a single user or set-top box device. The user store 199 can log television program viewing by a user or at a set-top box device during a period of time before the request for television program recommendations. The recommendation engine 197 can measure audience data related to various television channels or programs and compare the audience data to the logged television program viewing of the user. The recommendation engine 197 can generate the recommendation list by determining whether programs having the highest audience data match any programs regularly viewed at the set-top box device. The recommendation list can include such matching programs.
In a particular embodiment, the recommendation engine 197 can generate the recommendation list by data mining program viewing associated with a single user or the set-top box device. The user store 199 can log television program viewing by a user or at a set-top box device during a period of time before the request for television programming recommendations. The recommendation engine 197 can generate the recommendation list by determining whether programs regularly viewed by the user or at the set-top box device are currently showing or will be shown during a period of time after the request for television program recommendations. The recommendation list can include such programs; other programs that share-a genre, actor, program type, sport team, or any combination thereof, with such programs; or any combination of such programs and other programs.
In another illustrative embodiment, the EPG can include a third indicator of a third selectable option to view real-time ratings information related to one or more programs displayed on the EPG. If the user desires to review real-time ratings information, the user can issue a command to receive the real-time ratings information, for example, by pressing a ratings information button on a remote control 128 or by using a remote control 128 to select a soft button displayed on the EPG. The set-top box device 124 can issue a request for the real-time ratings information to the program information server 190. The program information server memory device 194 can include a ratings information module 198 that is executable by the processor 192 to acquire real-time ratings information from the video content servers 180 and to transmit an updated EPG having the real-time ratings information to the set-top box device 124 for display at the television monitor 126.
In a particular embodiment, the real-time ratings information can include audience data related to the program(s), such as a number or percentage of set-top boxes within a nationwide area, region, state, metropolitan area, neighborhood, or other market area, which are receiving each program. Alternatively, the audience data can also be a statistical estimation of total viewers, based on the number of set-top devices receiving each program. In another embodiment, the real-time ratings information can include reviews of one or more programs displayed on the EPG. A review can be, for example, an average review submitted from set-top boxes within an area that are receiving or have received a program. In an illustrative embodiment, each review can be expressed as one or more integers, such as ‘9 out of 10’ or as a number of stars, such as ‘4 out of 5 stars.’ An example embodiment of an EPG having real-time ratings information is illustrated further in
In an illustrative embodiment, the program information server 190 can obtain audience data for a program by determining the number of set-top boxes in a multicast group of a channel that is carrying the program. Each time that a join command or leave command is issued by a set-top box device 116, 124 that changes to or from a channel, the number of set-top boxes in the multicast group of the channel can be updated at a multicast group module 186 of the video content server 180 that is supplying the video content carried by the channel. In a particular embodiment, the ratings information module 198 of the program information server 190 can be executable by the processor to determine the number of set-top boxes in the multicast group of each channel displayed by the EPG, e.g., by retrieving data from each video content server 180, at periodic time intervals or when a request for real-time ratings information is received.
In an illustrative embodiment, the EPG can include a fourth indicator of a fourth selectable option to receive program rankings based on audience data or reviews. The set-top box device 124 can receive a selection of the indicator from the user via the remote control 128 and transmit a request for program rankings to the program information server 190. The program information server 190 can compare audience data for various programs, for instance, by comparing the sizes of multicast groups of channels carrying the programs, and the program information server 190 can arrange the programs into a ranked list. The program information server 190 can transmit the ranked list to the set-top box device 124. In an illustrative embodiment, the user may issue a command to the program information server 190, via the set-top box device 124, to segment the rankings by program type, such as sports, comedy, drama, action, news, documentary, educational, movie, or another program type. An example embodiment of a graphical user interface to display ranked programs is illustrated further in
In an alternative embodiment, a user can issue a request to the set-top box device 124 to view the electronic program guide (EPG). The set-top box processor 170 can be configured to request data related to the EPG from the program information server 190. The program information server 190 can transmit the data to the set-top box device 124 in response to the request. The memory device 172 of the set-top box device 124 can include a computer program 174 that is executable by the set-top box processor 170 to generate the EPG and transmit the EPG to the television monitor 126.
Referring to
The processor 204 can communicate with an external access network, such as an Internet Protocol Television (IPTV) access network 226, via the network interface 208. In an illustrative, non-limiting embodiment, the IPTV access network 226 can be the access network 166 illustrated in
In a particular embodiment, the memory device 206 can include a channel change module 218. The channel change module 218 can be executable by the processor 204 to receive a channel change request from a user, for example, via the remote control device 230. In an illustrative embodiment, the memory device 206 can also include an Internet Group Management Protocol (IGMP) module 220 that is executable by the processor 204 to issue a join command to a server within an IPTV system via the IPTV access network 226, in response to the channel change request. The join command can be a command to be added to a multicast group of a requested channel. In a particular embodiment, the IGMP module 220 can also be executable by the processor 204 to issue a leave command to the server within the IPTV system, in response to the channel change request, to be removed from a multicast group of the channel from which the user requests a change.
The memory device 206 can include an electronic program guide (EPG) interface module 222 that is executable by the processor 204 to receive and process a request for an EPG from a user. In a particular embodiment, the EPG interface module 222 can be executable by the processor 204 to request an EPG from a server within the IPTV system and to receive the EPG via the IPTV access network 226. In another particular embodiment, the EPG interface module 222 can be executable by the processor 204 to request data related to an EPG from a server within the IPTV system and to generate the EPG at the set-top box device 202. The EPG interface module 222 can be executable by the processor 204 to transmit the EPG to the television monitor 212 via the display interface 210.
In an illustrative embodiment, the EPG can include a first indicator of a first selectable option to submit a review of a program. A user can select the indicator using the remote control 230, for example, and the set-top box device can transmit a prompt for the review to the television monitor 212. The prompt can be a graphical user interface (GUI) suitable to allow the user to enter a review, such as the GUI illustrated in
In an illustrative embodiment, the EPG can include a second indicator of a second selectable option to receive program recommendations. A user can issue a command to receive the program recommendations, for example, by pressing a recommend programming button on the remote control 230 or by using the remote control 230 to select a soft button displayed on the EPG. The set-top box device 202 can transmit a request for program recommendations to a server via the access network 226 in response to the command. The set-top box device 202 can receive a recommendation list via the access network 226 that includes at least one recommended program and can transmit the recommendation list to the television monitor 212. In one embodiment, the set-top box memory device 206 can include a recommendation module 234 that is executable by the processor 204 to generate a request for program recommendations and to transmit the request to the server. The recommendation module 234 can also be executable by the processor 204 to process data related to a recommendation list received via the access network 226 and to generate a display or GUI that includes the recommendation list for transmission to the television monitor 212.
In another illustrative embodiment, the EPG can include a third indicator of a third selectable option to view real-time ratings information, such as audience data and average reviews related to programs included in the EPG. The EPG interface module 222 can be executable by the processor 204 to receive a selection of the indicator from the remote control device 230, for example, and to provide the real-time ratings information via an updated EPG having the real-time ratings information, such as that illustrated in
In an illustrative embodiment, the EPG or updated EPG can include a fourth indicator of a fourth selectable option to view program rankings, for example, according to audience data. Additionally, the EPG or updated EPG can include a fifth indicator of a fifth selectable option to view program rankings that are segmented by program type. The EPG interface module 222 can be executable by the processor 204 to receive a selection to view segmented or non-segmented program rankings and to transmit a request for the program rankings to a server within the IPTV system. Further, the EPG interface module 222 can be executable by the processor 204 to receive the segmented or non-segmented program rankings from the server via the IPTV access network 226 and to transmit the program rankings to the television monitor 212 via the display interface 210. In an alternative embodiment, the EPG interface module 222 can be executable by the processor 204 to generate the program rankings based on data related to the real-time ratings information that the set-top box 202 received via the IPTV access network 226.
The memory device 206 can also include a video content control and buffer module 224 that is executable by the processor 204 to receive multicast video content carried over a channel requested by a user and to buffer the video content before transmitting it to the display interface 210, in order to prevent underflow.
Referring to
Proceeding to decision step 306, in a particular embodiment, the server can determine whether it has received a request for an electronic program guide (EPG) from the set-top box device. If the server does not receive a request for an EPG, the method moves to decision step 308, and the server determines whether a user review has been received from the set-top box device. If the server receives a user review, the method continues to block 310, and the server associates the review with the user, the set-top box device, or any combination thereof, and stores the information at a user store. The server can include the user store, or the user store can be external to the server. In a particular embodiment, the method can proceed to block 312, and the server can associate the user review with the reviewed program and store the data, use the data to calculate an average review of the program, or any combination thereof. The method then advances to decision step 314 and continues.
Returning to decision step 308, if the server does not receive a review from the set-top box device, the method proceeds to decision step 314, and the server determines whether it has received a request for television program recommendations from the set-top box device. If the server has not received a request for television program recommendations, the method terminates at 342. On the other hand, if the server has received a request for program recommendations, the method moves to decision step 316, and the server determines whether user-defined preferences are associated with the user or the set-top box device. For example, a user may define programming preferences, such as genres, actors, program types, sport teams, or any combination thereof, via a web portal that communicates with the user store. If user-defined preferences are associated with the user, the set-top box device, or both, the method advances to block 318, and the server compares the user-defined preferences to programs being shown within a period of time after the request, such as 0-2 hours after the request, such that current programs are considered, or 1-2.5 hours, if a user does not wish to switch from a current program. The method then proceeds to block 322, and the server generates a recommendation list that includes titles and other information related to one or more recommended programs that match one or more of the user-defined preferences. The method terminates at 342.
Returning to decision step 316, if the server determines that user-defined preferences are not associated with the user or set-top box device, the method proceeds to block 320. In a particular embodiment, at block 320, the server can compare user viewing at the set-top box device over a period of time prior to the request to programming shown or to be shown within a certain time after the request. In an illustrative embodiment, the server can determine whether programs regularly viewed at the set-top box device are currently showing or will be shown during the next 0-2 hours, for example. The method then proceeds to block 322, and the server generates a recommendation list that includes such programs or programs that share a genre, actor, program type, sport team, or any combination thereof, with the programs that are regularly viewed at the set-top box device. The method terminates at 342.
In a particular embodiment, the server can generate the recommendation list via a recommendation engine that performs the comparison of user preferences to programming. Past and future periods of time used to recommend programming can be predefined or can be user defined.
Returning to decision step 306, if the server receives a request for an EPG, the method moves to block 324, and the server transmits the EPG to the set-top box device. In an illustrative embodiment, the server can be the program information server 190 illustrated in
Continuing to decision step 326, the server determines whether it has received a request from the set-top box device for real-time ratings information. In a particular embodiment, if the server does not receive a request for real-time ratings information, the method proceeds to decision step 332 and continues. On the other hand, if the server receives a request for real-time ratings information, the method moves to block 328, and the server retrieves audience data and average reviews from its memory device or from one or more other servers, such as the multicast video content servers 180 illustrated in
In an illustrative embodiment, the EPG can include a fourth indicator of a fourth selectable option to view program rankings according to audience data, for example. A user can select the fourth indicator at the set-top box device, for example, and the server can receive a request from the set-top box device for program rankings. Proceeding to decision step 332, the server determines whether it has received a request for program rankings from the set-top box device. If the server has not received a request for program rankings from the set-top box device, the method proceeds to decision step 308. Conversely, if the server has received a request for program rankings from the set-top box device, the method continues to block 334, and the server generates the program rankings based on the audience data. The method then proceeds to decision step 336.
In one embodiment, the EPG can include a fifth indicator of a fifth selectable option for program rankings that are segmented according to program type. At decision step 336, the server determines whether segmented or non-segmented rankings have been requested. If non-segmented rankings have been requested, the method moves to block 340, and the server transmits the rankings to the set-top box device. On the other hand, if segmented rankings have been requested, the method proceeds to block 338, and program rankings are segmented by program type. The program rankings are then transmitted to the set-top box device at block 340. The method then returns to decision step 308 and continues.
Referring to
In a particular embodiment, the EPG includes a first indicator of a first selectable option to submit a review. Additionally, the EPG can include a second indicator of a second selectable option to receive programming recommendations. Further, the EPG can include an indicator of a selectable option to view real-time ratings information, such as audience data and average reviews, related to programs included in the EPG. A user can select the indicator at the set-top box device, for example, and the server can receive a request from the set-top box device for real-time ratings information.
Continuing to decision step 404, the server determines whether a user review has been received from the set-top box device. If the server receives a user review, the method continues to block 406, and the server associates the review with the user, the set-top box device, or any combination thereof, and stores the information at a user store. The server can include the user store, or the user store can be external to the server. In a particular embodiment, the method can proceed to block 408, and the server can associate the user review with the reviewed program and store the data, use the data to calculate an average review of the program, or any combination thereof. The method then advances to decision step 410 and continues.
Returning to decision step 404, if the server does not receive a review from the set-top box device, the method proceeds to decision step 410, and the server determines whether it has received a request for television programming recommendations from the set-top box device. If the server has not received a request for television programming recommendations, the method moves to decision step 416. On the other hand, in a particular embodiment, if the server has received a request for programming recommendations, the method moves to block 412. At block 412, the server identifies programming favored by other users that have given reviews similar to the user's review of a given program. For instance, the server can identify one or more programs to which the user gave a threshold rating, e.g., three stars or greater. The server can also identify other users who gave the threshold rating to the same program(s). The server can determine other program(s) that the other users also rated at or above the threshold rating or a different threshold rating. The method then proceeds to block 414, and the server generates a recommendation list that includes the other program(s) that the other users also rated at or above the threshold rating or the different threshold rating. The method then advances to decision step 416.
Proceeding to decision step 416, the server determines whether it has received a request from the set-top box device for real-time ratings information. In a particular embodiment, if the server does not receive a request for real-time ratings information, the method continues to decision step 422. On the other hand, if the server receives a request for real-time ratings information, the method moves to block 418, and the server retrieves audience data and average review data from its memory device or from one or more other servers. Continuing to block 420, the server transmits data related to the real-time ratings information to the set-top box device. In a particular embodiment, the set-top box device can pull the data from the server and generate an updated EPG having the real-time ratings information. The method then proceeds to decision step 422.
At decision step 422, the server determines whether it has received a request for program rankings from the set-top box device. If the server has not received a request for program rankings from the set-top box device, the method terminates at 432. Conversely, if the server has received a request for program rankings from the set-top box device, the method continues to block 424, and the server generates the program rankings based on the audience data. The method then proceeds to decision step 426.
At decision step 426, the server determines whether segmented or non-segmented rankings have been requested. If non-segmented rankings have been requested, the method moves to block 430, and the server transmits the rankings to the set-top box device. On the other hand, if segmented rankings have been requested, the method proceeds to block 428, and program rankings are segmented by program type. The program rankings are then transmitted to the set-top box device at block 430. The method terminates at 432.
Referring to
Moving to decision step 506, the set-top box device determines whether it has received a request to submit a review of a program. In a particular embodiment, the EPG includes a first indicator of a first selectable option to submit a review. The user can select the first indicator using a review key on a remote control or by using arrow and “enter” keys on the remote control to select the first indicator. If the set-top box does not receive a request from the user to submit a review, the method continues to decision step 512. On the other hand, if the set-top box receives a request from the user to submit a review, the method proceeds to block 508, and the set-top box transmits a graphical user interface (GUI) or other prompt for the review to the display device. The set-top box device can retrieve the GUI or other prompt from the server. In another embodiment, the set-top box device can generate the GUI or other prompt via a review module within a memory of the set-top box device. Advancing to block 510, the set-top box device receives the review and transmits the review to a server via an access network of the IPTV system. The method then proceeds to decision step 512.
At decision step 512, the set-top box device determines whether it has received a request for television program recommendations from the user. In a particular embodiment, the EPG can include a second indicator of a second selectable option to receive program recommendations. The user can select the second indicator using a review key on a remote control or by using arrow and “enter” keys on the remote control to select the second indicator. If the set-top box device does not receive a request for television program recommendations, the method proceeds to decision step 518. Conversely, if the set-top box device receives a request for television programming recommendations, the method moves to block 514, and the set-top box device transmits a recommendation request to the server. The method continues to block 516, and the set-top box device receives a recommendation list having at least one recommended program from the server and transmits the recommendation list to the display device. The method then proceeds to decision step 518.
Proceeding to decision step 518, the set-top box device determines whether it has received a request for real-time ratings information. In a particular embodiment, the EPG includes a third indicator of a selectable option to view real-time ratings information, such as audience data and average reviews related to programs included in the EPG. The user can select the third indicator using a review key on a remote control or by using arrow and “enter” keys on the remote control to select the third indicator. In a particular embodiment, if the server does not receive a request for real-time ratings information, the method moves to decision step 524. On the other hand, if the set-top box device receives a request for real-time ratings information, such as audience data and average reviews, the method continues to block 520, and the set-top box device requests an updated EPG having the real-time ratings information from the server within the IPTV system. The method advances to block 522, and the set-top box device receives the updated EPG having the real-time ratings information and transmits it to the display device. The method then continues to decision step 524.
Proceeding to decision step 524, the set-top box device determines whether it has received a request for program rankings from the set-top box device. In an illustrative embodiment, the EPG can include a fourth indicator of a fourth selectable option to view program rankings according to audience data or review data. The user can select the fourth indicator using a review key on a remote control or by using arrow and “enter” keys on the remote control to select the fourth indicator. If the set-top box device has not received a selection to view program rankings from the user, the method terminates at 530. On the other hand, if the set-top box device has not received a selection to view program rankings from the user, via a remote control device, for example, the method proceeds to block 526, and the set-top box requests the program rankings from the server. The method continues to block 528, and the set-top box device receives the rankings and transmits the rankings to the display device. The method terminates at 530.
Though the aspects of the disclosed methods have been presented in a certain order, for ease of description, certain portions of the method may be performed in a different order or simultaneously. For example, the various determinations of requests for review submissions, programming recommendations, ratings information, or program rankings can be made in any order. Additionally, references to first through fifth indicators of selectable options are for explanatory purposes only. Such indicators can be presented in any order or combination within the EPG or other GUI.
Referring to
In one embodiment, the GUI 600 can also include a plurality of indicators of selectable options, such as soft buttons 612-620. The soft buttons can be selected, for example, by using arrow keys on a remote control device to manipulate a highlight bar 622 and by pressing an ‘OK,’ ‘ENTER,’ ‘SELECT,’ or similar key on the remote control device, when a desired soft button is highlighted. For example, the GUI can include a ‘RANK PROGRAMS’ indicator 612 of a selectable option to rank programs according audience data. The GUI can also include a ‘SUBMIT REVIEW’ indicator 614 of a selectable option to submit a review of a program. Additionally, the GUI can include a ‘RECOMMEND PROGRAMS indicator 616 of a selectable option to receive program recommendations. Moreover, the GUI can include a ‘DEFINE PREFERENCES’ indicator 618 of a selectable option to submit user program preferences via a set-top box. Further, the GUI can include an ‘EXIT’ indicator 620 of a selectable option to exit the EPG and return to programming.
Referring to
In one embodiment, the GUI 700 can also include a plurality of indicators of selectable options, such as soft buttons 712-718. The soft buttons can be selected, for example, by using arrow keys on a remote control device to manipulate a highlight bar 720 and by pressing an ‘OK,’ ‘ENTER,’ ‘SELECT,’ or similar key on the remote control device, when a desired soft button is highlighted. For example, the GUI 700 can include a ‘NEXT’ indicator 712 of a selectable option to display a next page of ranked programs. The GUI 700 can also include a ‘PREV’ indicator 714 of a selectable option to display a previous page of ranked programs. Additionally, in an illustrative embodiment, the GUI 700 can include a ‘RANK ALL’ indicator 716 of a selectable option to display non-segmented rankings, i.e., rankings of programs that are not separated according to program type. Further, the GUI 700 can include an ‘EXIT’ indicator 718 of a selectable option to exit the program rankings screen 702 and return to the EPG or to programming.
Referring to
In a particular embodiment, the GUI 800 can also include a plurality of indicators of selectable options, such as soft buttons 808-814. The soft buttons can be selected, for example, by using arrow keys on a remote control device to manipulate a highlight bar 816 and by pressing an ‘OK,’ ‘ENTER,’ ‘SELECT,’ or similar key on the remote control device, when a desired soft button is highlighted. For example, the GUI 800 can include a ‘HIGHER’ indicator 808 of a selectable option to increase the number of stars that are highlighted in the review section 806. The GUI 800 can also include a ‘LOWER’ indicator 810 of a selectable option to decrease the number of stars that are highlighted in the review section 806. Additionally, in an illustrative embodiment, the GUI 800 can include a ‘SUBMIT’ indicator 812 of a selectable option to display submit the review when the desired number of stars are highlighted in the review section 806. Further, the GUI 800 can include an ‘EXIT’ indicator 814 of a selectable option to exit the review submission screen 802 and return to the EPG or to programming.
Referring to
Referring to
Referring to
Referring to
In conjunction with the configuration of structure described herein, the system and method allow users to interactively submit reviews of programs. For example, the system and method can allow a user to request an EPG that includes an indicator of a selectable option to submit a review of a program. A prompt for the review can be transmitted to a display device coupled to the set-top box device. In one embodiment, users can review programs based on a number of stars. The set-top box device can receive the review and transmit it to a server within the IPTV system. The server can store the review or update an average review of the program associated with the review.
In a particular embodiment, the system and method disclosed provide a user with an ability to request and view television program recommendations. The user can request such recommendations via a remote control device or a second indicator of a second selectable option of an EPG to receive programming recommendations. A set-top box device can receive the request and transmit the request to a server within the IPTV system. In an illustrative embodiment, the server can generate a recommendation list that includes at least one recommended program via a recommendation engine that examines, for example, current and future programming, user-defined preferences, user reviews, reviews of other users, user viewing habits, or any combination thereof.
In a particular embodiment, the system and method disclosed also provide a user with an ability to request and view real-time ratings information related to programs in the EPG that is displayed at a display device coupled to a set-top box device. In a particular embodiment, the EPG can include an indicator of a selectable option to receive the real-time ratings information. An updated EPG that includes the real-time ratings information can be pushed to the set-top box device from a server within an Internet Protocol Television (IPTV) system, in response to a request for real-time ratings information from the set-top box device. Alternatively, data related to the updated EPG can be pulled from the server by the set-top box device, and the set-top box device can generate the updated EPG.
Real-time ratings information can include audience data, such as a number or percentage of set-top boxes in a market area, which are receiving a program or channel. The number or percentage of set-top boxes can be determined based on the sizes of multicast groups associated with each channel and can be updated in response to join commands or leave commands issued by set-top boxes in response to channel change requests. The real-time ratings information can also include average reviews of each program, such as an average number of stars submitted by set-top box users.
Television or video content providers can summarize the audience data and reviews collected using various statistical methods and can compile lists of the most popular television or video programming in real-time. In a particular embodiment, the EPG can include an indicator of a selectable option to view overall program rankings or program rankings that are segmented according to program type. For example, users can view program rankings related to sports, comedy, drama, action, news, documentary, educational, movie, or another program type. Programs can be ranked according to number of viewers or user ratings of each program. Nationwide ranking lists can be adjusted for time zones to improve accuracy for separate market areas. In one embodiment, program rankings can be pushed to a set-top box device in response to a request transmitted by the set-top box device to a server within the IPTV system. In another embodiment, the set-top box device can generate program rankings based on real-time ratings information pulled by the set-top box from a server within the IPTV system.
Referring to
In a networked deployment, the computer system may operate in the capacity of a server within an IPTV system or a set-top box device communicating therewith. The computer system 1300 can also be implemented as or incorporated into various other devices, or any other machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. In a particular embodiment, the computer system 1300 can be implemented using electronic devices that provide audio, video or data communication. Further, while a single computer system 1300 is illustrated, the term “system” shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions, such as the IPTV system illustrated in
As illustrated in
In an illustrative embodiment, the computer system 1300 can include a remote control interface 1328, such as the remote control interface 216 of the set-top box device illustrated in
In a particular embodiment, as depicted in
In an alternative embodiment, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, can be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system encompasses software, firmware, and hardware implementations.
In accordance with various embodiments of the present disclosure, the methods described herein may be implemented by software programs executable by a computer system. Further, in an exemplary, non-limited embodiment, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionality as described herein.
The present disclosure contemplates a computer-readable medium that includes instructions 1324 or receives instructions 1324 responsive to a propagated signal, so that a device connected to a network 1326 can communicate audio, video or data over the network 1326. Further, the instructions 1324 may be transmitted or received over the network 1326 via the network interface device 1320.
While the computer-readable medium is shown to be a single medium, the term “computer-readable medium” includes a single medium or multiple media, such as a centralized or distributed database, and/or associated-caches and servers that store one or more sets of instructions. The term “computer-readable medium” shall also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methods or operations disclosed herein.
In a particular non-limiting, exemplary embodiment, the computer-readable medium can include a solid-state memory such as a memory card or other package that houses one or more non-volatile read-only memories. Further, the computer-readable medium can be a random access memory or other volatile re-writable memory. Additionally, the computer-readable medium can include a magneto-optical or optical medium, such as a disk or tapes or other storage device to capture carrier wave signals such as a signal communicated over a transmission medium. A digital file attachment to an e-mail or other self-contained information archive or set of archives may be considered a distribution medium that is equivalent to a tangible storage medium. Accordingly, the disclosure is considered to include any one or more of a computer-readable medium or a distribution medium and other equivalents and successor media, in which data or instructions may be stored.
Although the present specification describes components and functions that may be implemented in particular embodiments with reference to particular standards and protocols, the invention is not limited to such standards and protocols. For example, standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) represent examples of the state of the art. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same or similar functions as those disclosed herein are considered equivalents thereof.
The illustrations of the embodiments described herein are intended to provide a general understanding of the structure of the various embodiments. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatus and systems that utilize the structures or methods described herein. Many other embodiments may be apparent to those of skill in the art upon reviewing the disclosure. Other embodiments may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. Additionally, the illustrations are merely representational and may not be drawn to scale. Certain proportions within the illustrations may be exaggerated, while other proportions may be minimized. Accordingly, the disclosure and the figures are to be regarded as illustrative rather than restrictive.
One or more embodiments of the disclosure may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any particular invention or inventive concept. Moreover, although specific embodiments have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all subsequent adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the description.
The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b) and is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, various features may be grouped together or described in a single embodiment for the purpose of streamlining the disclosure. This disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter may be directed to less than all of the features of any of the disclosed embodiments. Thus, the following claims are incorporated into the Detailed Description, with each claim standing on its own as defining separately claimed subject matter.
The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the true spirit and scope of the present invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.