Method and apparatus to create intuitive favorites for users
Summary by NHIP
Dynamic Favorites System
The system monitors user actions at a digital receiver to automatically create or remove favorites based on activity levels. It removes a program from favorites when its action level no longer transgresses a threshold defined as a specific duration of view commands.
Claim Score by NHIP
Abstract
Example embodiments provide systems and methods for dynamically creating intuitive favorites for a user. The system and methods include monitoring actions performed, by the user at a digital receiver, with respect to a plurality of content programs. The actions performed with respect to the plurality of content programs are analyzed. The analysis includes comparing a level of the actions with respect to a first content program of the plurality of content programs with a threshold. Based on the comparing indicating that the first content program is a favorites, an indication that the first content program is a favorites content program is stored to a data store.

Term
9.3 yearsleft in the term
Expires 28 January 2036.
- Priority and filed
- Granted
- Today
- Expires
17 claims: 3 independent, 14 dependent
- 1A method comprising:monitoring, using one or more hardware processors, actions performed by a user at a digital receiver with respect to a plurality of content programs;automatically without human intervention analyzing, using one or more hardware processors, the actions performed with respect to the plurality of content programs, the analyzing including determining that a level of the actions with respect to a first content program of the plurality of content programs meets or transgresses a threshold;based on the level of the actions with respect to a first content program meeting or transgressing the threshold, storing, in a data store, an indication that the first content program is a favorites content program;detecting a change in a level of actions with respect to a second content program previously indicated to be a favorites content program, the change in the level of the actions with respect to the second content program indicating a reduction in the level of the actions with respect to the second content program that results in the level of the actions with respect to the second content program no longer transgressing the threshold;and in response to the detecting that the level of the actions with respect to the second content program no longer transgresses the threshold, automatically removing an indication that the second content program is a favorites content program from the data store.
- 13Broadest claimClaim Score 37, narrow(NHIP)A system comprising:means for monitoring actions performed by a user at a digital receiver with respect to a plurality of content programs;means for automatically analyzing, without human intervention, the actions performed with respect to the plurality of content programs, the analyzing including determining that a level of the actions with respect to a first content program of the plurality of content programs meets or transgresses a threshold;means for storing, in a data store, an indication that the first content program is a favorites content program based on the level of the actions with respect to a first content program meeting or transgressing the threshold;means for detecting a change in a level of actions with respect to a second content program previously indicated to be a favorites content program, the change in the level of the actions with respect to the second content program indicating a reduction in the level of the actions with respect to the second content program that results in the level of the actions with respect to the second content program no longer transgressing the threshold;and means for automatically removing an indication that the second content program is a favorites content program from the data store in response to detecting that the level of the actions with respect to the second content program no longer transgresses the threshold.
- 15A system comprising:one or more processors;and a memory storing instructions that, when executed by the one or more processors, causes the one or more processors to perform operations comprising: monitoring actions performed, by a user at a digital receiver, with respect to a first content program;automatically, without human intervention, analyzing the actions performed with respect to the first content program, the analyzing including determining that a level of the actions with respect to the first content program meets or transgresses a threshold;based on the level of the actions with respect to a first content program meeting or transgressing the threshold, storing, in a data store, an indication that the first content program is a favorites content program;detecting a change in a level of actions with respect to a second content program previously indicated to be a favorites content program, the change in the level of the actions with respect to the second content program indicating a reduction in the level of the actions with respect to the second content program that results in the level of the actions with respect to the second content program no longer transgressing the threshold;and in response to the detecting that the level of the actions with respect to the second content program no longer transgresses the threshold, automatically removing an indication that the second content program is a favorites content program from the data store.
Independent claims3
71 paragraphs in 4 sections, as filed
FIELD
The present disclosure relates generally to digital content monitoring and, in a specific example embodiment, to mechanisms and processes for dynamically creating digital content favorites for a user.
BACKGROUND
There is a universe of content available through a television operator's platform including live television and on-demand content (e.g., content stored on a personal video recorder (PVR), content sourced from third parties. Internet streamed videos (e.g., YouTube), and so on). Conventionally, a user must manually create and maintain their own favorites list (e.g., programs or content favorites). Once created, the favorites list is visible to any individual using the same system (e.g., digital receiver, set-top box, or remote control unit). As such, a favorites list for a first user (e.g., an adult) at the system may not be suitable for a second user at the same system (e.g., a child), but is still visible to the second user.
BRIEF DESCRIPTION OF DRAWINGS
Various ones of the appended drawings merely illustrate example embodiments of the present invention and cannot be considered as limiting its scope.
<figref idref="DRAWINGS">FIG. 1</figref> is a diagram illustrating an example environment for dynamically creating intuitive favorites for a user.
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating an example embodiment of components within a digital receiver.
<figref idref="DRAWINGS">FIG. 3</figref> is a flow diagram of an example method for dynamically creating intuitive favorites for a user.
<figref idref="DRAWINGS">FIG. 4</figref> is a flow diagram of an example method for providing a favorites list.
<figref idref="DRAWINGS">FIG. 5</figref> is a simplified block diagram of a machine in an example form of a computing system within which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed.
DETAILED DESCRIPTION
The description that follows includes systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative embodiments of the present inventive subject matter. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the inventive subject matter. It will be evident, however, to those skilled in the art, that embodiments of the inventive subject matter may be practiced without some or other of these specific details. In general, well-known instruction instances, protocols, structures, and techniques have not been shown in detail.
Example embodiments described herein provide systems and methods for automatically and dynamically creating intuitive favorites of content programs (herein referred to as “favorites” or “content program favorites”) for a user. In particular, example embodiments provide mechanisms and logic that monitor actions performed, by the user at a digital receiver, with respect to a plurality of content programs. In example embodiments, content programs may comprises multiple episodes. The actions comprise various commands that are received from the user with respect to the plurality of content programs. Example commands include a view command to view one or more of the plurality of content programs; a recording command to record one or more of the plurality of content programs; a command to set a reminder to view one or more of the plurality of content programs; a command to search or browse for one or more of the plurality of content programs; and a command to purchase or subscribe to one or more of the plurality of content programs.
The actions performed with respect to the plurality of content programs are analyzed. The analysis includes comparing a level of the actions over a predetermined period of time with respect to a content program of the plurality of content programs to a threshold. Accordingly, the level of the actions may comprise an amount of time that a particular command is in effect with respect to the content program (e.g., an amount of time a view command is in effect indicating a length of time the content program was viewed, an amount of time a search result/browse result is viewed based on a command to search or browse), or a number of times that a particular command is selected with respect to the content program (e.g., a number of times a record command is received for the content program, a number of times a command to set a reminder to view the content program is received, or a number of times a command to purchase or subscribe to the content program is received). Based on the comparison indicating that the first content program is a favorites (e.g., equal to or transgressing the threshold), an indication that the first content program is a favorites is stored to a data store. The data store is located at the digital receiver, a cloud server, or both.
The system and methods also provides a favorites list based on the indication stored in the data store. In example embodiments, a request for content program favorites is received from the user. In response, the indications of the favorites of the user are retrieved from the data store. Using the indications of the favorites, a favorites list is generated and caused to be presented to the user.
The digital receiver continually monitors the actions performed by the user at the digital receiver. Therefore, a change in the level of action with respect to content programs can occur. If a level of action with respect to a content program that was previously identified as a favorites is reduced such that a comparison with the threshold indicates the content program is no longer a favorites (e.g., no longer equal to or transgressing the threshold), the indication that the content program is a favorites is removed from the data store. As a result, a user's favorites may be dynamically updated whenever the analysis is performed. This results in a favorites list that is consistently up-to-date for the user.
As a result, one or more of the methodologies described herein facilitate solving the technical problem of automatically and dynamically creating intuitive favorites of content programs. The methodologies include monitoring user actions with respect to a plurality of content programs. The logic also dynamically analyzes the monitored user actions to determine which content programs are favorites based on a threshold (e.g., equal to or transgressing the threshold). As a result, one or more of the methodologies described herein may obviate a need for certain efforts or resources that otherwise would be involved in browsing for content or manually creating and maintaining a favorites list. Additionally, resources used by one or more machines, databases, or devices (e.g., within the environment) may be reduced. Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, network bandwidth, and cooling capacity.
With reference to <figref idref="DRAWINGS">FIG. 1</figref>, a diagram illustrating an example environment <b>100</b> in which embodiments of a system for dynamically creating and maintaining content program favorites for a user is shown. In example embodiments, a digital receiver <b>102</b> of a user provides access to content programs. In one embodiment, the digital receiver <b>102</b> is a set-top box. The digital receiver <b>102</b> is coupled to a viewing device <b>104</b> (e.g., a television or monitor) on which the user can view the content programs as well as a favorites list. In some embodiments, the digital receiver <b>102</b> may be combined with the viewing device <b>106</b> (e.g., a smart television). Since the user accesses content programs through the digital receiver <b>102</b>, the digital receiver <b>102</b> is configured to monitor actions performed by the user with respect to the content programs. The actions comprise various commands that are received from the user with respect to the plurality of content programs (e.g., commands to view the content programs; record the content programs; set reminders to view the content programs; purchase or subscribe to the content programs; browse or search for the content program, and any other actions performable at the digital receiver <b>102</b> with respect to the content programs).
In some embodiments, the digital receiver comprises logic to analyze the monitored actions to determine favorites (e.g., content program favorites) of the user. Indications of the favorites can be transmitted through a network <b>106</b> (e.g., the Internet, wireless network, cellular network, or a Wide Area Network (WAN)) to a cloud server <b>108</b> for networked storage. In example embodiments, the cloud server <b>108</b> manages an account associated with the digital receiver <b>102</b>. The account comprises one or more user profiles, each user profile corresponding to a user of the digital receiver <b>102</b>. Account information including the indication of favorites are stored in a user profile of the corresponding user in an account data store <b>110</b> that is coupled to (or resides within) the cloud server <b>108</b>. Since a list of favorites (e.g., a list of the indications of the favorites) is maintained by the cloud sever <b>108</b>, the user can access their list of favorites from any digital receiver.
In some embodiments, the digital receiver <b>102</b> accesses content programs from a network personal video recorder (network PVR) <b>112</b>. The network PRV <b>112</b> is coupled via the cloud server <b>108</b> for access by the digital receiver <b>102</b>. As such, in some embodiments, the cloud server <b>108</b> is also configured to monitor the actions of the user.
Further still, a schedule server <b>114</b> is coupled to the network <b>106</b> in some example embodiments. The schedule server <b>114</b> stores or provides access to content viewing schedules. The content viewing schedules may be used by the digital receiver <b>102</b> to determine actual content programs that the user is interacting with. For example, the digital receiver <b>102</b> may only know that the user is access channel 2 at 8 pm on Thursday. The digital receiver <b>102</b> accesses a content viewing schedule from the schedule server <b>114</b> and uses the content viewing schedule to identify the actual content program that corresponds to the channel and time.
In example embodiments, the environment <b>100</b> also includes a local PVR <b>116</b> coupled to the digital receiver <b>102</b>. The local PVR <b>116</b> locally stores recorded content programs. Access of the locally recorded content programs, through the digital receiver <b>102</b>, is also monitored by the digital receiver <b>102</b>.
It is noted that the environment <b>100</b> shown in <figref idref="DRAWINGS">FIG. 1</figref> is merely an example. For example, not all components of the environment <b>100</b> may be shown. Additionally, some components of the environment <b>100</b> may be combined. For instance, the account data store <b>110</b> may be embodied within the cloud server <b>108</b>, or the digital receiver <b>102</b> and the viewing device <b>104</b> may be contained within a single device (e.g., a smart television). Furthermore, operations discussed as occurring at the digital receiver <b>102</b> may be performed at the cloud server <b>108</b>. For example, the monitoring and analyzing, as will be discussed further below, may be performed at the cloud server <b>108</b>.
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating an example embodiment of the digital receiver <b>102</b>. The digital receiver <b>102</b> is configured to monitor user actions and interactions with content programs and to analyze the monitored information to determine favorites for the user. To enable these operations of the digital receiver <b>102</b> comprises a communications module <b>202</b>, an accounts module <b>204</b>, a transport engine <b>206</b>, a monitoring module <b>208</b>, a validation module <b>210</b>, a favorites generations module <b>212</b>, a user interface module <b>214</b>, and a data store <b>216</b> communicatively coupled together. The digital receiver <b>102</b> may comprise other components not pertinent to example embodiments that are not shown or discussed. Furthermore, alternative embodiments may comprise more, less, multiples of, or other components. Additionally, some functions of the components may be combined or divided into two or more further components.
The communications module <b>202</b> manages data exchange between the digital receiver <b>102</b> and the other components of the environment <b>100</b> including the cloud server <b>108</b>. For example, the digital receiver <b>102</b> communicates data indicating identified favorites to the cloud server <b>108</b> via the communications module <b>202</b>. In another example, the digital receiver <b>102</b> retrieves indications of the favorites stored by the cloud server <b>108</b> using the communications module <b>202</b>.
The accounts module <b>204</b> manages one or more accounts associated with the digital receiver <b>102</b>. When the user initially interacts with the digital receiver <b>102</b>, the user may first log into their account via the account module <b>204</b> to identify themselves to the digital receiver <b>102</b>. By logging in, the user has access to their list of favorites either locally stored at the digital receiver <b>102</b> or at the cloud server <b>108</b>. Additionally, any actions performed by the user can be monitored and associated with a user profile of the user in the account by the digital receiver <b>102</b>.
The transport engine <b>206</b> manages channel tuning, recording, and other operations at the digital receiver <b>102</b>. Accordingly, the transport engine <b>206</b> receives various commands, as discussed herein, from a user of the digital receiver <b>102</b> (e.g., via a remote control). Based on the command, the transport engine <b>206</b> can change channels, record content programs, set reminders, search for content programs, and so forth.
The monitoring module <b>208</b> monitors or tracks actions performed by the user with respect to content programs. The actions comprise various commands that are received by the transport engine <b>206</b> from the user with respect to the plurality of content programs. Example commands include a view command to view one or more of the plurality of content programs; a recording command to record one or more of the plurality of content programs; a command to set a reminder to view one or more of the plurality of content programs; a command to search or browse for one or more of the plurality of content programs; and a command to purchase or subscribe to one or more of the plurality of content programs.
The monitoring module <b>208</b> also detects a duration of the actions. For example, the monitoring module <b>208</b> tracks not only the content program that corresponds to a view command, but also how long the view commend is in effect (e.g., indicating how long a user is watching the content program). In another example, the monitoring module <b>208</b> tracks an amount of time a content program is browsed or an amount of time a content program in a search result is reviewed in response to a command to search or browse for content programs. Information obtained from the monitoring can be locally stored (or cached) or transmitted to the cloud server <b>108</b> for storage at the network account data store <b>110</b>.
The validation module <b>210</b> is configured to perform analysis of the monitored information. In example embodiments, the validation module <b>210</b> identifies the content program associated with each action. For example, validation module <b>210</b>, via the communications module <b>202</b>, accesses or retrieves a content viewing schedule from the schedule server <b>114</b> and use the content viewing schedule to identify the content program.
In some embodiments, the validation module <b>210</b> aggregates the monitored information performed with respect to a same content program for a predetermined period of time (e.g., past month). The aggregated information will include an indication of a level of action performed with respect to the content program. For example, the level of action may be a number of minutes a view command is in effect for the content program (e.g., indicating an amount of time the content program or episodes of the content program were viewed), a number of times a record command was received for the content program, a number of times a command to purchase or subscribe to a content program was received, a number of minutes the content program was browsed in response to a command to browse, and so forth.
The level of action is then compared to one or more predetermined thresholds (e.g., to determine whether the threshold is transgressed or met). The predetermined thresholds may be obtained from the data store <b>216</b>. For example, a first threshold comprises an amount of time that the view command was in effect over the predetermined period of time. If the view command was in effect for a longer amount of time than the first threshold, for example, the content program is identified as a favorites.
Other thresholds can be used and include a number of times a record command for the content program was received over a predetermined period of time, a number of times a command to set a reminder for the content program was received over a predetermined period of time, and a number of times a command to purchase or subscribe to the content program was received (e.g., to purchased five episodes of a particular content program) over a predetermined period of time. Additionally, a threshold based on a command to browse for content programs may be based on how long the user stayed on a particular content program or how frequently the user visits the content program, while a threshold based on a search command is based on how long the user spent reviewing a search result (e.g., an episode of a content program). The predetermined period of time for each threshold may differ. For example, the predetermined period of time for a viewing threshold may be one month, while a predetermined period of time for a recording threshold may be two months.
The favorites generation module <b>212</b> manages favorites (e.g., favorite content programs). In some embodiments, a transgression of (or being equal to) any of the thresholds, as determined by the validation module <b>210</b>, triggers the favorites generation module <b>212</b> to mark content program as a favorites. In other example embodiments, a combination of transgressions of (or being equal to) thresholds is needed in order for the favorites generation module <b>212</b> to mark the content program as a favorites. For example, a record command for a particular content program transgresses (or is equal to) a recording threshold. However, the user may only end up viewing one recorded episode of the content program (e.g., only one view command received), which does not transgress (or is equal to) a viewing threshold. In this embodiment, the content program may not be marked as a favorites. Accordingly, various algorithms for determining whether a program content is a favorites may be stored in the data store <b>216</b> and applied by the validation module <b>210</b> and the favorites generation module <b>212</b>. In one embodiment, application download/upgrades can be one criteria to determine application of an appropriate algorithm. Marking the content program as a favorites includes storing an indication that the content program is a favorites. The indication can be stored locally at the digital receiver <b>102</b> (e.g., in the data store <b>216</b>) or stored remotely at the cloud server <b>108</b> (e.g., account data store <b>110</b>).
The monitoring module <b>208</b> continually monitors the user's actions (e.g., the receipt of commands by the transport engine <b>206</b>). Therefore, as the predetermined period of time (e.g., past month) shifts (e.g., by a two weeks), the validation module <b>210</b> uses the newly collected monitored information for analysis. This may result in a change in viewing, recording, reminder setting, browsing, searching, or purchase/subscription patterns for the user. For example, a level of action with respect to a content program may be reduced such that the level of action falls below the threshold. As a result, the content program that was previously indicated to be a favorites is no longer a favorites, and the indication that the content program is a favorites is removed for that content program in the data store <b>216</b> or account data store <b>110</b>.
When a request for a favorites list is received from a user, the favorites generation module <b>212</b> access the stored indications of the favorites and generates the favorites list. In example embodiments, where the indications are not locally available at the digital receiver <b>102</b>, the favorites generation module <b>212</b> accesses the indications stored by the cloud server <b>108</b> via the communications module <b>202</b>. Thus, the favorites generation module <b>212</b> dynamically generates the favorites list based on the latest indications stored in a user profile of the user. Since the monitoring and analysis is continual, the favorites list may be continually changing and updated automatically by the system (e.g., the digital receiver <b>102</b>).
The user interface module <b>214</b> generates and causes display of various user interfaces on the viewing device <b>104</b>. The user interfaces may include an account login interface that allows the user to log into their account, a favorites request interface that allows the user to request a favorites list, and a favorites interface that displays the favorites list.
The user can also edit the favorites list via the user interface module <b>214</b>. Since the favorites list is dynamically generated by the favorites generation module <b>212</b>, the user may not agree with all the program contents listed on the favorites list. As such, the user may delete a program content, add a program content, or rearrange program content shown on the favorites list.
The data store <b>216</b> maintains local storage of data for the digital receiver <b>102</b>. The data store <b>216</b> may store user profiles, monitored information, predetermined thresholds, and indications of favorites. Some of the data stored at the data store <b>216</b> may also be, or alternatively be, stored at the account data store <b>110</b> associated with the cloud server <b>108</b>.
While various components are described as being a part of the digital receiver <b>102</b>, in alternative embodiments, some of the components of the digital receiver <b>102</b> may be embodiments at the cloud server <b>108</b>. For example, the cloud server <b>108</b> can comprise a monitoring module for monitoring actions performed by the user; a validation module to analyze the monitored information; or a favorites generation module to cause storage of indication of favorites or to generate a favorites list that is transmitted to the digital receiver <b>102</b> for presentation.
<figref idref="DRAWINGS">FIG. 3</figref> is a flow diagram of an example method <b>300</b> for dynamically creating intuitive favorites for a user. In some embodiments, the method <b>300</b> is performed in part or in whole by components of the digital receiver <b>102</b>. Accordingly, the method <b>300</b> is described by way of example with reference to the digital receiver <b>102</b>. However, it shall be appreciated that at least some of the operations of the method <b>300</b> may be deployed on various other hardware configurations or be performed by similar components residing on the cloud server <b>108</b>. Therefore, the method <b>300</b> is not intended to be limited to the digital receiver <b>102</b>.
In operation <b>302</b>, the user logs in with (or otherwise identifies themselves to) the digital receiver <b>102</b> via the accounts module <b>204</b>. In one embodiment, the user selects their profile from a list displayed by the digital receiver <b>102</b>. The user may also be asked to provide login credentials (e.g., PIN, password). By logging in, any actions performed by the user can be monitored and associated with a user profile of the user by the digital receiver <b>102</b>.
In operation <b>304</b>, actions performed by the user with respect to content programs are monitored and tracked. In example embodiments, the monitoring module <b>208</b> monitors or tracks actions initiated by the user with respect to the content programs (e.g., via commands received by the transport engine <b>206</b>). The actions comprise various commands that are received from the user with respect to the plurality of content programs. Example commands include a view command to view one or more of the plurality of content programs; a recording command to record one or more of the plurality of content programs; a command to set a reminder to view one or more of the plurality of content programs; a command to search or browse for one or more of the plurality of content programs a command to purchase or subscribe to one or more of the plurality of content programs; or any other actions performable at the digital receiver <b>102</b> with respect to the content programs. The monitoring module <b>208</b> also detects a duration of the actions (e.g., duration of time, number of times).
In operation <b>306</b>, the monitored information is analyzed. Operation <b>306</b> may occur periodically at a predetermined interval (e.g., monthly, weekly), based on one or more events (e.g., when a certain amount of monitored information is collected for the user), be triggered automatically (e.g., every time the user logs in with the digital receiver <b>102</b>), or be manually triggers (e.g., the user indicates they want an updated favorites list).
In example embodiments, the validation module <b>210</b> performs operation <b>306</b>. The validation module <b>210</b> may initially identify the content program associated with each action. For example, the validation module <b>210</b> accesses or retrieves a content viewing schedule from the schedule server <b>114</b> and use the content viewing schedule to identify the content program. In some embodiments, the validation module <b>210</b> aggregates the monitored information with respect to a same content program for a predetermined period of time (e.g., past month). The aggregated information includes an indication of a level of action performed with respect to the content program. The level of the actions may comprise an amount of time that a particular command is in effect with respect to the content program (e.g., an amount of time a view command is in effect indicating a length of time the content program was viewed, an amount of time a search result/browse result is viewed based on a command to search or browse), or a number of times that a particular command is selected with respect to the content program (e.g., a number of times a record command is received for the content program, a number of times a command to set a reminder to view the content program is received, a number of times a command to purchase or subscribe to the content program is received). The level of action is then compared to one or more predetermined thresholds by the validation module <b>210</b> to determine whether the threshold is met or transgressed.
In operation <b>308</b>, a determination is made as to whether the level of action meets or exceeds the threshold. If one or more thresholds are met or transgressed, then in operation <b>310</b>, the content program is marked as a favorites and a corresponding indication is stored. In some embodiments, any one of the thresholds being met or transgressed, as determined by the validation module <b>210</b>, triggers the favorites generation module <b>212</b> to mark the content program as a favorites. In other embodiments, a combination of thresholds being met or transgressed is needed in order for the favorites generation module <b>212</b> to mark the content program as a favorites. The indication can be stored locally at the digital receiver <b>102</b> or stored remotely at the cloud server <b>108</b>.
The monitoring module <b>208</b> continually monitors the user's actions in operation <b>304</b>. Therefore, as the predetermined period of time (e.g., past month) shifts, the validation module <b>210</b> (e.g., at a predetermined interval, such as, weekly; based on an event; or when otherwise triggered) uses the newly collected monitored information for analysis in operation <b>306</b>. This may result in a change in viewing, recording, reminder setting, browsing, searching, or purchase/subscription patterns for the user. As a result, a content program that was previously indicated to be a favorites may no longer be a favorites, and the indication is removed, by the favorites generation module <b>212</b>, for that content program. Accordingly, the favorites generation module <b>212</b> may, in one embodiment, access a list of the indications of favorites in order to determine whether a previously stored indication should be removed for a content program that is no longer a favorites.
<figref idref="DRAWINGS">FIG. 4</figref> is a flow diagram of an example method <b>400</b> for providing a favorites list. In some embodiments, the method <b>400</b> is performed in part or in whole by components of the digital receiver <b>102</b>. Accordingly, the method <b>400</b> is described by way of example with reference to the digital receiver <b>102</b>. However, it shall be appreciated that at least some of the operations of the method <b>400</b> may be deployed on various other hardware configurations or be performed by similar components residing on the cloud server <b>108</b>. Therefore, the method <b>400</b> is not intended to be limited to the digital receiver <b>102</b>.
In operation <b>402</b>, the user logs in with (or otherwise identifies themselves to) the digital receiver <b>102</b> via the accounts module <b>204</b>. In one embodiment, the user selects their profile from a list displayed by the digital receiver <b>102</b>. The user may also be asked to provide login credentials (e.g., PIN, password). By logging in, the user has access to their favorites list either locally stored at the digital receiver <b>102</b> or at the cloud server <b>108</b>. In some embodiments, the operation <b>402</b> may be operation <b>302</b>.
In operation <b>404</b>, a request for a favorites list is received. In example embodiments, the user may submit the request for the favorites list using a user interface provided displayed on the viewing device <b>104</b> by the user interface module <b>214</b> or via a remote control device associated with the receiver device <b>102</b>.
In operation <b>406</b>, the indications of favorites are retrieved. When the request for a favorites list is received from the user, the favorites generation module <b>212</b> accesses the stored indications of the favorites (e.g., a list of favorites) from a user profile of the user. In some embodiments, the indications of favorites is locally stored at the digital receiver <b>102</b> (e.g., at the data store <b>216</b>). In other embodiment, the indications are not locally available at the digital receiver <b>102</b> and the favorites generation module <b>212</b> accesses the indications stored by the cloud server <b>108</b> (e.g., at the account data store <b>110</b>) via the communications module <b>202</b>.
In operation <b>408</b>, the favorites list is generated. Once retrieved, the favorites generation module <b>212</b> dynamically generates the favorites list based on the latest indications stored in a user profile of the user. Because the indications are continually updated, the favorites list may change every time it is generated by the favorites generation module <b>212</b>.
In operation <b>410</b>, the favorites list is presented to the user in a user interface. In example embodiments, the user interface module <b>214</b> generates and causes display of a favorites (user) interface that displays the favorites list. The favorites interface may also comprise controls that allow the user to edit the favorites list.
<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating components of a machine <b>500</b>, according to some example embodiments, able to read instructions <b>524</b> from a machine-readable medium <b>522</b> (e.g., a non-transitory machine-readable medium, a machine-readable storage medium, a computer-readable storage medium, or any suitable combination thereof) and perform any one or more of the methodologies discussed herein, in whole or in part. Specifically, <figref idref="DRAWINGS">FIG. 5</figref> shows the machine <b>500</b> in the example form of a computer device (e.g., a computer) within which the instructions <b>524</b> (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine <b>500</b> to perform any one or more of the methodologies discussed herein may be executed, in whole or in part.
For example the instructions <b>524</b> may cause the machine <b>500</b> to execute the flow diagrams of <figref idref="DRAWINGS">FIGS. 3 and 4</figref>. The instructions <b>524</b> can transform the general, non-programmed machine <b>500</b> into a particular machine (e.g., specially configured machine) programmed to carry out the described and illustrated functions in the manner described.
In alternative embodiments, the machine <b>500</b> operates as a standalone device or may be connected (e.g., networked) to other machines. The machine <b>500</b> may be a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (e.g. STB), a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, a network switch, a network bridge, a power adapter, or any machine <b>500</b> capable of executing the instructions <b>524</b>, sequentially or otherwise, that specify actions to be taken by that machine <b>500</b>. Further, while only a single machine <b>500</b> is illustrated, the term “machine” shall also be taken to include a collection of machines that individually or jointly execute the instructions <b>524</b> to perform any one or more of the methodologies discussed herein.
The machine <b>500</b> includes a processor <b>502</b> (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio-frequency integrated circuit (RFIC), or any suitable combination thereof), a main memory <b>504</b>, and a static memory <b>506</b>, which are configured to communicate with each other via a bus <b>508</b>. The processor <b>502</b> may contain microcircuits that are configurable, temporarily or permanently, by some or all of the instructions <b>524</b> such that the processor <b>502</b> is configurable to perform any one or more of the methodologies described herein, in whole or in part. For example, a set of one or more microcircuits of the processor <b>502</b> may be configurable to execute one or more modules (e.g., software modules) described herein.
The machine <b>500</b> may further include a graphics display <b>510</b> (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video). The machine <b>500</b> may also include an alphanumeric input device <b>512</b> (e.g., a keyboard or keypad), a cursor control device <b>514</b> (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, an eye tracking device, or other pointing instrument), a storage unit <b>516</b>, a signal generation device <b>518</b> (e.g., a sound card, an amplifier, a speaker, a headphone jack, or any suitable combination thereof), and a network interface device <b>520</b>.
The storage unit <b>516</b> includes the machine-readable medium <b>522</b> (e.g., a tangible machine-readable storage medium) on which are stored the instructions <b>524</b> embodying any one or more of the methodologies or functions described herein. The instructions <b>524</b> may also reside, completely or at least partially, within the main memory <b>504</b>, within the processor <b>502</b> (e.g., within the processor's cache memory), or both, before or during execution thereof by the machine <b>500</b>. Accordingly, the main memory <b>504</b> and the processor <b>502</b> may be considered machine-readable media <b>522</b> (e.g., tangible and non-transitory machine-readable media).
In some example embodiments, the machine <b>500</b> may be a portable computing device and have one or more additional input components (e.g., sensors or gauges). Examples of such input components include an image input component (e.g., one or more cameras), an audio input component (e.g., a microphone), a direction input component (e.g., a compass), a location input component (e.g., a global positioning system (GPS) receiver), an orientation component (e.g., a gyroscope), a motion detection component (e.g., one or more accelerometers), an altitude detection component (e.g., an altimeter), and a gas detection component (e.g., a gas sensor). Inputs harvested by any one or more of these input components may be accessible and available for use by any of the modules described herein.
As used herein, the term “memory” refers to a machine-readable medium <b>522</b> able to store data temporarily or permanently and may be taken to include, but not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While the machine-readable medium <b>522</b> is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions <b>524</b>. The term “machine-readable medium” shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions <b>524</b> for execution by a machine (e.g., machine <b>500</b>), such that the instructions <b>524</b>, when executed by one or more processors of the machine <b>500</b> (e.g., processor <b>502</b>), cause the machine <b>500</b> to perform any one or more of the methodologies described herein. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, one or more data repositories in the form of a solid-state memory, an optical medium, a magnetic medium, or any suitable combination thereof.
Furthermore, the machine-readable medium <b>522</b> is non-transitory in that it does not embody a propagating or transitory signal. However, labeling the machine-readable medium <b>522</b> as “non-transitory” should not be construed to mean that the medium is incapable of movement—the medium should be considered as being transportable from one physical location to another. Additionally, since the machine-readable medium <b>522</b> is tangible, the medium may be considered to be a machine-readable device. Furthermore, the machine-readable medium <b>522</b> does not comprise any transitory signals.
The instructions <b>524</b> may further be transmitted or received over a communications network <b>526</b> using a transmission medium via the network interface device <b>520</b> and utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks <b>526</b> include a local area network (LAN), a wide area network (WAN), the Internet, mobile telephone networks, plain old telephone service (POTS) networks, and wireless data networks (e.g., WiFi, LTE, and WiMAX networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine <b>500</b>, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium <b>522</b> or in a transmission signal) or hardware modules. A “hardware module” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor <b>502</b> or a group of processors <b>502</b>) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
In some embodiments, a hardware module may be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware module may be a special-purpose processor, such as a field-programmable gate array (FPGA) or an ASIC. A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware module may include software encompassed within a general-purpose processor or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
Accordingly, the phrase “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware modules) at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented module” refers to a hardware module implemented using one or more processors.
Similarly, the methods described herein may be at least partially processor-implemented, a processor being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules.
Some portions of the subject matter discussed herein may be presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). Such algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any suitable combination thereof), registers, or other machine components that receive, store, transmit, or display information. Furthermore, unless specifically stated otherwise, the terms “a” or “an” are herein used, as is common in patent documents, to include one or more than one instance. Finally, as used herein, the conjunction “or” refers to a non-exclusive “or,” unless specifically stated otherwise.
Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present invention. For example, various embodiments or features thereof may be mixed and matched or made optional by a person of ordinary skill in the art. Such embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is, in fact, disclosed.
The embodiments illustrated herein are believed to be described in sufficient detail to enable those skilled in the art to practice the teachings disclosed. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present invention. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present invention as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Contents4
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both waysCites: the store holds 17 of 18
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10334308B2 | Cited by | United States of America | Applicant |
| US11818418B2 | Cited by | United States of America | Applicant |
| US12155889B2 | Cited by | United States of America | Applicant |
| US10728607B2 | Cited by | United States of America | Applicant |
| US2007118848A1 | Cites | United States of America | Applicant |
| US2007288309A1 | Cites | United States of America | Search report |
| US2010162317A1 | Cites | United States of America | Search report |
| US2011258154A1 | Cites | United States of America | Applicant |
| US2012210224A1 | Cites | United States of America | Applicant |
| US2013305287A1 | Cites | United States of America | Search report |
| EP2779676A1 | Cites | European Patent Office (EPO) | Applicant |
| US6075526A | Cites | United States of America | Applicant |
| US8024756B2 | Cites | United States of America | Applicant |
| US8046793B2 | Cites | United States of America | Applicant |
| US8171515B2 | Cites | United States of America | Search report |
| US20070118848A1 | Cites | United States of America | Applicant |
| US20070288309A1 | Cites | United States of America | Search report |
| US20100162317A1 | Cites | United States of America | Search report |
| US20110258154A1 | Cites | United States of America | Applicant |
| US20120210224A1 | Cites | United States of America | Applicant |
| US20130305287A1 | Cites | United States of America | Search report |
| International Application Serial No. PCT/IB2017/000113, International Search Report dated Jul. 12, 2017, 5 pgs. | Non-patent | – | Applicant |
| International Application Serial No. PCT/IB2017/000113, Written Opinion dated Jul. 12, 2017, 8 pgs. | Non-patent | – | Applicant |
| International Application Serial No. PCT/IB2017/000113, International Search Report dated Jul. 12, 2017, 5 pgs. | Non-patent | – | Applicant |
| International Application Serial No. PCT/IB2017/000113, Written Opinion dated Jul. 12, 2017, 8 pgs. | Non-patent | – | Applicant |
18 members in 6 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 201615009651 | United States of America | A | |
| US201615009651 | – | – | – |
Members18
| Document | Office | Kind | |
|---|---|---|---|
| CA3009459A1 | Canada | A1 | |
| US2017223406A1 | United States of America | A1 | |
| WO2017130063A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US9912980B2This record | United States of America | B2 | |
| US2018220184A1 | United States of America | A1 | |
| CN108701146A | China | A | |
| EP3408764A1 | European Patent Office (EPO) | A1 | |
| BR112018014848A2 | Brazil | A2 | |
| US10334308B2 | United States of America | B2 | |
| US2020037021A1 | United States of America | A1 | |
| US10728607B2 | United States of America | B2 | |
| US2020404360A1 | United States of America | A1 | |
| BR112018014848B1 | Brazil | B1 | |
| CA3009459C | Canada | C | |
| US11818418B2 | United States of America | B2 | |
| US2024107107A1 | United States of America | A1 | |
| US12155889B2 | United States of America | B2 | |
| US2025119612A1 | United States of America | A1 |
41 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by OIPE CSRL194 | L194 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
3 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 09912980
- Publication, DOCDB
- 9912980
- Publication, EPODOC
- US9912980
- Application
- 15009651
- Application, DOCDB
- 201615009651
- Application, EPODOC
- US201615009651
Titles
- English
- Method and apparatus to create intuitive favorites for users
Patent term adjustment
- Applicant delay
- −22 days
- Net adjustment
- 0 days
Classification
- CPC, 13
- H04N21/4312
- G06F16/78
- G06F3/0482
- G06F17/30817
- G06F16/9535
- G06F17/30867
- H04N21/25891
- H04N21/4147
- G06F16/9538
- H04N21/442
- H04N21/4532
- H04N21/4882
- H04N21/84
- IPC, 9
- H04N21 431
- G06F3 0482
- H04N21 258
- H04N21 4147
- H04N21 442
- H04N21 45
- H04N21 488
- H04N21 84
- G06F17 30
- USPC, 2
- 725141000
- 001001000