Personalized ranking of entities in electronic program guides for live television
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- HULU LLC
- Filing Date
- 2024-07-24
- Publication Date
- 2026-08-03
Smart Images

Figure 0007899262000001 
Figure 0007899262000002 
Figure 0007899262000003
Abstract
Description
Cross - reference to related applications
[0003] ,
[0001]
[0001] This disclosure claims priority to U.S. Non - Provisional Patent Application No. 17 / 067,511, filed on October 9, 2020, entitled "Personalized Ranking of Entities In An Electronic Programming Guide for Live Television". The entire content of this application is hereby incorporated by reference in its entirety for all purposes.
Background Art
[0002]
[0002] An electronic programming guide can be a menu - based system that outputs information describing content in a linear time - based format. For example, an electronic programming guide can display scheduling information about current and future content such as television programs, radio programs, and other media.
[0003]
[0003] In one format of an electronic program guide, the layout may include multiple rows, each row associated with a channel offered by a video distribution service. Each channel may list the content currently available for the channel and the content to be offered at future times. For example, for channel #1, the currently offered program may be listed on a row, and another program may be listed on a row for the time after the current program has finished. Typically, channels may be arranged sequentially, for example, based on a channel identifier. For example, channel #1 may appear on the first row of the guide, channel #2 on the next row, and so on. The arrangement of channels in the electronic program guide may be fixed for all users. However, some users may prefer different channels. For example, a user may prefer channel #1 and not want to scroll through the electronic program guide to see what's on channel #1. However, the electronic program guide may not display all channels simultaneously on the interface. Therefore, another user who might prefer channel #20 might need to scroll to channel #20 to see what's on it whenever the electronic program guide is open.
[0004]
[0004] With regard to the following discussion and drawings, it is emphasized that the details shown are illustrative for the purpose of illustrative discussion and are presented to provide an explanation of the principles and conceptual aspects of the present disclosure. In this regard, no attempt is made to show details of implementations beyond what is necessary for a fundamental understanding of the present disclosure. The following discussion, in conjunction with the drawings, will make it clear to those skilled in the art how embodiments according to the present disclosure may be carried out. Similar or identical reference numerals may be used to identify or otherwise refer to similar or identical elements in various drawings and supporting descriptions. The attached drawings are as follows: [Brief explanation of the drawing]
[0005] [Figure 1]
[0005] A simplified system for generating an electronic program guide according to several embodiments is illustrated. [Figure 2]
[0006] Examples of home interface layouts according to several embodiments are illustrated. [Figure 3]
[0007] Examples of electronic program guides according to several embodiments are illustrated. [Figure 4]
[0008] Another example of a layout for an electronic program guide, according to several embodiments, is illustrated. [Figure 5]
[0009] A simplified flowchart illustrating a method for generating a list of ranked entities, according to several embodiments, is shown. [Figure 6]
[0010] A simplified flowchart illustrating a method for generating entities for an electronic program guide, according to several embodiments, is shown. [Figure 7]
[0011] A simplified flowchart illustrating a method for generating an electronic program guide according to several embodiments is shown. [Figure 8]
[0012] A simplified flowchart illustrating a method for refreshing an electronic program guide according to several embodiments is shown. [Figure 9]
[0013] This diagram illustrates a video streaming system, according to one embodiment, that communicates with multiple client devices via one or more communication networks. [Figure 10]
[0014] A diagram illustrating a device for viewing video content and advertisements is provided. [Modes for carrying out the invention]
[0006]
[0015] This specification describes techniques for electronic program guide systems. For illustrative purposes, numerous examples and specific details are provided in the following description to provide a complete understanding of several embodiments. Some embodiments defined by the claims may include some or all of the features in these examples, either individually or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein.
[0007]
[0016] A video distribution system may display its interface in different layouts. For example, a first interface layout may list entities such as programs, movies, campaigns, etc., offered by the video distribution system. Entities may be selected for playback at the moment. Entities may also be grouped into groupings that may be called collections. One collection may list entities that are currently live, which may mean that the entities are currently available in the program's linear schedule, for example, in a live television program. This collection may be called a live-now collection, but may be called by other names. Some entities in a live-now collection may only be viewable while the program is being offered live. That is, once the live program ends, that instance of the program may no longer be viewable as a live program at the moment on that channel. Other collections may include video-on-demand programs that may be available for viewing at any time, such as collections for movies, sports, archived programs, etc.
[0008]
[0017] Entity Ranker can rank entities for a user's Live Now collection. For example, Entity Ranker may use personalized information to rank entities. In this way, different users may receive different recommendations about entities in the Live Now collection. This can increase the relevance of entities included in the Live Now collection to the user, which can increase the choice of one entity in the Live Now collection to watch. Entity Ranker may rank entities based on which entities are currently live in the program's linear schedule. Ranked entities may also include other entities, such as entities that promote content that may not be live at the moment but may become live in the future.
[0009]
[0018] Another way to display the interface may be to use an Electronic Program Guide (EPG) layout. An EPG layout may include different formats that are based on displaying entities using a time-based method. For example, an EPG might display rows containing channels, where each channel displays the relevant entities provided by that channel from the present time to a future time range. As discussed in the background technology, when an EPG sequentially orders channels, it may not benefit from the personalization of channel ordering. In some cases, the first interface may be the home interface, which is first presented to the user account when the user interface is first displayed upon the user's initial login. The home interface may also be the interface used more frequently by the user account. If different methods for ordering entities are used between the LiveNow collection and the EPG, a seamless experience may not be provided when the user account switches between interfaces. Therefore, a video distribution system may use a ranked list of entities for the LiveNow collection to format the EPG.
[0010]
[0019] In some embodiments, a video distribution system may use a list of ranked entities to rearrange the layout of the electronic program guide. As discussed above, the list of ranked entities may rank entities that are currently live. The video distribution system may then determine the layout of the electronic program guide by converting a time-based layout based on the list of ranked entities into a layout for the electronic program guide. For example, if a channel layout is used, the video distribution system determines the channels associated with the ranked entities. The video distribution system may then rearrange the channel sequence in the electronic program guide to be similar to the order of channels associated with the ranked entities. For example, if the first ranked entity in the Live Now Collection is associated with channel #3, the video distribution system may move channel #3 to the highest priority position in the electronic program guide. Then, if the second ranked entity is associated with channel #10, the video distribution system moves channel #10 to the second priority position in the electronic program guide. From this, the video distribution system rearranges the ordering of the electronic program guide in the layout based on the ranking of entities for the Live Now Collection. When a user account switches between the primary interface and the electronic program guide, the electronic program guide presents a consistent view of the ranked list of entities between the Live Now Collection and the electronic program guide interface. Other layouts for the electronic program guide may also be recognized and are described below.
[0011]
[0020] System Overview
[0012]
[0021] Figure 1 illustrates a simplified system 100 for generating an electronic program guide, according to several embodiments. System 100 includes a server system 102 and a client 104. While a single server system 102 and a single client 104 are described, it will be understood that the functions described for the server system 102 may be distributed across multiple computing devices. Furthermore, the server system 102 may communicate with multiple clients 104.
[0013]
[0022] The server system 102 includes a video distribution system 106 that can distribute video to the client 104, and the video can be displayed on the user interface 112 via a media player (not shown). In some embodiments, the video distribution system 106 may include one or more servers that can be implemented using a content delivery network (CDN).
[0014]
[0023] Client 104 may include computing devices capable of playing videos, such as mobile devices, smartphones, tablet devices, living room devices, televisions, etc. Client 104 includes an interface application 110 that generates an interface in the user interface 112. The interface application 110 may enable the user to play videos from the video distribution system 106 and may also enable them to browse a library of videos provided by the video distribution service. The user interface 112 may display entities that may represent any form of content. For example, an entity may be associated with a program, which could be a television program, a movie, advertised content, a live sports event television broadcast, an episode of a program, an advertisement, or other content. An entity may be an icon, text, or other information describing the respective video.
[0015]
[0024] As will be discussed in more detail below, the interface application 110 may display a first interface in a first layout and a second interface in a second layout. A layout may be an organization of entities based on characteristics. The first interface may be an interface that displays entities that can be selected for playback at the present time. For example, the interface may be called the home interface, and the home interface is an interface that may be initially provided to the user when the interface application 110 is started or when the interface is in its home position. Although the home interface is described, the first interface does not have to be the home interface. In some examples as described above, the home interface may include a Live Now collection in addition to other collections that may include live entities or on-demand entities. Live entities may include entities from live television, and on-demand entities may be requested on demand. Live television may be from linear programming that provides entities at set times, where the user can only watch the program at set times. In contrast, entities provided on demand may be requested at any time for viewing.
[0016]
[0025] The second interface may be an electronic program guide that displays entities based on a time dimension. For example, an electronic program guide may include entities from a linear program schedule that may be arranged by channel. In some embodiments, the electronic program guide does not include on-demand entities. The second interface may arrange entities based on a time range that includes the present moment and other time ranges such as the current time period (e.g., 9:00 AM to 9:30 AM), a future time period (e.g., 9:30 AM to 10:00 AM), or a past time period (e.g., 8:30 AM to 9:00 AM). The second interface lists entities that are live within the time period. In some examples, entities may be arranged in rows associated with channels.
[0017]
[0026] The interface engine 108 can send interface commands to the interface application 110. Although described as being performed by the interface engine 108, the functions described with respect to the interface engine 108 may, in some cases, be performed by the interface application 110 in the client 104. Interface commands may provide the interface application 110 with commands to generate the user interface 112. Interface commands may be sent in response to input received from the user. For example, the user may move to a different interface or perform other actions on an interface. In response to these interactions, the interface engine 108 may generate changes to the interface. For example, input for displaying the electronic program guide 300 may be received from the user. The interface engine 108 receives the input and provides the interface application 110 with an interface command to display the electronic program guide with specific content during layout. Similarly, the interface engine 108 may provide the interface application 110 with an interface command to display a first interface with specific content during layout.
[0018]
[0027] As discussed above, the user interface 112 can be displayed in different layouts. The home interface generator 114 generates a home interface. The home interface generator 114 may use a ranker 118 to rank entities based on personalized information about the user account using the client 104. The user account may be associated with historical behavior such as a viewing history of entities previously viewed by the user account. Other personalized information may be entities that the user account has added to a collection or that the user has shown interest in such as indicating that the user likes an entity, preferences from the user account such as the user's favorite sports team or the user's favorite channel, the user's age, the user's gender, the location of the client 104, the time, the day of the week, the last episode viewed, the last series viewed, the last movie viewed, and other personalization characteristics such as etc. The ranker 118 may output a list of ranked entities for the live now collection. These entities may be associated with content that is live at the current time. For example, if the current time is 9:00 AM, the list of ranked entities is entities that can be viewed live at 9:00 AM. The ranker 118 may rank entities based on personalized information about the user account.
[0019]
[0028] The home interface generator 114 can receive a list of ranked entities and generate a layout for the live now collection. For example, the home interface generator 114 orders the entities in the live now collection based on the list of ranked entities. The live now collection may have prioritized slots, and the home interface generator 114 adds entities from the list of ranked entities to the prioritized slots. For example, the highest ranked entity is added to the first slot (e.g., highest priority) in the live now collection, the second entity is added to the slot with the second highest priority, and so on. The user interface 112 may also include other collections, and the home interface generator 114 can generate other lists of entities for display in the other collections based on different processes. The interface engine 108 then communicates the entities and the layout to the interface application 110. For example, the interface engine 108 sends the identification information about the entity and where the entity should be displayed in the layout of the home interface.
[0020]
[0029] The guide generator 116 can generate an electronic program guide. As described in the background art, the electronic program guide may include channels in a set order. To provide a similar personalization in the electronic program guide as shown in the live now collection, the guide generator 116 receives a list of ranked entities from the ranker 118 and can use the list of ranked entities to dynamically change the layout of the electronic program guide based on the list of ranked entities. Different ways to change the layout of the electronic program guide based on the list of ranked entities are described in more detail below with respect to FIGS. 3 and 4.
[0021]
[0030] Home Interface
[0022]
[0031] Figure 2 illustrates examples of home interfaces according to several embodiments. A home interface may include different categories, namely Category #1 204-1, Category #2 204-2, Category #3 204-3, and Category #4 204-4, but other categories may be recognized. Categories can group entities based on their characteristics. For example, Category #1 204-1 may be home interfaces, Category #2 204-2 may be user-added videos, Category #3 204-3 may be movies, etc.
[0023]
[0032] The home interface displays different collections 206-1 to 206-N. Collection 206 can display entities 202 using a selector 208. When selected, the user interface 112 can play the content associated with each entity 202. Collection 202 may contain more entities 202 than can be displayed on the screen. As a result, the user may have to scroll to see entities 202 that are off-screen. In some embodiments, the user interface 112 displays entities 202 according to priority, for example, slots in each collection 206 may have associated priorities, and entities 202 are inserted into the corresponding slots. Priority is used to display entities that are deemed more relevant to the user in higher-priority slots, which are more likely to be seen by the user. In some embodiments, the first slot has the highest priority and may be positioned differently within the collection based on the layout. For example, the first slot may be the leftmost slot on the user interface 112 when collection 206 is displayed horizontally, and the topmost slot when collection 206 is displayed vertically.
[0024]
[0033] One collection is LiveNowCollection 206-1. As discussed above, LiveNowCollection 206-1 may contain entities 202 that are currently available live. For example, LiveNowCollection 206-1 may contain entities #1 202-1 through #4 202-4. LiveNowCollection 206-1 may display entities 202 according to a list of ranked entities received from Ranka 118. For example, Ranka 118 may rank entity #1 202-1 as the highest-ranked entity for the user account, entity #2 202-2 as the second-highest-ranked entity in the list, and so on. For example, the first slot may contain the highest-ranked entity #1 202-1, the second slot may contain the second-highest-ranked entity #2 202-2, and so on. Therefore, the Live Now Collection 206-1 displays entities that are currently live in a personalized order for the user account. By prioritizing entities 202 that are deemed more relevant to the user account, the user account may be more likely to find and select those entities 202 for playback.
[0025]
[0034] Electronic TV Program Guide
[0026]
[0035] Figure 3 illustrates a first layout of the electronic program guide 300, and Figure 4 illustrates a second layout of the electronic program guide 300, although other formats may be recognized. Figure 3 illustrates examples of layouts for the electronic program guide 300 according to several embodiments. The electronic program guide 300 may arrange entities 202 in the guide based on a time dimension. For example, entities may be arranged based on a time range in which time progresses sequentially from the present moment. The time range may also cover time prior to the present moment.
[0027]
[0036] Different categories 304 can be used to display different layouts of the electronic program guide 300. For example, four different layouts may be associated with categories #1 304-1 to #4 304-4. The selector 208 can be used to select different layouts for the electronic program guide 300. For example, the layout for category #1 304-1 is illustrated in Figure 3, and the layout for category #2 304-2 is illustrated in Figure 4.
[0028]
[0037] The electronic program guide 300 may include different slots associated with different priorities. For example, a slot may be a different row displaying an entity 202. A row may be a container or area of the user interface 112 associated with a grouping of entities 202. In some embodiments, each row may be associated with a channel 302, and a channel 302 may be associated with a grouping of linear live programs. For example, a channel may be associated with a network that provides a particular lineup of live programs for that channel. A channel may be identified by an identifier which may be a number, a name, etc.
[0029]
[0038] The electronic program guide 300 also includes a timeline 308 that summarizes the time dimensions used to organize the layout of the electronic program guide 300. For example, the timeline 308 may include different time ranges, which may include time ranges about the present and time ranges about the future. As shown, the present is shown in 306, which is within the time range from 9:00 AM to 9:30 AM. The timeline 308 also shows future time ranges, such as from 9:30 AM to 10:00 AM, from 10:00 AM to 10:30 AM, etc.
[0030]
[0039] The electronic program guide 300 arranges the channel layout in rows based on priority for a list of ranked entities. For example, entity #1 202-1 is the highest-ranked entity in the list of ranked entities. The interface application 110 determines that entity #1 202-1 is associated with channel #2 302-2. The guide generator 116 then lists channel #2 302-2 as the first row with the highest priority to be displayed in the electronic program guide 300. Entity #2 202-2 is the second-highest-ranked entity in the list of ranked entities, and the guide generator 116 determines the associated channel for entity #2 202-2, namely channel #1 302-1. The guide generator 116 lists channel #1 302-1 in the second-highest-priority row of the electronic program guide 300. The guide generator 116 similarly determines the other channels associated with each entity 202 in the list of ranked entities. For example, in the list of ranked entities, channel #10 302-10 is associated with entity #3 202-3, channel #5 302-5 is associated with entity #4 202-4, and each channel appears in the next highest priority row in the electronic program guide 300.
[0031]
[0040] Therefore, the guide generator 116 uses the list of ranked entities to determine each channel and changes the layout of the electronic program guide 300 accordingly, thereby changing the channel layout sequence. Channel #2 302-2 is currently playing the highest-ranked entity of entity #1 202-1 live, and this channel appears in the highest-priority row of the electronic program guide 300. When the electronic program guide 300 is displayed, the user account sees channels containing the highest-ranked entity #1 202-1 in the first row. Also, the user does not need to scroll to find channels that may be playing the entity that the user is most likely to want to watch. This is not only advantageous in providing focus to channels in the first row, but is also important when higher-ranked channels that might be off-screen are moved on-screen in the initial display of the electronic program guide 300. For example, channel #10 302-10 might have appeared off-screen if sequential channel numbering were used in the electronic program guide 300. However, the electronic program guide 300 displays channel #10 302-10 on the third line when it is first displayed, which increases the likelihood that the user account will see a channel containing entity 202 that the user account wants to play.
[0032]
[0041] Using a list of ranked entities to arrange channel sequences in rows within the electronic program guide 300 also coordinates the visual display of entities with the home interface shown in Figure 2. For example, the home interface listed entities #1 202-1 to #4 202-4 in the Live Now Collection 206-1. When the interface switches to the electronic program guide 300, the user still sees entities #1 202-1 to #4 202-4 in the same row order. The layout may be in a different format, such as the rows in the electronic program guide 300 being stacked vertically in this example, but the order of entities #1 202-1 to #4 202-4 remains the same. By maintaining the same order, the user experience for the user account is consistent across the home interface, the electronic program guide, and 300 with respect to the order of the list of ranked entities.
[0033]
[0042] The electronic program guide 300 is based on a time dimension, and therefore other entities may be listed for channels at future times. For example, instead of simply displaying entities #1 202-1 to #4 202-4 in the electronic program guide 300, the electronic program guide 300 displays other entities for each channel. For example, channel #2 302-2 provides entity #5 202-5 from 9:30 AM to 10:30 AM, and then provides entity #6 202-6 at 10:30 AM. Channel #1 302-1 provides entity #7 202-7 from 9:30 AM to 10:00 AM, and provides entity #8 202-8 at 10:00 AM. Channel #10 302-10 provides entity #9 202-9 at 10:00 AM, and channel #5 302-5 provides entity #4 202-4 throughout the time range indicated in the electronic program guide 300. Entities 202-5 to 202-9 may or may not be ranked as entities associated with a user account, but are listed due to the format in which the channels are displayed. These entities 202 may not be displayed during the home interface because they are not currently live.
[0034]
[0043] Figure 4 illustrates another example of a layout for the electronic program guide 300 according to several embodiments. In some embodiments, an input is received to select category #2 304-2 which displays a different layout for the electronic program guide 300. The format of the electronic program guide 300 in Figure 4 may also be based on a time dimension, but may display entities in grouping of time ranges. For example, the electronic program guide 300 may display different time ranges from 402-1 to 402-3, such as the ranges from 9:00 AM to 9:30 AM, from 9:30 AM to 10:00 AM, and from 10:00 AM to 10:30 AM. Within a time range, the electronic program guide 300 displays entities associated with each time range, such as entities that may have started during the time range or that may be live during the time range. For example, entities #1 to #4 202-1 to 202-4 are shown over a time range from 9:00 AM to 9:30 AM, including the present time, because these entities 202 start within that time range. The electronic program guide 300 may arrange entities 202 in prioritized slots according to a list of ranked entities. For example, entity #1 202-1 is listed as the number one ranked entity in the first slot within the time range, entity #2 202-2 is listed as the number two ranked entity in the second slot within the time range, and so on. This layout also provides a consistent view from the home interface.
[0035]
[0044] The electronic program guide 300 includes other time ranges after the current time range. Because the list of ranked entities is for entities that are currently live, entities 202 listed during future time ranges may not be found in the list of ranked entities. The electronic program guide 300 may display other entities during future time ranges. In some embodiments, the electronic program guide 300 displays entities associated with channels for each entity in the list of ranked entities. For example, in the time range from 9:30 AM to 10:00 AM, entities #5 202-5 and #7 202-7 are shown. Entity #5 202-5 is associated with channel #2 302-2 for entity #1 202-1, and entity #7 202-7 is associated with channel #1 302-1 for entity #2 202-2. In 402-3, the time range from 10:00 AM to 10:30 AM shows entity #8 202-8 associated with channel #2 302-2 and entity #9 202-9 associated with channel #10 302-10. Other entities 202 from channels other than those associated with the list of ranked entities may also be shown in future time ranges, while entities 202 from channels associated with the list of ranked entities do not need to be shown in future time ranges.
[0036]
[0045] Therefore, the electronic program guide 300 arranges entities within a time range based on a list of ranked entities. Channels may not be displayed in rows, but the electronic program guide 300 may arrange entities within a future time range based on channels associated with the list of ranked entities.
[0037]
[0046] Entity generation
[0038]
[0047] Figure 5 illustrates a simplified flowchart 500 of a method for generating a list of ranked entities according to several embodiments. In 502, the interface engine 108 receives input from the user account to display the home interface. Then, in 504, the ranker 118 may determine personalized information about the user account, or the home interface may be displayed automatically. Personalized information may include real-time information about the context associated with the user account and / or client 104, in addition to historical information such as viewing history about the user account.
[0039]
[0048] In 506, Lanka 118 generates a list of ranked entities based on personalized information. For example, Lanka 118 may determine entities that are currently live based on the present time. Lanka 118 may then use a predictive network to rank entities based on personalized information. For example, Lanka 118 may use a machine learning model trained on personalized information about user accounts to predict entity rankings. While a machine learning model is described, other methods, such as a set of rules, may be used to rank entities. Lanka 118 may input features associated with the personalized information into the predictive model, which may rank entities that are currently live based on the features.
[0040]
[0049] In 508, the home interface generator 114 may select at least a portion of the entities. For example, the home interface generator 114 may have a limit on the number of entities to display in the home interface. In another example, the home interface generator 114 may select all entities in a ranked list of entities. In 510, the home interface generator 114 outputs at least a portion of the entities for the live now collection for the currently live entities.
[0041]
[0050] The user account may display the electronic program guide 300 at any time. For example, the electronic program guide 300 may be displayed after the home interface is displayed. However, the electronic program guide 300 may not necessarily be displayed after the home interface.
[0042]
[0051] Figure 6 illustrates a simplified flowchart 600 of a method for generating entities for the electronic program guide 300 according to several embodiments. In 602, the interface engine 108 receives input for displaying the electronic program guide 300. In 604, the ranker 118 generates a list of currently live ranked entities based on personalized information about the user account, as described above. This list may have already been generated for the Live Now collection or may be newly generated when the electronic program guide 300 is displayed. The list of ranked entities may be similar to the list used to generate the home interface. For example, the ranker 118 may output entities that are currently live.
[0043]
[0052] In 606, the guide generator 116 may filter out any entities that are not eligible for the electronic program guide 300. For example, since ranker 118 generates entities for the home interface, ranker 118 may rank entities that are not eligible for the electronic program guide 300. In some examples, ranker 118 may include some content that is not currently live, and the guide generator 116 may remove those entities. Different rules may be used to filter entities. For example, some entities that may be removed include advertisements, trailers, promotions for upcoming videos, etc. Also, some entities in the list of ranked entities may not be playable entities and will be removed as well. In some examples, some entities may be based on on-channel marketing campaigns that may be marketing content on the channel that may be coming soon. The guide generator 116 may hold on-channel marketing campaigns for display in the electronic program guide 300 because the program may soon be displayed in the electronic program guide 300.
[0044]
[0053] In 608, the guide generator 116 selects at least a portion of the entity. The selection will be described in more detail with respect to Figure 7.
[0045]
[0054] In 610, the guide generator 116 selects additional entities based on timing information about the guide. For example, the guide generator 116 may select entities at future times from channels associated with a portion of the entities. Then, in 612, the guide generator 116 outputs entities based on ranking and timing information for display in the electronic program guide 300.
[0046]
[0055] As discussed above, the electronic program guide 300 may be displayed in different layouts. In a layout that uses channels displayed in rows, the following process may be used to display entities 202. Figure 7 illustrates a simplified flowchart 700 of a method for generating the electronic program guide 300 according to several embodiments. In 702, the guide generator 116 determines the channels for each of the portions of entities 202 for the electronic program guide 300. In 704, the guide generator 116 sorts the channels of the electronic program guide 300 based on the ranking of entities 202.
[0047]
[0056] In 706, the guide generator 116 may determine entities 202 for time ranges in the electronic program guide 300 for sorted channels. In some examples, the guide generator 116 may query information about the channels to determine entities 202. Entities 202 may include entities that are currently live and entities that will be live in the future.
[0048]
[0057] In 708, the guide generator 116 outputs channels and entities 202 for the electronic program guide 300 having layout information, based on sorting. For example, the layout information may show a row for each respective channel.
[0049]
[0058] When displaying entity 202 in the layout shown in Figure 4, the guide generator 116 can determine the time range for the electronic program guide 300. The guide generator 116 inserts a list of ranked entities for the current time range. The guide generator 116 then determines entity 202 for future time ranges, for example, by determining entity 202 from channels associated with the list of ranked entities for future time ranges.
[0050]
[0059] Guide Refresh
[0051]
[0060] The electronic program guide 300 is refreshed at specific times. For example, the electronic program guide 300 may be refreshed at different set time intervals and / or when the ranking of the Live Now Collection on the home interface is refreshed. Figure 8 illustrates a simplified flowchart 800 of a method for refreshing the electronic program guide 300 according to several embodiments. In 802, the guide generator 116 monitors the refresh status of the electronic program guide 300. For example, the refresh rate may cause the electronic program guide 300 to adjust at specific time intervals, such as every half hour. The refresh rate may be for removing time ranges that are no longer valid from the electronic program guide 300 at specific time intervals, such as removing the time range from 9:00 AM to 9:30 AM if the current time is 9:45 AM. In other examples, the electronic program guide 300 may be refreshed when new rankings are output from the ranker 118. In some examples, the guide generator 116 may minimize refreshes to avoid a disruptive experience with the electronic program guide 300. For example, the electronic program guide 300 may list channels in rows, and dynamically switching the order of the rows while the user is viewing them could confuse the user. Therefore, the guide generator 116 may wait a certain amount of time from the last refresh before refreshing the electronic program guide 300 again.
[0052]
[0061] In 804, the guide generator 116 determines whether a guide refresh should be performed. If it should not be performed, the process returns to 802 and continues monitoring the refresh status. If a guide refresh is determined to be performed, the refresh may be performed because the entity is currently expired or a new ranking for the entity is available. Additionally, any marketing updates for new campaigns may expire and are also removed.
[0053]
[0062] If a guide refresh should be performed, and if applicable, the processes in 806 and 808 may be executed. In 806, the guide generator 116 determines whether any entity is expired relative to the current time. For example, some entities 202 (e.g., programs) may have ended based on the current time. For example, if an entity ends at 9:30 AM and the current time is 9:35 AM, then entity 202 is expired and the guide generator 116 removes entity 202 from the list of ranked entities. In 808, the guide generator 116 determines whether a new list of ranked entities is available. If a new list of ranked entities is available, the guide generator 116 may use the new ranking to replace the old ranking.
[0054]
[0063] In 810, the guide generator 116 updates the electronic program guide 300 based on the determined changes. In some embodiments, the guide generator 116 updates the guide using a smooth transition. The transition may be performed using a visual effect that does not disrupt the visual display of the electronic program guide 300.
[0055]
[0064] example
[0056]
[0065] In some examples, at 6:30 PM, a program titled "Program #1" is ranked with priority #3 in the list of ranked entities for the Live Now Collection. Program #1 is found on channel #1. In the Electronic Program Guide 300, channel #1 is listed in the third priority row from the top of the Electronic Program Guide 300.
[0057]
[0066] At 7:00 PM, Program #1 ends. Then, at 7:10 PM, the Live Now Collection is updated on the home interface. A new program titled "Program #2" is positioned in the Live Now Collection with the third priority, and Program #2 is found on channel #2. The electronic program guide 300 is then moved to reposition channel #2 on the third row of the electronic program guide 300.
[0058]
[0067] conclusion
[0059]
[0068] Therefore, the electronic program guide 300 can be prioritized based on a list of ranked entities for the Live Now collection. When a user switches the interface between the Live Now collection and the electronic program guide 300, the electronic program guide 300 is configured based on the list of ranked entities used to generate the Live Now collection. This provides a smooth transition between the home interface and the electronic program guide 300. Also, since the entities are ranked in order of relevance to the user account in the Live Now collection, the electronic program guide 300 can be organized to display entities 202 that are more relevant to the user in higher priority positions, such as at the top of the electronic program guide 300. This can increase the engagement between the user account and the electronic program guide 300, making it easier for the user to find entities 202 that are more relevant to them. Finding more relevant entities 202 can also increase the user account's engagement by prompting the user account to request more videos to play.
[0060]
[0069] Exemplary Embodiments
[0061]
[0070] In some embodiments, the method comprises: a computing device receiving a list of ranked entities for video playback of a first interface in a first layout, wherein the list of ranked entities is ranked based on personalized information about a user account; the computing device using the list of ranked entities to determine the ordering of entities in slots of an electronic program guide, wherein the slots of the electronic program guide display entities in a second layout based on the time dimension; and the computing device outputting information for displaying at least a portion of the entities in the electronic program guide based on the ordering of the entities.
[0062]
[0071] In some embodiments, the method further comprises generating a list of entities ranked based on a predictive model that ranks entities based on personalized information.
[0063]
[0072] In some embodiments, generating a list of ranked entities comprises determining which entities are currently live and ranking the entities that are live in the list of ranked entities.
[0064]
[0073] In some embodiments, the list of ranked entities is determined from a linear schedule of live television programs.
[0065]
[0074] In some embodiments, the first interface includes entities in a list of ranked entities that are live from a linear schedule of live television programs, and the first interface includes other entities that are available on demand.
[0066]
[0075] In some embodiments, a first interface of a first layout is displayed, input is received for displaying an electronic program guide, and a ranked list of entities used to display entities in the first interface is used to determine the ordering of entities in the electronic program guide.
[0067]
[0076] In some embodiments, using a list of ranked entities to determine the ordering of entities in an electronic program guide comprises determining the channels associated with the entities in the list of ranked entities and moving the channels to the corresponding priority slots in the electronic program guide based on the priority of the entities in the list of ranked entities.
[0068]
[0077] In some embodiments, using a ranked list of entities to determine the ordering of entities in an electronic program guide comprises determining additional entities for channels associated with entities in the ranked list of entities, and adding the additional entities to the corresponding priority slots in the electronic program guide.
[0069]
[0078] In some embodiments, using a list of ranked entities to determine the ordering of entities in an electronic program guide comprises determining the channels associated with each entity in the list of ranked entities and inserting each channel into the corresponding priority slot in the electronic program guide based on the priority of the entities in the list of ranked entities.
[0070]
[0079] In some embodiments, using a ranked list of entities to determine the ordering of entities in an electronic program guide involves inserting at least a portion of the entities into the slots in the electronic program guide designated with the highest priority.
[0071]
[0080] In some embodiments, using a ranked list of entities to determine the ordering of entities in an electronic program guide involves inserting at least a portion of the entities into a time range in the electronic program guide that is currently live for the entities.
[0072]
[0081] In some embodiments, using a ranked list of entities to determine the ordering of entities in an electronic program guide comprises determining additional entities for channels in at least a portion of the entities in a future time range, and inserting additional entities into the electronic program guide during the future time range.
[0073]
[0082] In some embodiments, a non-temporary computer-readable storage medium includes instructions that, when executed, enable the computer system to operate by receiving a list of ranked entities for video playback of a first interface of a first layout, wherein the list of ranked entities is ranked based on personalized information about a user account, and the list of ranked entities is used to determine the ordering of entities in a slot of an electronic program guide, wherein the slot of the electronic program guide displays entities in a second layout based on the time dimension and outputs information for displaying at least a portion of the entities in the electronic program guide based on the ordering of the entities.
[0074]
[0083] In some embodiments, the method comprises: displaying a first interface of a first layout by a computing device, wherein the first interface includes a list of ranked entities that are currently live at the present time, the entities in the list of ranked entities being ordered according to priority; receiving input by the computing device for displaying an electronic program guide, wherein the electronic program guide displays entities in a second layout based on the time dimension; and displaying at least a portion of the entities in the list of ranked entities in the electronic program guide, wherein at least a portion of the entities being ordered according to priority in the list of ranked entities.
[0075]
[0084] In some embodiments, displaying at least a portion of entities in the electronic program guide involves moving the channels associated with the entities in the list of ranked entities to the corresponding priority slot in the electronic program guide based on the priority of the entities in the list of ranked entities.
[0076]
[0085] In some embodiments, displaying at least a portion of entities in the electronic program guide comprises displaying additional entities for channels associated with entities in a list of ranked entities in the corresponding priority slot in the electronic program guide.
[0077]
[0086] In some embodiments, displaying at least a portion of entities in the electronic program guide comprises displaying each channel associated with each entity in the list of ranked entities in the corresponding priority slot in the electronic program guide, based on the priority of each entity in the list of ranked entities.
[0078]
[0087] In some embodiments, displaying at least a portion of an entity in an electronic program guide comprises displaying at least a portion of an entity in a slot in the electronic program guide designated with the highest priority.
[0079]
[0088] In some embodiments, displaying at least a portion of an entity in an electronic program guide comprises displaying at least a portion of the entity within a time range specified in the electronic program guide for an entity that is currently live.
[0080]
[0089] In some embodiments, displaying at least a portion of an entity in an electronic program guide comprises displaying additional entities for channels in at least a portion of the entity during a future time range in the electronic program guide.
[0081]
[0090] system
[0082]
[0091] The features and embodiments disclosed herein may be implemented with a video streaming system 900 communicating with multiple client devices over one or more communication networks, as shown in Figure 9. Embodiments of the video streaming system 900 are described solely to provide examples of applications enabling the distribution and delivery of content prepared in accordance with this disclosure. It should be recognized that this technology is not limited to streaming video applications and may be adapted to other applications and distribution mechanisms.
[0083]
[0092] In one embodiment, a media program provider may include a library of media programs. For example, media programs may be aggregated and delivered through a site (e.g., a website), an application, or a browser. Users can access the media program provider's site or application and request media programs. Users may be limited to requesting only media programs provided by the media program provider.
[0084]
[0093] In system 900, video data may be obtained from one or more sources, for example, from video source 910, for use as input to video content server 902. Input video data may consist of raw or edited frame-based video data in any suitable digital format, e.g., MPEG (Moving Pictures Experts Group)-1, MPEG-2, MPEG-4, VC-1, H.264 / AVC (Advanced Video Coding), HEVC (High Efficiency Video Coding), or other formats. Alternatively, video may be provided in a non-digital format and converted to a digital format using a scanner and / or transcoder. Input video data may consist of various types of video clips or programs, e.g., television episodes, movies, and other content produced as primary content of consumer interest. Video data may also include audio, or only audio may be used.
[0085]
[0094] The video streaming system 900 may include one or more computer servers or modules 902, 904, and / or 907 distributed across one or more computers. Each server 902, 904, 907 may include or be operably coupled to one or more data stores 909, such as databases, indexes, files, or other data structures. The video content server 902 may access data stores (not shown) of various video segments. The video content server 902 may supply video segments as directed by a user interface controller communicating with client devices. As used herein, a video segment refers to a fixed portion of frame-based video data, such as a television episode, a movie, a recorded live performance, or other video content, which may be used in a streaming video session for viewing.
[0086]
[0095] In some embodiments, the video ad server 904 may access a data store of relatively short videos (e.g., 10-second, 30-second, or 60-second video ads) configured as advertisements for specific advertisers or messages. The advertisements may be provided on behalf of advertisers in exchange for some form of payment, or they may contain promotional messages, public service messages, or any other information for the system 900. The video ad server 904 may supply video ad segments as directed by a user interface controller (not shown).
[0087]
[0096] The video streaming system 900 may further include integration and streaming components 907 that integrate video content and video advertisements into streaming video segments. For example, the streaming component 907 may be a content server or a streaming media server. A controller (not shown) may determine the selection or configuration of advertisements in the streaming video based on any appropriate algorithm or process. The video streaming system 900 may include other modules or units not shown in Figure 9, such as a management server, a trading server, network infrastructure, an ad selection engine, etc.
[0088]
[0097] The video streaming system 900 may be connected to a data communication network 912. The data communication network 912 may comprise a local area network (LAN), a wide area network (WAN), such as the Internet, a telephone network, a wireless cellular telecommunications network (WCS) 914, or any combination thereof or similar networks.
[0089]
[0098] One or more client devices 920 may communicate with the video streaming system 900 via a data communication network 912, a wireless cellular telecommunications network 914, and / or another network. Such client devices may include, for example, one or more laptop computers 920-1, desktop computers 920-2, "smart" mobile phones 920-3, tablet devices 920-4, network-enabled televisions 920-5, or a combination thereof, via a router 918 for the LAN, a base station 917 for the wireless cellular telecommunications network 914, or some other connection. During operation, such client devices 920 may send and receive data or commands to the system 900 in response to user input received from a user input device or other input. In response, the system 900 may supply video segments and metadata from the data store 909 to the client device 920 in response to the selection of media programs. The client device 920 may output video content from a streaming video segment in a media player using a display screen, projector, or other video output device, and may receive user input for interacting with the video content.
[0090]
[0099] The distribution of audio-video data can be carried out from a streaming component 907 to a remote client device through computer networks, telecommunications networks, and combinations of such networks, using various methods, such as streaming. In streaming, the content server continuously streams audio-video data to a media player component that operates at least partially on the client device, and the media player component can play the audio-video data as it receives the streaming data from the server. Although streaming has been discussed, other delivery methods may be used. The media player component may begin playing the video data immediately after receiving the first part of the data from the content provider. Conventional streaming techniques use a single provider to deliver a stream of data to a set of end users. High bandwidth and processing power may be required to deliver a single stream to a large number of viewers, and the bandwidth required of the provider may increase as the number of end users increases.
[0091]
[0100] Streaming media can be delivered on demand or live. Streaming allows for instant playback at any point in a file. End users can skip media files to begin playback or change playback to any point in the media file. Therefore, end users do not have to wait for files to be downloaded gradually. Typically, streaming media is delivered via dedicated devices that accept requests for video files from a small number of dedicated servers with high bandwidth capabilities and deliver only the amount of data necessary to play the video, at the speed required for playback, along with information about the format, bandwidth, and structure of those files. The streaming media server may also consider the transmission bandwidth and capabilities of the media player on the destination client. The streaming component 907 can communicate with the client device 920 using control messages and data messages to adapt to changing network conditions as the video is played. These control messages may include commands to enable control functions such as fast forward, rewind, pause, or seek to a specific part of the file on the client.
[0092]
[0101] The streaming component 907 transmits video data only when necessary and at the required speed, thus maintaining precise control over the number of streams supplied. Viewers would not be able to watch high-data-rate video through a lower-data-rate transmission medium. However, the streaming media server allows (1) users to have random access to video files, (2) to monitor who is watching which video programs and for how long they are being watched, (3) to use transmission bandwidth more efficiently because only the amount of data required to support the viewing experience is transmitted, and (4) video files are not stored on the viewer's computer and are discarded by the media player, thus allowing for more control over the content.
[0093]
[0102] Streaming component 907 can use TCP-based protocols such as HTTP and RTMP (Real Time Messaging Protocol). Streaming component 907 can also deliver live webcasts and perform multicast, allowing more than one client to tune into a single stream, thus saving bandwidth. Streaming media players may not rely on buffering the entire video to provide random access to any point in a media program. Instead, this is achieved using control messages sent from the media player to the streaming media server. Other protocols used for streaming are HTTP (Hypertext Transfer Protocol) Live Streaming (HLS) or DASH (Dynamic Adaptive Streaming over HTTP). HLS and DASH protocols typically deliver video over HTTP via a playlist of small segments made available at various bitrates from one or more content delivery networks (CDNs). This allows the media player to switch both bitrate and content source on a segment-by-segment basis. Switching helps compensate for fluctuations in network bandwidth and infrastructure failures that may occur during video playback.
[0094]
[0103] The distribution of video content via streaming can be achieved under various models. In one model, users pay for viewing video programs, for example, by paying a fee for access to a media program library or a limited portion of a media program, or by using a pay-per-view service. In another model, widely adopted by television broadcasting shortly after its inception, sponsors pay for the presentation of media programs in exchange for the right to display advertisements during or adjacent to the presentation of the program. In some models, advertisements are inserted at predetermined times within the video program, which may be called "ad slots" or "ad breaks." With streaming video, media players may be configured so that client devices cannot play the video without playing a predetermined advertisement during a designated ad slot.
[0095]
[0104] Referring to Figure 10, an illustrative diagram of a device 1000 for viewing video content and advertisements is shown. In a selected embodiment, the device 1000 may include a processor (CPU) 1002 operably coupled to a processor memory 1004, the processor memory 1004 holding functional modules binary coded for execution by the processor 1002. Such functional modules may include an operating system 1006 for handling system functions such as input / output and memory access, a browser 1008 for displaying web pages, and a media player 1010 for playing videos. The memory 1004 may hold additional modules not shown in Figure 10, for example, modules for performing other operations described elsewhere in this specification.
[0096]
[0105] Bus 1014 or other communication components may support the communication of information within the device 1000. Processor 1002 may be a specialized or dedicated microprocessor configured or operable to perform a particular task in accordance with the features and aspects disclosed herein by executing machine-readable software code that defines the particular task. Processor memory 1004 (e.g., random access memory (RAM) or other dynamic storage device) may be connected to bus 1014 or directly to processor 1002 and may store information and instructions executed by processor 1002. Memory 1004 may also store temporary variables or other intermediate information during the execution of such instructions.
[0097]
[0106] The computer-readable medium in the storage device 1024 is connected to the bus 1014 and may store static information and instructions for the processor 1002. For example, the storage device (CRM) 1024 may store modules 1006, 1008, 1010, and 1012 when the device 1000 is powered off, and when the device 1000 is powered on, the modules may be loaded from there into the processor memory 1004. The storage device 1024 may include a non-temporary computer-readable storage medium that holds information, instructions, or any combination thereof, for example, instructions that, when executed by the processor 1002, configure or enable the device 1000 to perform one or more operations in the manner described herein.
[0098]
[0107] The communication interface 1016 may also be connected to the bus 1014. The communication interface 1016 may optionally provide or support bidirectional data communication between the device 1000 and one or more external devices, such as a streaming system 900, via a router / modem 1026 and a wired or wireless connection. Alternatively, or in addition, the device 1000 may include a transceiver 1018 connected to an antenna 1029, through which the device 1000 may wirelessly communicate with a base station for a wireless communication system or with the router / modem 1026. Alternatively, the device 1000 may communicate with the video streaming system 900 via a local area network, a virtual private network, or other network. Another alternative is that the device 1000 may be incorporated as a module or component of the system 900 and communicate with other components via the bus 1014 or by some other modality.
[0099]
[0108] The device 1000 may be connected to the display unit 1028 (for example, via the bus 1014 and the graphics processing unit 1020). The display 1028 may include any suitable configuration for displaying information to the operator of the device 1000. For example, the display 1028 may include or utilize a liquid crystal display (LCD), a touchscreen LCD (e.g., a capacitive display), a light-emitting diode (LED) display, a projector, or other display device for presenting information to the user of the device 1000 in a visual display.
[0100]
[0109] One or more input devices 1030 (e.g., an alphanumeric keyboard, microphone, keypad, remote control, game controller, camera, or camera array) may be connected to the bus 1014 via the user input port 1022 to communicate information and commands to the device 1000. In a selected embodiment, the input devices 1030 may provide or support control over cursor positioning. Such cursor control devices, also called pointing devices, may be configured as a mouse, trackball, trackpad, touchscreen, cursor directional keys, or other device for receiving or tracking physical movement and converting that movement into electrical signals indicating cursor movement. The cursor control device may be incorporated into the display unit 1028, for example, using a touch-sensitive screen. The cursor control device may communicate directional information and command selections to the processor 1002 and control cursor movement on the display 1028. The cursor control device may have two or more degrees of freedom, for example, allowing the device to specify the cursor position in a plane or three-dimensional space.
[0101]
[0110] In this description and throughout the following claims, “a,” “an,” and “the” include multiple references unless the context explicitly indicates otherwise. Furthermore, in this description and throughout the following claims, the meaning of “in” includes “in” and “on” unless the context explicitly indicates otherwise.
[0102]
[0111] The above description illustrates various embodiments, along with examples of how some aspects of the embodiments may be implemented. The above examples and embodiments should not be considered as the only embodiments, but are presented to illustrate the flexibility and advantages of some embodiments as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations, and equivalents may be used without departing from the scope of the invention as defined by the claims. The following is a direct reproduction of the claims as originally filed. [C1] It is a method, The computing device receives a list of ranked entities for video playback of a first interface of a first layout, wherein the list of ranked entities is ranked based on personalized information about the user account. The computing device uses the ranked list of entities to determine the ordering of entities in the slots of the electronic program guide, wherein the slots of the electronic program guide display the entities in a second layout based on the time dimension. The computing device outputs information for displaying at least a portion of the entities in the electronic program guide based on the ordering of the entities. A method that includes [a certain feature]. [C2] To generate a list of ranked entities based on a predictive model that ranks entities based on the personalized information. The method according to C1, further comprising the features described above. [C3] Generating the aforementioned ranked list of entities is To determine which entities are currently live, Ranking the entities that are live in the aforementioned list of ranked entities A method of C1 comprising: [C4] The aforementioned list of ranked entities is determined from the linear schedule of live television programs, as described in C1. [C5] The first interface includes entities in the list of ranked entities which are live from a linear schedule of live television programs, The first interface described above includes other entities that are available on demand. The method described in C1. [C6] The first interface of the first layout is displayed. An input for displaying the aforementioned electronic program guide is received, The ranked list of entities used to display entities in the first interface is used to determine the ordering of the entities in the electronic program guide. The method described in C1. [C7] Using the list of ranked entities to determine the ordering of the entities in the electronic program guide is, Determining the channel associated with an entity in the aforementioned list of ranked entities, Moving the channel to the corresponding priority slot in the electronic program guide based on the priority of the entity in the list of ranked entities. A method of C1 comprising: [C8] Using the list of ranked entities to determine the ordering of the entities in the electronic program guide is, Determining additional entities for the channel associated with the entity in the list of ranked entities, Adding the additional entity to the corresponding priority slot in the electronic program guide A method of C7 comprising the same. [C9] Using the list of ranked entities to determine the ordering of the entities in the electronic program guide is, Determining the channel associated with each entity in the aforementioned list of ranked entities, Insert each channel into the corresponding priority slot in the electronic program guide based on the priority of the entity in the list of ranked entities. A method of C1 comprising: [C10] Using the list of ranked entities to determine the ordering of the entities in the electronic program guide is, The method of C1, comprising inserting the at least portion of the entity into a slot in the electronic program guide designated with the highest priority. [C11] Using the list of ranked entities to determine the ordering of the entities in the electronic program guide is, The method of C1, comprising inserting the at least portion of the entity into a time range in the electronic program guide designated for an entity that is currently live. [C12] Using the list of ranked entities to determine the ordering of the entities in the electronic program guide is, Determining additional entities for channels in at least a portion of the entity during a future time range, Inserting the additional entities into the electronic program guide during the aforementioned future time range A method for C11 comprising the following: [C13] When executed, Receiving a list of ranked entities for video playback of a first interface in a first layout, wherein the list of ranked entities is ranked based on personalized information about the user account, and using the list of ranked entities to determine the ordering of entities in a slot of an electronic program guide, wherein the slot of the electronic program guide displays the entities in a second layout based on the time dimension. Based on the ordering of the entities, information is output in the electronic program guide to display at least a portion of the entities. A non-temporary computer-readable storage medium that contains instructions for controlling a computer system to enable it to perform a certain action. [C14] It is a method, A computing device displays a first interface of a first layout, wherein the first interface includes a list of ranked entities that are currently live, and the entities in the list of ranked entities are ordered according to priority. The computing device receives input for displaying an electronic program guide, and the electronic program guide displays entities in a second layout based on the time dimension. The computing device displays in the electronic program guide at least a portion of the entities in the list of ranked entities, wherein the at least portion of the entities are ordered based on the priority of the list of ranked entities. A method that includes [a certain feature]. [C15] The method of C14, wherein displaying at least a portion of the entity in the electronic program guide is further comprising moving the channel associated with the entity in the list of ranked entities to the corresponding priority slot in the electronic program guide based on the priority of the entity in the list of ranked entities. [C16] The method of C15, wherein displaying at least a portion of the entity in the electronic program guide comprises displaying additional entities for the channel associated with the entity in the list of ranked entities in the corresponding priority slot in the electronic program guide. [C17] The method of C14, wherein displaying at least a portion of the entities in the electronic program guide is further comprising displaying each channel associated with each entity in the list of ranked entities in the corresponding priority slot in the electronic program guide based on the priority of each entity in the list of ranked entities. [C18] The method of C14, wherein displaying the at least portion of the entity in the electronic program guide comprises displaying the at least portion of the entity in a slot in the electronic program guide designated with the highest priority. [C19] The method of C14, wherein displaying the at least portion of the entity in the electronic program guide comprises displaying the at least portion of the entity within a time range in the electronic program guide designated for an entity that is currently live. [C20] The method of C19, wherein displaying the at least portion of the entity in the electronic program guide comprises displaying additional entities for channels in the at least portion of the entity during a future time range in the electronic program guide.
Claims
1. It is a method, The computing device uses a first list of ranked entities to determine the first ordering of entities in the slots of the electronic program guide, The computing device outputs information for displaying at least a portion of the first ordering of entities in the slots of the electronic program guide, The computing device determines whether the electronic program guide should be refreshed, When it is determined that the refresh should be performed, if a second list of ranked entities is available, The computing device uses the second list of ranked entities to determine a second ordering of entities in the slots of the electronic program guide, The computing device outputs information for changing the first ordering of entities to display at least a portion of the second ordering of entities in the slots of the electronic program guide in order to update the electronic program guide for the refresh, When it is determined that the refresh should be performed, if the second list of ranked entities is not available, To remove entities from the first list of ranked entities that are currently expired, A method that includes [a certain feature].
2. Determining the refresh of the electronic program guide means Monitoring the refresh status of the electronic program guide to indicate when the refresh should be performed. The method according to claim 1, comprising:
3. Determining the refresh of the electronic program guide means Monitoring the refresh rate for the aforementioned electronic program guide, The refresh rate time interval is used to determine the refresh rate of the electronic program guide. The method according to claim 1, comprising:
4. Determining the refresh of the electronic program guide means The refresh is determined when the second list of ranked entities is received. The method according to claim 1, comprising:
5. Determining the refresh of the electronic program guide means In order to perform the refresh of the electronic program guide, wait for a certain amount of time since the last refresh. The method according to claim 1, comprising:
6. The method according to claim 1, wherein an entity in the first list of ranked entities is expired with respect to the present time if the entity in the first list terminated before the present time.
7. The method according to claim 1, further comprising outputting information for displaying the first ordering of entities without the removed entities in the slot of the electronic program guide.
8. Outputting information for changing the first ordering of entities to display at least the portion of the second ordering of entities in the slot of the electronic program guide is: Transitioning entities displayed in the aforementioned first ordering of entities to the aforementioned second ordering of entities in the slot of the electronic program guide. The method according to claim 1, comprising:
9. The method according to claim 1, wherein the refresh of the electronic program guide is determined when the second list of ranked entities is received and the time has come.
10. The first list of ranked entities and the second list of ranked entities are determined for interfaces other than the electronic program guide. The interface displays entities not included in the electronic program guide. The method according to claim 1.
11. The method according to claim 10, wherein the interface displays entities that are available for viewing at any time.
12. The first list of ranked entities and the second list of ranked entities include the same entities, The second ordering of entities in a slot removes entities from the second list of ranked entities that are expired relative to the present time. The method according to claim 1.
13. The first list of ranked entities is ranked based on personalized information about user accounts. The second list of ranked entities is ranked based on personalized information about the user account. The method according to claim 1.
14. When executed, Using a first list of ranked entities to determine the first ordering of entities in the slots of the electronic program guide, Outputting information for displaying at least a portion of the first ordering of entities in the slot of the electronic program guide, To determine whether the aforementioned electronic program guide should be refreshed, When it is determined that the refresh should be performed, if a second list of ranked entities is available, Using the aforementioned second list of ranked entities to determine a second ordering of entities in the slots of the electronic program guide, To update the electronic program guide for the refresh, information is output to change the first ordering of entities so that at least a portion of the second ordering of entities in the slots of the electronic program guide is displayed. When it is determined that the refresh should be performed, if the second list of ranked entities is not available, To remove entities from the first list of ranked entities that are currently expired, A non-temporary computer-readable storage medium that contains instructions for controlling a computer system to enable it to perform a certain action.