Personalized ranking of entities in electronic program guides for live television
By using entity rankings and ranking entity lists in the electronic program guide system to re-arrange the channel order, the problem of insufficient utilization of user preference information in the prior art is solved, and the smoothness of user interface switching and the convenience of content discovery is improved.
Patent Information
- Application Number
- CN202180057918.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-10-09
- Filing Date
- 2021-10-05
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2041-10-05
AI Technical Summary
The existing electronic program guide system cannot provide personalized channel sorting, resulting in inconsistent experiences when switching interfaces and ineffective use of user preference information.
Rank entities based on user personalized information through entity rankings, and re-arrange the layout of electronic program guides using the ranking entity list to ensure that the channel order is consistent with user preferences.
This enables smooth switching between user interfaces, improves user experience, and increases the convenience and viewing frequency of users finding content of interest.
Smart Images

Figure CN116171578B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This disclosure claims priority to U.S. non-provisional application No. 17 / 067,511, filed on October 9, 2020, entitled “Personalized Ranking of Entities in an Electronic Program Guide for Live Television,” the entire contents of which are incorporated herein by reference for all purposes. [Background Technology]
[0003] An electronic program guide (EPG) is a menu-based system that outputs information describing content in a time-based, linear format. For example, an EPG may display scheduling information for current and upcoming content, such as television programs, radio programs, and other media.
[0004] In one format of an electronic program guide, the layout may include multiple rows, each row associated with a channel provided by a video distribution service. Each channel may list content available for that channel at the current time and at an upcoming time. For example, for channel 1, the currently available program is listed in one row, while another program may be listed in the same row at a time after the current program ends. Typically, channels are organized sequentially, for example based on channel identifiers. For example, channel 1 may be displayed in the first row of the guide, channel 2 in the next row, and so on. The channel organization in an electronic program guide may be fixed for all users. However, some users may prefer different channels. For example, one user may prefer channel 1 and not need to scroll through the electronic program guide to view the content on channel 1. However, the electronic program guide may not display all channels on the interface at the same time. Thus, another user may prefer channel 20 and may need to scroll to channel 20 to view the content on channel 20 whenever the electronic program guide is opened.
Brief Description of the Drawings
[0005] With respect to the following discussion and drawings, it is emphasized that the details shown represent embodiments for illustrative discussion and are presented to provide a description of the principles and conceptual aspects of the present disclosure. In this regard, no attempt is made to show implementation details beyond those required for a basic understanding of the present disclosure. The following discussion, taken in conjunction with the accompanying drawings, will provide those skilled in the art with a clear understanding of how to practice the embodiments based on the present disclosure. Similar or identical reference numerals may be used to identify or otherwise refer to similar or identical elements in the various drawings and supporting descriptions. In the drawings:
[0006] Figure 1 A simplified system for generating an electronic program guide according to some implementations is described.
[0007] Figure 2 Depicted are examples of layouts for a home interface according to some implementations.
[0008] Figure 3 An example of an electronic program guide according to some implementations is depicted.
[0009] Figure 4 Another example of a layout of an electronic program guide in accordance with some implementations is depicted.
[0010] Figure 5 Depicted is a simplified flow diagram of a method for generating a list of ranked entities according to some implementations.
[0011] Figure 6 Depicted is a simplified flow chart of a method for generating an entity of an electronic program guide according to some embodiments.
[0012] Figure 7 Depicted is a simplified flow chart of a method for generating an electronic program guide according to some implementations.
[0013] Figure 8 Depicted is a simplified flow diagram of a method for refreshing an electronic program guide according to some implementations.
[0014] Figure 9 A video streaming system that communicates with multiple client devices via one or more communication networks is depicted according to one embodiment.
[0015] Figure 10 A schematic diagram depicting an apparatus for viewing video content and advertisements. [Specific implementation method]
[0016] Described herein is technology for an electronic program guide system. In the following description, for purposes of explanation, numerous examples and specific details are listed to provide a thorough understanding of some embodiments. Some implementations, as defined in the claims, may include some or all of the features of these examples, alone or in combination with other features described below, and may further include variations and equivalents of the features and concepts described herein.
[0017] A video delivery system can display an interface using different layouts. For example, a first interface layout may list entities provided by the video delivery system, such as programs, movies, events, etc. These entities can be selected for playback at the current time. Additionally, these entities can be grouped into groups, which may be referred to as collections. A collection may list entities that are currently live, which may mean that these entities are provided on a linear schedule of programming (such as live television programs) at the current time. This collection may be called a live now collection, but may also be called by other names. Some entities in the live now collection may only be viewable while the program is live. That is, when a live program ends, instances of that program may not be viewable as live programs at the current time on the channel. Other collections may include video on demand programs that can be viewed at any time, such as collections of movies, sports, saved programs, etc.
[0018] An entity ranker can rank entities of the live now set for a user. For example, the entity ranker can use personalized information for the user to rank entities. In this way, different users can receive different suggestions for entities of the live now set. This may increase the relevance of the entities included in the live now set to the user, which may increase the selection of one of the entities in the live now set to watch. The entity ranker can rank entities based on which entities are currently live in the linear schedule of the program. The ranked entities can also include other entities, such as entities for promotional content that may not be live at the current time, but may be live in an upcoming time period.
[0019] Another way to display the interface may be using an electronic program guide (EPG) layout. The EPG layout may include different formats, which may be based on using a time-based approach to display entities. For example, the EPG may display a row of channels, each channel displaying related entities currently being provided by the corresponding channel from the current time to a future time. As discussed in the background, when the EPG orders channels sequentially, the EPG may not benefit from the personalization of the channel ordering. In some cases, the first interface may be the home interface that is first presented to the user account when the user interface is first displayed upon initial login. Alternatively, the home interface may be the interface that the user account uses more frequently. If different methods of ordering entities are used between the live now collection and the EPG, a seamless experience may not be provided when the user account switches between the interfaces. Accordingly, the video distribution system may format the EPG using a list of ranked entities for the live now collection.
[0020] In some embodiments, the video distribution system can use the list of ranked entities to rearrange the layout of an electronic program guide (EPG). As discussed above, the list of ranked entities can rank entities that are live at the current time. The video delivery system can then determine the layout of the EPG by converting the time-based layout based on the ranked list of entities into the layout of the EPG. For example, if a channel layout is being used, the video distribution system determines the channels associated with the ranked entities. The video distribution system can then rearrange the order of the channels in the EPG to resemble the order of the channels associated with the ranked entities. For example, if the top-ranked entity in the Live Now collection is associated with channel 3, the video distribution system can move channel 3 to the highest priority position in the EPG. If the second-ranked entity is associated with channel 10, the video distribution system can move channel 10 to the second-highest priority position in the EPG. In this way, the video distribution system rearranges the order of the EPG layout based on the ranking of the entities in the Live Now collection. When the user account switches between the first interface and the EPG, the EPG provides a consistent view of the ranked list of entities between the Live Now collection and the EPG interface. Other layouts of electronic program guides are also contemplated and will be described below.
[0021] System Overview
[0022] Figure 1A simplified system 100 for generating an electronic program guide according to some embodiments is depicted. System 100 includes a server system 102 and a client 104. Although a single server system 102 and a single client 104 are depicted, it is understood that the functionality described with respect to server system 102 can be distributed across multiple computing devices. Furthermore, server system 102 can communicate with multiple clients 104.
[0023] The server system 102 includes a video distribution system 106 that can distribute videos to the client 104, which can be displayed on a user interface 112 via a media player (not shown). In some implementations, the video distribution system 106 can include one or more servers that can be implemented using a content delivery network (CDN).
[0024] Client 104 may comprise a computing device capable of playing videos, such as a mobile device, smartphone, tablet, living room device, television, etc. Client 104 includes an interface application 110 that generates an interface in user interface 112. Interface application 110 may allow a user to play videos from video distribution system 106 or browse a library of videos provided by a video delivery service. User interface 112 may display entities that may represent any form of content. For example, an entity may be associated with a program, such as a television program, a movie, promotional content, a live sporting event, an episode of a program, an advertisement, or other content. The entity may be an icon, text, or other information describing each video.
[0025] As will be discussed in detail below, interface application 110 may display a first interface in a first layout and a second interface in a second layout. A layout may be a feature-based organization of entities. The first interface may be an interface that displays entities that are selectable for playback at the current time. For example, this interface may be referred to as a home interface, which may be the first interface presented to a user upon launching interface application 110, or the interface presented to a user when in the home position of the interface. Although described as a home interface, the first interface need not be a home interface. In some embodiments 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, while on-demand entities may be on-demand. Live television may be from linear programming that provides entities at set times, where the user can only view the program at the set time. In contrast, entities provided on-demand can be viewed at any time upon request.
[0026] The second interface can be an electronic program guide that displays entities based on a time dimension. For example, the electronic program guide may include entities from a linear schedule of programs, which may be arranged by channel. In some embodiments, the electronic program guide does not include on-demand entities. The second interface can arrange entities based on a time range, which includes the current time and other time ranges, such as the current time period (e.g., 9:00 a.m. to 9:30 a.m.), a future time period (e.g., 9:30 a.m. to 10:00 a.m.), or a past time period (e.g., 8:30 a.m. to 9:00 a.m.). The second interface lists entities that are live during these time periods. In some embodiments, these entities can be arranged in rows associated with channels.
[0027] The interface engine 108 can send interface commands to the interface application 110. Although described as being performed by the interface engine 108, in some cases, the functions related to the interface engine 108 can be performed by the interface application 110 in the client 104. The interface commands can provide commands to the interface application 110 for generating the user interface 112. The interface commands can be sent in response to input received from the user. For example, the user can navigate to a different interface or perform other actions on the interface. In response to these interactions, the interface engine 108 can generate changes to the interface. For example, input can be received from the user to display the electronic program guide 300. The interface engine 108 receives the input and provides the interface command to the interface application 110 to display the electronic program guide with specific content in the layout. Similarly, the interface engine 108 can provide the interface command to the interface application 110 to display the first interface with specific content in the layout.
[0028] As described above, the user interface 112 can be displayed in different layouts. The main interface generator 114 generates the main interface. The main interface generator 114 can use a ranker 118 to rank entities based on personalized information of the user account using the client 104. The user account can be associated with historical behavior, such as a viewing history of entities previously viewed by the user account. Other personalized information can include entities that the user account has indicated interest in, such as adding to favorites or indicating that the user has liked the entity; preferences from the user account, such as the user's favorite sports team or favorite channel; and other personalized characteristics, such as the user's age, gender, client 104 location, hour of the day, day of the week, last watched episode, last watched series, last watched movie, and so on. The ranker 118 can output a list of ranked entities for a collection of live events. These entities can be related to content that is live at the current time. For example, if the current time is 9:00 AM, the ranked list of entities would be entities that can be viewed live at 9:00 AM. The ranker 118 can rank entities based on the personalized information of the user account.
[0029] The main interface generator 114 receives the ranked list of entities and can generate a layout for the live streaming collection. For example, the main interface generator 114 orders the entities in the live streaming collection based on the ranked list of entities. The live streaming collection can have prioritized slots, and the main interface generator 114 adds entities from the ranked list of entities to the prioritized slots. For example, the highest ranked entity is added to the first slot (e.g., highest priority) in the live streaming collection, the second highest priority slot is added to the second highest priority slot, and so on. The user interface 112 can also include other collections, and the main interface generator 114 can generate other entity lists based on different processes to be displayed in the other collections. The interface engine 108 then communicates the entities and the layout to the interface application 110. For example, the interface engine 108 sends identification information of the entity and the position where the entity should be displayed in the layout of the main interface.
[0030] The guide generator 116 can generate an electronic program guide. As described in the background, the electronic program guide may include channels arranged in a set order. In order to provide the electronic program guide with personalization similar to that displayed in the collection of live shows now, the guide generator 116 can receive a list of ranked entities from the ranker 118 and use the list of ranked entities to dynamically change the layout of the electronic program guide based on the list of ranked entities. Figure 3 and Figure 4 Different methods of changing the layout of an electronic program guide based on a ranked entity list are described in more detail.
[0031] Main interface
[0032] Figure 2 An example of a home interface according to some embodiments is depicted. The home interface can include different categories: Category 1 204-1, Category 2 204-2, Category 3 204-3, and Category 4 204-4, although other categories are contemplated. Categories can group entities based on characteristics. For example, Category 1 204-1 can be the home interface; Category 2 204-2 can be videos added by the user; Category 3 204-3 can be movies, and so on.
[0033] In the main interface, different collections 206-1 through 206-N are displayed. Collections 206 can display entities 202 using selectors 208. When selected, user interface 112 can display content related to each entity 202. Collections 202 can include more entities 202 than can be displayed on the screen. Consequently, the user may have to scroll to view entities 202 that are off-screen. In some embodiments, user interface 112 displays entities 202 based on priority; for example, each column in collection 206 can have an associated priority, with entities 202 being placed in the corresponding column. Priority is used to display entities determined to be more relevant to the user in higher-priority columns, making them more likely to be viewed by the user. In some embodiments, the first column has the highest priority and can be positioned differently within the collection based on the layout. For example, when collections 206 are displayed horizontally, the first column can be the leftmost column on user interface 112, or when collections 206 are displayed vertically, the first column can be the topmost column.
[0034] One collection may be a collection of live streams 206-1. As discussed above, the live stream collection 206-1 may include entities 202 that are currently being live streamed at the current time. For example, the live stream collection 206-1 may include entities 202-1 1 through 202-4 4. The live stream collection 206-1 may display entities 202 based on a list of ranked entities received from the ranker 118. For example, the ranker 118 may list entity 202-1 as the highest-ranked entity for the user account, entity 202-2 as the second-highest-ranked entity in the list, and so on. For example, the first column may include the highest-ranked entity 202-1, the second column may include the second-highest-ranked entity 202-2, and so on. Accordingly, the live stream collection 206-1 displays the entities that are currently being live streamed by the user account, displayed in a personalized order. By prioritizing entities 202 that are determined to be more relevant to the user account, the user account may be more likely to find and select the entity 202 for playback.
[0035] Electronic Program Guide
[0036] Figure 3 A first layout of the electronic program guide 300 is depicted. Figure 4 A second layout of the electronic program guide 300 is described, but other formats are also contemplated. Figure 3 An example of a layout of an electronic program guide 300 according to some embodiments is depicted. The electronic program guide 300 can arrange entities 202 in the guide based on a time dimension. For example, the entities can be arranged based on time ranges that start at the current time and progress forward. The time ranges can also cover time before the current time.
[0037] Different categories 304 may be used to display different layouts of the electronic program guide 300. For example, four different layouts may be associated with category 1 304-1 through category 4 304-4. The selector 208 may be used to select different layouts of the electronic program guide 300. For example, Figure 3 The layout of category 1 304-1 is shown in FIG. Figure 4 The layout of category 2 304 - 2 is shown in FIG.
[0038] The electronic program guide 300 can include different slots associated with different priorities. For example, the slots can be different rows displaying entities 202. Rows can be containers or areas of the user interface 112 that are associated with groupings of entities 202. In some embodiments, each row can be associated with a channel 302, which can be associated with a grouping of live linear programming. For example, a channel can be associated with a network that provides a specific lineup of live programming for that channel. Channels can be identified by identifiers, which can be numbers, names, etc.
[0039] The electronic program guide 300 also includes a timeline 308 that outlines the time dimension for organizing the layout of the electronic program guide 300. For example, the timeline 308 can include different time ranges, which can include the current time and a future time range. As shown in the figure, the current time between the time range 9:00 AM to 9:30 AM is displayed at 306. The timeline 308 also shows the future time ranges from 9:30 AM to 10:00 AM, 10:00 AM to 10:30 AM, etc.
[0040] The electronic program guide 300 arranges the channels in rows based on the priority of the ranked entity list. For example, entity 1 202-1 is the first ranked entity in the ranked entity list. The interface application 110 determines that entity 1 202-1 is related to channel 2 302-2. The guide generator 116 then lists channel 2 302-2 in the first row, with the highest priority, to be displayed in the electronic program guide 300. Entity 2 202-2 is the second ranked entity in the ranked entity list, and the guide generator 116 determines the related channel of entity 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 other channels related to each entity 202 in the ranked entity list. For example, channel number 10 302 - 10 is associated with entity number 3 202 - 3 and channel number 5 302 - 5 is associated with entity number 4 202 - 4 in the ranked entity list, respectively, and the corresponding channels appear in the next highest priority row of the electronic program guide 300 .
[0041] Accordingly, the guide generator 116 uses the list of ranked entities to determine the respective channels and accordingly changes the layout of the electronic program guide 300 to change the channel layout sequence. Channel 2 302-2 plays the live broadcast of the highest-ranked entity in entity 1 202-1 at the current time, and this channel is displayed in the highest priority row of the electronic program guide 300. When the electronic program guide 300 is displayed, the user's account views the channels that include entity 1 202-1, which is ranked first in the first row. Furthermore, the user does not have to scroll to find the channel that is likely to play the entity that the user is most likely to want to watch. This is not only beneficial for focusing on the channels in the first row, but is also important when higher-ranked channels that may be off-screen are moved onto the screen during the initial display of the electronic program guide 300. For example, if sequential numbering of channels were used in the electronic program guide 300, channel 10 302-10 would have appeared off-screen. However, the electronic program guide 300 displays channel 0302-10, number 10, in the third row when first displayed, which makes it more likely that the user account will see the channel that includes the entity 202 that the user account wants to play.
[0042] The use of a ranked entity list arranges the order of channels in rows in the electronic program guide 300 and also aligns the visual display of the entities with the order of channels in rows. Figure 24 , 202-4 . By keeping the order the same, the user experience of the user account is consistent throughout the main interface and the electronic program guide 300 with respect to the order of the ranked entity lists.
[0043] The electronic program guide 300 is time-based, so other entities may be listed with respect to a channel at future times. For example, rather than displaying only entities 202-1 through 202-4, the electronic program guide 300 may display other entities for each channel. For example, channel 2 302-2 may offer entity 202-5 from 9:30 AM to 10:30 AM, and then offer entity 202-6 at 10:30 AM. Channel 1 302-1 may offer entity 202-7 from 9:30 AM to 10:00 AM, and then offer entity 202-8 at 10:00 AM. Channel 10 302-10 may offer entity 202-9 at 10:00 AM, and channel 5 302-5 may offer entity 202-4 for the entire time range displayed in the electronic program guide 300. Entities 202-5 through 202-9 may or may not be listed as entities associated with the user account, but are listed due to the format in which the channels are displayed. These entities 202 may not be displayed in the main interface because they are not currently live.
[0044] Figure 4 Another example of a layout of the electronic program guide 300 according to some implementations is depicted. In some implementations, an input is received selecting category number 2 304 - 2 , which displays a different layout of the electronic program guide 300 . Figure 4The format of the electronic program guide 300 in FIG. 4 can also be based on a time dimension, but entities can be displayed in groups of time ranges. For example, the electronic program guide 300 can display different time ranges at 402-1 through 402-3, such as the ranges from 9:00 AM to 9:30 AM, 9:30 AM to 10:00 AM, and 10:00 AM to 10:30 AM. Within a time range, the electronic program guide 300 displays entities relevant to the respective time range, such as entities that may have started within the time range or entities that may be live within the time range. For example, for the time range from 9:00 AM to 9:30 AM, which includes the current time, entities 202-1 through 202-4 are displayed because these entities 202 started within that time range. The electronic program guide 300 can prioritize entities 202 based on the ranked entity list. For example, entity 202-1 is listed as the first-ranked entity in the first column within the time range, entity 202-2 is listed as the second-ranked entity in the second column within the time range, and so on. This layout also provides a consistent view from the main interface.
[0045] The electronic program guide 300 includes additional time ranges after the current time range. Because the ranked entity list is for currently live entities, entities 202 listed in future time ranges may not be found in the ranked entity list. The electronic program guide 300 can display additional entities in future time ranges. In some embodiments, the electronic program guide 300 displays entities associated with the channels of each entity in the ranked entity list. For example, in the time range of 9:30 AM to 10:00 AM, entity 202-5 No. 5 and entity 202-7 No. 7 are displayed. Entity 202-5 No. 5 is associated with channel 2 302-2 of entity 202-1 No. 1, and entity 202-7 No. 7 is associated with channel 1 302-1 of entity 202-2 No. 2. For the time range of 10:00 AM to 10:30 AM for entity 402-3, entity 202-8 No. 8 associated with channel 2 302-2 and entity 202-9 No. 9 associated with channel 1 302-10 are displayed. Other entities 202 from channels other than those associated with the ranked entity list may also be displayed within the future time range, but entities 202 from channels associated with the ranked entity list do not need to be displayed within the future time range.
[0046] Accordingly, the electronic program guide 300 arranges entities in a time range based on the list of ranked entities.Although channels may not be displayed in rows, the electronic program guide 300 may arrange entities in a future time range based on channels associated with the ranked entity list.
[0047] Entity spawning
[0048] Figure 5A simplified flowchart 500 depicts a method for generating a ranked entity list according to some embodiments. At 502, the interface engine 108 receives input to display a home interface from a user account. Then, at 504, the ranker 118 determines personalized information for the user account, or may automatically display the home interface. This personalized information may include live streaming information about the context associated with the user account and / or client 104, in addition to historical information, such as the user account's viewing history.
[0049] At 506, the ranker 118 generates a list of ranked entities based on the personalized information. For example, the ranker 118 may determine the currently live entity based on the current time. The ranker 118 may then use a predictive network to rank the entities based on the personalized information. For example, the ranker 118 may use a machine learning model that has been trained based on the personalized information of the user account to predict the rank of the entity. Although a machine learning model is described, other methods may also be used to rank the entities, such as a set of rules. The ranker 118 may input features related to the personalized information into the predictive model, and the predictive model may rank the currently live entity based on the features.
[0050] At 508, the main interface generator 114 may select at least a portion of the entities. For example, the main interface generator 114 may limit the number of entities to be displayed in the main interface. In other embodiments, the main interface generator 114 may select all entities in the ranked entity list. At 510, the main interface generator 114 outputs at least a portion of the entities for the live streaming collection.
[0051] At any time, the user account can display the electronic program guide 300. For example, after displaying the main interface, the electronic program guide 300 can be displayed. However, the electronic program guide 300 is not necessarily displayed after the main interface.
[0052] Figure 6 A simplified flowchart 600 depicts a method for generating entities for an electronic program guide 300 according to some embodiments. At 602, the interface engine 108 receives input to display the electronic program guide 300. At 604, the ranker 118 generates a list of ranked entities currently live based on the personalized information of the user account as described above. This list may have already been generated for the current live set, or it may be newly generated when the electronic program guide 300 is displayed. The ranked list of entities may be similar to the list used to generate the main interface. For example, the ranker 118 may output the entities currently live.
[0053] At 606, the guide generator 116 may filter any entities that do not conform to the electronic program guide 300. For example, because the ranker 118 is generating entities for the main interface, the ranker 118 may have ranked entities that do not conform to the electronic program guide 300. In some embodiments, the ranker 118 may include some content that is not currently live, and the guide generator 116 may delete these entities. Different rules can be used to filter entities. For example, some entities that can be deleted include advertisements, trailers, promotions for upcoming videos, etc. In addition, some entities in the ranked entity list may not be playable entities, and these entities may also be deleted. In some embodiments, some entities may be based on marketing campaigns on a channel, which may be marketing content on an upcoming channel. The guide generator 116 may retain the marketing campaigns on the channel to display in the electronic program guide 300 because the program may be displayed in the electronic program guide 300 soon.
[0054] At 608, the guideline generator 116 selects at least a portion of the entity. Figure 7 This selection is described in more detail.
[0055] At 610, the guide generator 116 selects additional entities based on the time information of the guide. For example, the guide generator 116 may select entities from channels related to the portion of entities at a future time. Then, at 612, the guide generator 116 outputs the entities based on the ranking and time information for display in the electronic program guide 300.
[0056] As described above, the electronic program guide 300 can be displayed in different layouts. In a layout using channels displayed in rows, the following process can be used to display the entities 202. Figure 7 A simplified flow chart 700 of a method for generating an electronic program guide 300 according to some embodiments is depicted. At 702, the guide generator 116 determines a channel for each portion of the entities 202 of the electronic program guide 300. At 704, the guide generator 116 sorts the channels of the electronic program guide 300 based on the ranking of the entities 202.
[0057] At 706, the guide generator 116 may determine entities 202 for the categorized channels with respect to the time range in the electronic program guide 300. In some embodiments, the guide generator 116 may query the channel's information to determine the entities 202. The entities 202 may include currently live entities and future entities.
[0058] At 708, the guide generator 116 outputs the channels and entities 202 of the electronic program guide 300 with layout information based on the classification. For example, the layout information may specify a row for each respective channel.
[0059] When Figure 4 When displaying entities 202 in the layout depicted in FIG, the guide generator 116 can determine a time range for the electronic program guide 300. The guide generator 116 inserts a ranked list of entities in the current time range. The guide generator 116 then determines entities 202 for a future time range, for example, by determining entities 202 from channels associated with the ranked list of entities for the future time range.
[0060] Guide refresh
[0061] The electronic program guide 300 is refreshed at a specific time. For example, the electronic program guide 300 can be refreshed at different set time intervals and / or when the ranking of the currently live collection on the main interface is refreshed. Figure 8 A simplified flowchart 800 depicts a method for refreshing an electronic program guide 300 according to some embodiments. At 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 certain intervals, such as every half hour. The refresh rate may remove time ranges from the electronic program guide 300 that are no longer valid at certain 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 embodiments, the electronic program guide 300 may be refreshed when a new ranking is output from the ranker 118. In some embodiments, the guide generator 116 may minimize refreshes to eliminate an intrusive experience with the electronic program guide 300. For example, the electronic program guide 300 may list channels in rows. Dynamically switching the order of these rows while the user is viewing them may be confusing to the user. Therefore, the guide generator 116 may wait a certain amount of time since the last refresh before refreshing the electronic program guide 300.
[0062] At 804, the guideline generator 116 determines whether a guideline refresh should be performed. If not, the process repeats to 802 to continue monitoring the refresh status. If a guideline refresh is determined to be performed, it may be due to an entity being outdated at the current time or a new entity ranking. Additionally, any new marketing updates for the campaign may be outdated and these may be deleted.
[0063] If a guide refresh should be performed, the processes at 806 and 808 may be performed (if applicable). At 806, guideline generator 116 determines whether any entities are out-of-date at 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 the entity 202 is out-of-date and guideline generator 116 removes the entity 202 from the ranked entity list. At 808, guideline generator 116 determines whether a new ranked entity list is available. If a new ranked entity list is available, guideline generator 116 may replace the old ranking with the new ranking.
[0064] At 810, the guide generator 116 updates the electronic program guide 300 based on the determined changes. In some implementations, the guide generator 116 updates the guide using smooth transitions. The transitions can be performed with visual effects that do not interfere with the visual display of the electronic program guide 300.
[0065] Example
[0066] In some embodiments, at 6:30 PM, a program named "Program 1" is ranked at priority 3 in the ranked entity list of the live set. 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.
[0067] At 7:00 PM, Program 1 ends. Then, at 7:10 PM, the set of live broadcasts on the main interface is updated. A new program named "Program 2" is placed in the third priority position of the set of live broadcasts, and Program 2 appears on Channel 2. Then, the electronic program guide 300 is switched to reposition Channel 2 in the third row of the electronic program guide 300.
[0068] in conclusion
[0069] Accordingly, the electronic program guide 300 can prioritize the list of ranked entities based on the live collection. When the user switches between the live collection and the electronic program guide 300, the electronic program guide 300 is configured based on the ranked list of entities used to generate the live collection. This provides a smooth transition between the main interface and the electronic program guide 300. In addition, because entities are ranked in the live collection based on their relevance to the user's account, the electronic program guide 300 can be organized to display entities 202 that are more relevant to the user in a higher priority position, such as at the top of the electronic program guide 300. This can increase the user account's engagement with the electronic program guide 300 and make it easier for the user to find entities 202 that are more relevant to the user. Finding more relevant entities 202 can also increase the user account's engagement by allowing the user account to request more videos to be played.
[0070] Exemplary embodiments
[0071] In some embodiments, a method includes: receiving, by a computing device, a list of ranked entities for video playback in a first interface in a first layout, the list of ranked entities being ranked based on personalized information of a user account; using, by the computing device, the list of ranked entities to determine an ordering of entities in a column of an electronic program guide, wherein the column of the electronic program guide displays the entities in a second layout based on a time dimension; and outputting, by the computing device, information to display at least a portion of the entities in the electronic program guide based on the ordering of the entities.
[0072] In some implementations, the method further includes generating a list of ranked entities based on a predictive model that ranks entities based on the personalized information.
[0073] In some implementations, generating the list of ranked entities includes: determining entities that are live at the current time; and ranking the live entities in the list of ranked entities.
[0074] In some implementations, the ranked entity list is determined from a linear schedule of programming for live television.
[0075] In some implementations, the first interface includes entities in a ranked list of entities that are live from a linear schedule of programming for live television, and the first interface includes other entities that are available on demand.
[0076] In some implementations, a first interface in a first layout is displayed, an input to display an electronic program guide is received, and a ranked entity list for displaying entities in the first interface is used to determine an ordering of entities in the electronic program guide.
[0077] In some embodiments, using a ranked entity list to determine the order of entities in an electronic program guide includes: determining channels associated with entities in the ranked entity list; and moving the channels to corresponding priority columns in the electronic program guide based on the priority of the entities in the ranked entity list.
[0078] In some embodiments, using the ranked entity list to determine an ordering of entities in the electronic program guide includes: determining additional entities for channels associated with entities in the ranked entity list; and adding the additional entities to corresponding priority columns in the electronic program guide.
[0079] In some embodiments, using a ranked entity list to determine the order of entities in an electronic program guide includes: determining a channel associated with each entity in the ranked entity list; and inserting each channel into a corresponding priority column in the electronic program guide based on the priority of the entities in the ranked entity list.
[0080] In some implementations, using the ranked entity list to determine the ordering of entities in the electronic program guide includes inserting at least a portion of the entity into a column designated as having the highest priority in the electronic program guide.
[0081] In some implementations, using the list of ranked entities to determine an ordering of entities in the electronic program guide includes inserting at least a portion of the entity within a time range of the entity designated in the electronic program guide as live at the current time.
[0082] In some implementations, determining an ordering of entities in the electronic program guide using the ranked entity list includes determining additional entities for channels in at least a portion of the entities within a future time range, and inserting the additional entities into the electronic program guide within the future time range.
[0083] In some embodiments, a non-transitory computer-readable storage medium contains instructions that, when executed, control a computer system to: receive a ranked list of entities for video playback of a first interface in a first layout, the ranked list of entities being ranked based on personalized information of a user account; use the list of ranked entities to determine an ordering of entities in a column of an electronic program guide, wherein the column of the electronic program guide displays entities in a second layout based on a time dimension; and output information to display at least a portion of the entities in the electronic program guide based on the ordering of the entities.
[0084] In some embodiments, a method includes: displaying, by a computing device, a first interface in a first layout, wherein the first interface includes a list of ranked entities that are live at a current time, and the entities in the ranked entity list are ordered based on priority; receiving, by the computing device, input for displaying an electronic program guide, wherein the electronic program guide displays the entities in a second layout based on a time dimension; and displaying, by the computing device, at least a portion of the entities in the ranked entity list in the electronic program guide, wherein at least a portion of the entities are ordered based on the priority of the ranked entity list.
[0085] In some embodiments, displaying at least a portion of the entities in the electronic program guide includes: moving channels associated with the entities in the ranked entity list to corresponding priority columns in the electronic program guide based on the priorities of the entities in the ranked entity list.
[0086] In some embodiments, displaying at least a portion of the entity in the electronic program guide includes displaying additional entities for channels related to the entities in the ranked entity list in corresponding priority columns in the electronic program guide.
[0087] In some embodiments, displaying at least a portion of the entities in the electronic program guide includes displaying each channel associated with each entity in the ranked entity list in a corresponding priority column in the electronic program guide based on the priority of each entity in the ranked entity list.
[0088] In some embodiments, displaying at least a portion of the entity in the electronic program guide includes displaying at least a portion of the entity in a column designated as having the highest priority in the electronic program guide.
[0089] In some implementations, displaying at least a portion of the entity in the electronic program guide includes displaying at least a portion of the entity within a time range designated in the electronic program guide as being live at the current time.
[0090] In some embodiments, displaying at least a portion of the entity in the electronic program guide includes displaying additional entities for channels related to the at least a portion of the entity within a future time range in the electronic program guide.
[0091] system
[0092] The features and aspects disclosed herein may be implemented with a video streaming system 900 that communicates with a plurality of client devices via one or more communication networks, such as Figure 9 The description of aspects of the video streaming system 900 is merely intended to provide an example application for enabling the distribution and delivery of content prepared based on the present disclosure. It should be understood that the present technology is not limited to streaming video applications and may be applicable to other applications and distribution mechanisms.
[0093] In one embodiment, a media program provider may include a media program library. For example, media programs may be aggregated and provided through a site (e.g., a website), an application, or a browser. A user may access the website or application of a media program provider and request media programs. The user may be restricted to requesting only media programs provided by the media program provider.
[0094] In system 900, video data may be obtained from one or more sources, such as video source 910, for use as input to video content server 902. The input video data may include raw or edited frame-based video data in any suitable digital format, such as Moving Picture Experts Group (MPEG)-1, MPEG-2, MPEG-4, VC-1, H.264 / Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC), or other formats. In another embodiment, the video may be provided in a non-digital format and converted to a digital format using a scanner and / or transcoder. The input video data may include various types of video clips or programs, such as television series, movies, and other content produced as primary content of interest to consumers. The video data may also include audio, or only audio may be used.
[0095] 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 operatively coupled to one or more data stores 909, such as databases, indexes, files, or other data structures. The video content server 902 may access a data store (not shown) of various video segments. The video content server 902 may provide the video segments as directed by a user interface controller in communication with a client device. As used herein, a video segment refers to a defined portion of frame-based video data, such as may be used in a streaming video session to view a television episode, motion picture, recorded live performance, or other video content.
[0096] In some embodiments, the video ad server 904 can access a data store of relatively short videos (e.g., 10-second, 30-second, or 60-second video ads) configured as advertisements for a particular advertiser or message. The advertisements can be provided to the advertiser in exchange for some payment, or can include promotional information, public service information, or other information for the system 900. The video ad server 904 can provide the video ad clips as directed by a user interface controller (not shown).
[0097] The video streaming system 900 may further include an integration and streaming component 907 for integrating video content and video advertisements into the streaming video segments. For example, the streaming component 907 may be a content server or a streaming server. A controller (not shown) may determine the selection or placement of advertisements in the streaming video based on any suitable algorithm or process. The video streaming system 900 may include Figure 9 Other modules or units not depicted in the example, such as management server, business server, network infrastructure, advertisement selection engine, etc.
[0098] The video streaming system 900 can be connected to a data communication network 912. The data communication network 912 can include a local area network (LAN), a wide area network (WAN) such as the Internet, a telephone network, a wireless cellular telecommunication network (WCS) 914, or some combination of these or similar networks.
[0099] One or more client devices 920 can communicate with the video streaming system 900 via a data communications network 912, a wireless cellular telecommunications network 914, and / or another network. Such client devices can be connected via a router 918 for a local area network, via a base station 917 for the wireless cellular telecommunications network 914, or via some other connection including, 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. In operation, such client devices 920 can send and receive data or instructions to the system 900 in response to user input received from a user input device or other input. In response, the system 900 can provide video clips and metadata responsive to selected media programs from the data store 909 to the client devices 920. The client devices 920 can output video content from the streaming video segments in a media player using a display screen, projector, or other video output device, and receive user input for interacting with the video content.
[0100] The distribution of audio-video data can be achieved from the streaming component 907 to a remote client device using various methods (e.g., streaming) over computer networks, telecommunications networks, and combinations of such networks. In streaming, a content server continuously streams audio-video data to a media player component that operates at least partially on a client device, which can play the audio-video data while receiving the streaming data from the server. Although streaming is discussed, other transmission methods can also be used. The media player component can start playing the video data immediately after receiving the initial portion of the data from the content provider. Traditional streaming technology uses a single provider to provide a data stream to a group of end users. High bandwidth and processing power may be required to provide a single data stream to a large audience, and as the number of end users increases, the bandwidth required by the provider also increases.
[0101] Streaming media can be provided on demand or live. Streaming media can be played immediately at any point in the file. The end user can skip the media file, start playing, or change the playback to any point in the media file. Therefore, the end user does not need to wait for the file to be downloaded step by step. Typically, streaming media is provided by a dedicated server with high bandwidth capabilities through specialized equipment that accepts requests for video files and uses information about the format, bandwidth, and structure of these files to provide the necessary amount of data at the speed required to play the video. The streaming media server may also take into account the transmission bandwidth of the destination client and the capabilities of the media player. The streaming media component 907 can communicate with the client device 920 using control information and data information to adapt to the changing network conditions when the video is playing. These control messages can include commands for enabling control functions, such as fast forward, fast rewind, pause, or seeking a specific part of the file on the client.
[0102] Because the streaming component 907 transmits video data only when needed and at the required rate, precise control over the amount of streaming media provided can be maintained. Viewers will not be able to watch high data rate video over a lower data rate transmission medium. However, the streaming server (1) provides users with random access to video files, (2) allows monitoring of who is watching what video program and for how long, (3) uses transmission bandwidth more efficiently because only the amount of data required to support the viewing experience is transmitted, and (4) the video files are not stored on the viewer's computer but are discarded by the media player, allowing for more control over the content.
[0103] The streaming component 907 can use TCP-based protocols such as the Hypertext Transfer Protocol (HTTP) and the Live Streaming Protocol (RTMP). The streaming component 907 can also provide live broadcasts over the Internet and can multicast, which allows more than one client to tune into a stream, thereby saving bandwidth. The streaming player may not rely on buffering the entire video to provide random access to any point in the media program. Instead, this is accomplished using control information transmitted from the media player to the streaming server. Other protocols used for streaming are Hypertext Transfer Protocol (HTTP) Live Streaming (HLS) or HTTP Dynamic Adaptive Streaming (DASH). The HLS and DASH protocols distribute video over HTTP via a playlist of small segments, which are typically provided by one or more content delivery networks (CDNs) at different bit rates. This allows the media player to switch bit rates and content sources on a segment-by-segment basis. This switching helps compensate for network bandwidth differences and infrastructure failures that may occur during video playback.
[0104] The distribution of video content via streaming media can be accomplished in a variety of modes. In one mode, a user pays for viewing a video program, for example, by paying for access to a portion of a media library or a restricted media program, or by using a pay-per-view service. In another mode, which became widely adopted shortly after the advent of broadcast television, sponsors pay for the broadcast of a media program in exchange for the right to play advertisements during or adjacent to the program. In some modes, advertisements are inserted at predetermined times in the video program, which may be referred to as "ad spots" or "ad breaks." For streaming video, a media player can be configured so that a client device cannot play the video without also playing a scheduled advertisement during a designated ad break.
[0105] Reference Figure 10 , shows a schematic diagram of an apparatus 1000 for viewing video content and advertisements. In selected embodiments, the apparatus 1000 may include a processor (CPU) 1002 operatively coupled to a processor memory 1004 that holds binary-coded functional modules for execution by the processor 1002. Such functional modules may include an operating system 1006 for handling system functions (e.g., 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 Figure 10 Additional modules not shown, such as modules for performing other operations described elsewhere in this document.
[0106] The bus 1014 or other communication components can support information communication within the device 1000. The processor 1002 can be a specialized or dedicated microprocessor configured or operable to perform specific tasks based on the features and aspects disclosed herein by executing machine-readable software code that defines the specific tasks. A processor memory 1004 (e.g., a random access memory (RAM) or other dynamic storage device) can be connected to the bus 1014 or directly connected to the processor 1002 and store information and instructions to be executed by the processor 1002. The memory 1004 can also store temporary variables or other intermediate information during the execution of such instructions.
[0107] The computer-readable medium in the storage device 1024 can be connected to the bus 1014 and store static information and instructions for the processor 1002; for example, the storage device (CRM) 1024 can store the modules 1006, 1008, 1010, and 1012 when the apparatus 1000 is powered off, and can be loaded from these modules into the processor memory 1004 when the apparatus 1000 is powered on. The storage device 1024 may include a non-transitory computer-readable storage medium that holds information, instructions, or some combination thereof, such as instructions that, when executed by the processor 1002, cause the apparatus 1000 to be configured or operable to perform one or more operations of the methods described herein.
[0108] A communication interface 1016 may also be connected to the bus 1014. The communication interface 1016 may provide or support two-way data communication between the apparatus 1000 and one or more external devices, such as the streaming media system 900, optionally via a router / modem 1026 and a wired or wireless connection. Alternatively, or in addition, the apparatus 1000 may include a transceiver 1018 connected to an antenna 1029, through which the apparatus 1000 may communicate wirelessly with a base station of a wireless communication system or with the router / modem 1026. In another alternative, the apparatus 1000 may communicate with the video streaming system 900 via a local area network, a virtual private network, or other network. In another alternative, the apparatus 1000 may be incorporated as a module or component of the system 900 and communicate with the other components via the bus 1014 or by some other means.
[0109] The apparatus 1000 may be connected (e.g., via the bus 1014 and the graphics processing unit 1020) to a display unit 1028. The display unit 1028 may include any suitable configuration for displaying information to an operator of the apparatus 1000. For example, the display unit 1028 may include or utilize a liquid crystal display (LCD), a touch screen LCD (e.g., a capacitive display), a light emitting diode (LED) display, a projector, or other display device to present information to a user of the apparatus 1000 in a visual display.
[0110] One or more input devices 1030 (e.g., an alphanumeric keyboard, microphone, keyboard, remote control, game controller, camera, or camera array) can be connected to bus 1014 via user input port 1022 to transmit information and commands to apparatus 1000. In selected embodiments, input device 1030 can provide or support control of cursor positioning. Such a cursor control device, also known as a pointing device, can be configured as a mouse, trackball, trackpad, touch screen, cursor direction keys, or other device for receiving or tracking physical movement and converting the movement into electrical signals indicating cursor movement. The cursor control device can be incorporated into display unit 1028, for example using a touch-sensitive screen. The cursor control device can transmit direction information and command selections to central processor 1002 and control cursor movement on display 1028. The cursor control device can have two or more degrees of freedom, for example, allowing the device to specify the position of a cursor in two or three-dimensional space.
[0111] As used in the description herein and throughout the appended claims, “a” and “an” include plural referents unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the appended claims, “in” includes “in” and “on” unless the context clearly dictates otherwise.
[0112] The above description illustrates various embodiments and examples of how various aspects of some embodiments may be implemented. The above examples and implementations should not be considered the only implementations, but are presented to illustrate the flexibility and advantages of some embodiments as defined by the appended claims. Based on the above disclosure and the appended claims, other arrangements, implementations, implementations, and equivalents may be employed without departing from the scope defined by the claims.
Claims
1. A method for displaying an electronic program guide, comprising: Receiving, by a computing device, a list of ranked entities for video playback of a first interface in a first layout, the list of ranked entities being ranked in a first order based on personalized information of a user account; determining, by the computing device, using at least a portion of the list of ranked entities, a corresponding channel that plays at least a portion of the list of ranked entities; rearranging, by the computing device, the channels in a second order in a section of an electronic program guide based on the respective rankings in the first order of at least a portion of the list of ranked entities, wherein the section of the electronic program guide displays the channels in a second layout based on a time dimension; and The computing device switches the electronic program guide from displaying the first interface to displaying a second interface, wherein the second interface includes the channels in the electronic program guide based on the second order.
2. The method according to claim 1, further comprising: The list of ranked entities is generated based on a predictive model that ranks entities based on the personalized information.
3. The method according to claim 1, wherein The list of ranked entities is generated as follows: Identify entities that are live at the current time; and The entities broadcast live in the list of ranked entities are ranked.
4. The method according to claim 1, wherein The list of ranked entities is determined from a linear schedule of live television programming.
5. The method according to claim 1, wherein: The first interface includes an entity from the list of ranked entities, the entity being a live broadcast from a linear schedule of programming for live television, and The first interface includes other entities available on demand.
6. The method according to claim 1, wherein: displaying the first interface in the first layout using the list of ranked entities, receiving an input for displaying the electronic program guide, and The list of ranked entities is used to determine a corresponding channel that plays at least a portion of the list of ranked entities.
7. The method of claim 1 , wherein using at least a portion of the list of ranked entities to determine corresponding channels and rearrange the channels comprises: determining channels associated with entities in the list of ranked entities; as well as Based on the priority of the entity in the list of ranked entities, the channel is moved to a column of corresponding priority in the electronic program guide.
8. The method according to claim 7, wherein: Using at least a portion of the list of ranked entities to determine corresponding channels and rearrange the channels includes: determining additional entities of the channel associated with the entity in the list of ranked entities; and The additional entity is added to the column of the corresponding priority in the electronic program guide.
9. The method of claim 1 , wherein using at least a portion of the list of ranked entities to determine corresponding channels and rearranging the channels comprises: determining a channel associated with each entity in at least a portion of the list of ranked entities; as well as Each channel is inserted into a column of corresponding priority in the electronic program guide based on the priority of the entities in the first order of the list of ranked entities.
10. The method of claim 1 , wherein rearranging the channels comprises: The channels of the at least a portion of the list of ranked entities are inserted into a column designated as having the highest priority in the electronic program guide.
11. The method of claim 1 , wherein rearranging the channels comprises: The channels of the at least a portion of the list of ranked entities are inserted into a time range of the entity designated in the electronic program guide as being live at the current time.
12. The method of claim 11, wherein using the at least a portion of the list of ranked entities to determine corresponding channels and rearrange the channels comprises: determining additional entities within a future time range for channels in the at least a portion of the list of ranked entities, and The additional entity for the channel is inserted into the electronic program guide within the future time range.
13. A non-transitory computer-readable storage medium comprising instructions that, when executed, control a computer system to: 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 in a first order based on personalized information of a user account; using at least a portion of the list of ranked entities to determine a corresponding channel that plays at least a portion of the list of ranked entities; rearranging the channels in a second order in a section of an electronic program guide based on the respective rankings in the first order of at least a portion of the list of ranked entities, wherein the section of the electronic program guide displays channels in a second layout based on a time dimension; and The electronic program guide is switched from display on the first interface to display on a second interface, wherein the second interface includes the channels in the electronic program guide based on the second sequence.
14. A method for displaying an electronic program guide, comprising: displaying, by a computing device, a first interface in a first layout, wherein the first interface includes a list of ranked entities that are live at a current time, and entities in the list of ranked entities are ordered in a first order based on priority; receiving, by the computing device, an input for displaying an electronic program guide, wherein the electronic program guide displays entities in a second layout based on a time dimension; determining, by the computing device, a corresponding channel that broadcasts at least a portion of the list of ranked entities; rearranging, by the computing device, the channels in a column of an electronic program guide in a second order based on the respective rankings in the first order of at least a portion of the list of ranked entities; and The channels are displayed, by the computing device, based on the second order in the electronic program guide.
15. The method of claim 14, wherein rearranging the channels comprises: Based on the priorities of the entities in the at least one portion of the list of ranked entities, channels associated with the entities in the at least one portion of the list of ranked entities are moved to columns of corresponding priorities in the electronic program guide.
16. The method of claim 15, wherein displaying the at least a portion of the entity in the electronic program guide comprises: Additional entities of the channel related to the entities in the list of ranked entities are displayed in the corresponding priority columns in the electronic program guide.
17. The method of claim 14, wherein displaying the channel comprises: Based on the priority of each entity in the first order, each channel associated with each entity in at least a portion of the list of ranked entities is displayed in a column of corresponding priority in the electronic program guide.
18. The method of claim 14, wherein displaying the channel comprises: The channel is displayed in a column designated as having the highest priority in the electronic program guide.
19. The method of claim 14, wherein displaying the channel comprises: The channels are displayed within a time range specified in the electronic program guide as entities that are live at the current time.
20. The method of claim 19, wherein displaying the channel comprises: Additional entities are displayed for channels of the at least a portion of the list of ranked entities within a future time range in the electronic program guide.
Citation Information
Patent Citations
Personalized Multimedia Content Driven By User Preferences
US20100205636A1