Personalized ranking of entities in electronic program guides for live television

The system addresses the lack of personalization in EPGs by using user-specific rankings to reorder channels and content, enhancing user engagement and usability by prioritizing relevant live content.

JP2026041802APending Publication Date: 2026-03-10HULU LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-11-21
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

Existing electronic program guides (EPGs) lack personalization in channel ordering, requiring users to scroll through channels to find their preferred content, especially in live television programming, as they are typically organized sequentially and do not account for individual user preferences.

Method used

A system that uses personalized ranking of entities based on user data to rearrange the layout of EPGs, prioritizing channels with the most relevant live content for each user, ensuring a seamless transition between different interface types by using a ranked list of entities to reorder channels and content display.

Benefits of technology

Enhances user experience by providing a consistent and relevant content display across interfaces, increasing the likelihood of users engaging with recommended content and improving the overall usability of EPGs by prioritizing channels with the most relevant programming.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026041802000001_ABST
    Figure 2026041802000001_ABST
Patent Text Reader

Abstract

A simplified method for generating an electronic program guide. The method includes receiving a ranked list of entities for video playback in a first interface in a first layout. The ranked list of entities is ranked based on personalized information about a user account and used to determine an ordering of the entities in slots of an electronic program guide. The slots of the electronic program guide display the entities in a second layout based on a time dimension. The method also outputs information for displaying at least a portion of the entities in the electronic program guide based on the ordering of the entities.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001]

[0001] This disclosure claims priority to U.S. Non-Provisional Patent Application No. 17 / 067,511, entitled "Personalized Ranking of Entities In An Electronic Programming Guide for Live Television," filed October 9, 2020, the entire contents of which are incorporated herein by reference in their entirety for all purposes. [Background technology]

[0002]

[0002] An electronic program guide may be a menu-based system that outputs information that describes content in a linear time-based format. For example, an electronic program guide may display scheduling information for current and upcoming 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 associated with a channel offered by a video distribution service. Each channel may list the content currently offered for the channel and the content that will be offered at a future time. For example, for channel #1, the current program being offered may be listed in one row, and another program may be listed in a row for the time after the current program ends. Typically, channels may be organized sequentially, such as based on a channel identifier. For example, channel #1 may be displayed in the first row of the guide, channel #2 in the next row, and so on. The organization of channels in an 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 need to scroll through the electronic program guide to see what is on channel #1. However, an electronic program guide may not display all channels simultaneously on the interface. Therefore, another user who may like channel #20 may need to scroll to channel #20 to see what is on it whenever the electronic program guide is opened.

[0004]

[0004] With respect to the following discussion and drawings, it is emphasized that the details shown represent examples for purposes 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 implementation details beyond those required for a fundamental understanding of the present disclosure. The following discussion, taken in conjunction with the drawings, will make clear to those skilled in the art how embodiments according to the present disclosure may be implemented. Similar or identical reference numbers may be used to identify or otherwise refer to similar or identical elements in the various drawings and supporting descriptions. The accompanying drawings are as follows: [Brief explanation of the drawings]

[0005] [Figure 1]1 illustrates a simplified system for generating an electronic program guide, according to some embodiments. [Figure 2]

[0006] 1 illustrates an example layout for a home interface, according to some embodiments. [Figure 3]

[0007] 1 illustrates an example of an electronic program guide, according to some embodiments. [Figure 4]

[0008] 10 illustrates another example of a layout for an electronic program guide, according to some embodiments. [Figure 5]

[0009] 1 illustrates a simplified flowchart of a method for generating a ranked list of entities, according to some embodiments. [Figure 6]

[0010] 1 illustrates a simplified flowchart of a method for generating entities for an electronic program guide, according to some embodiments. [Figure 7]

[0011] 1 illustrates a simplified flowchart of a method for generating an electronic program guide, according to some embodiments. [Figure 8]

[0012] 1 illustrates a simplified flowchart of a method for refreshing an electronic program guide according to some embodiments. [Figure 9]

[0013] 1 illustrates a video streaming system in communication with multiple client devices over one or more communication networks, according to one embodiment. [Figure 10]

[0014] 1 illustrates a diagram of a device for viewing video content and advertisements. DETAILED DESCRIPTION OF THE INVENTION

[0006]

[0015] Techniques for an electronic program guide system are described herein. In the following description, for purposes of explanation, numerous examples and specific details are set forth to provide a thorough understanding of some embodiments. Some embodiments, as defined by the claims, may include some or all of the features in these examples, alone or in combination with other features described below, and may also include modifications and equivalents of the features and concepts described herein.

[0007]

[0016] The video delivery system may display an interface with different layouts. For example, a first interface layout may list entities such as programs, movies, campaigns, etc. provided by the video delivery system. The entities may be selected for current playback. The entities may also be grouped into groupings, which may be called collections. One collection may list entities that are currently live, which may mean that the entities are currently being provided in a linear schedule of programs, e.g., live television programs. This collection may be called a live-now collection, but may be called by other names. Some entities in the live-now collection may be viewable only while the program is being provided live. That is, once a live program ends, that instance of the program may not be viewable as a currently live program 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, saved programs, etc.

[0008]

[0017] The entity ranker may rank entities for the Live Now collection for a user. For example, the entity ranker may use personalized information to rank entities for a user. In this way, different users may receive different recommendations for entities in the Live Now collection. This may increase the relevance of the entities included in the Live Now collection to the user, which may increase the selection of one of the entities in the Live Now collection for viewing. The entity ranker may rank entities based on which entities are currently live in a linear schedule of programming. Ranked entities may also include other entities, such as entities promoting content that may not be live at the present time but may become live in a future time period.

[0009]

[0018] Another method for displaying an interface may be using an electronic program guide (EPG) layout. Electronic program guide layouts may include different formats that may be based on displaying entities using a time-based method. For example, an electronic program guide may display rows containing channels, each displaying related entities offered by the respective channel from the current time to a future time range. As discussed in the background, when an electronic program guide sequentially orders channels, the electronic program guide may not benefit from personalization of the channel order. In some cases, the first interface may be a home interface that is initially presented to a user account when the user interface is first displayed upon initial login by the user. The home interface may also be an interface more frequently used by the user account. If different methods for ordering entities are used between the live now collection and the electronic program guide, a seamless experience is not provided when the user account switches between the interfaces. Therefore, the video distribution system may use a ranked list of entities for the live now collection to format the electronic program guide.

[0010]

[0019] In some embodiments, the video delivery system may use the 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 delivery 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 delivery system may determine the channels associated with the ranked entities. The video delivery system may then rearrange the channel sequence in the electronic program guide to be similar to the order of the 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 delivery system may move channel #3 to the highest priority position in the electronic program guide. Then, if the second entity in the ranking is associated with channel #10, the video delivery system may move channel #10 to the second highest priority position in the electronic program guide. The video delivery system then rearranges the ordering of the electronic program guide in the layout based on the ranking of the entities for the Live Now collection. When a user account switches between the first interface and the electronic program guide, the electronic program guide presents a consistent view of the list of ranked 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] 1 illustrates a simplified system 100 for generating an electronic program guide, according to some 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 functionality described with respect to server system 102 may be distributed across multiple computing devices. Also, server system 102 may be in communication with multiple clients 104.

[0013]

[0022] The server system 102 includes a video delivery system 106 that can deliver video to the client 104, where the video can be displayed on a user interface 112 via a media player (not shown). In some embodiments, the video delivery system 106 can include one or more servers that can be implemented using a content delivery network (CDN).

[0014]

[0023] The client 104 may include a computing device capable of playing videos, such as a mobile device, a smartphone, a tablet device, a living room device, a television, etc. The client 104 includes an interface application 110 that generates an interface in a user interface 112. The interface application 110 allows a user to play videos from the video distribution system 106 and may also allow a user 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, the entities may be associated with programs, which may be television programs, movies, promoted content, live sporting event telecasts, program episodes, advertisements, or other content. The entities may be icons, text, or other information that describes the respective videos.

[0015]

[0024] As discussed in more detail below, interface application 110 may display a first interface in a first layout and a second interface in a second layout. The layout may be an organization of entities based on a characteristic. The first interface may be an interface that displays entities that can be selected for current playback. For example, the interface may be referred to as a home interface, which may be an interface that is initially provided to a user when starting interface application 110 or when in the home position of the interface. Although a home interface is described, the first interface need not be a home interface. In some examples, such as those 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 a user can only watch the program at set times. In contrast, entities provided on-demand may be requested for viewing at any time.

[0016]

[0025] The second interface may 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 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 the entities based on a time range that includes the present time and other time ranges, such as the current time period (e.g., from 9:00 AM to 9:30 AM), a future time period (e.g., from 9:30 AM to 10:00 AM), or a past time period (e.g., from 8:30 AM to 9:00 AM). The second interface lists entities that are live within the time period. In some examples, the entities may be arranged in rows associated with channels.

[0017]

[0026] The interface engine 108 may send interface commands to the interface application 110. While 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 in the client 104 by the interface application 110. The interface commands may provide the interface application 110 with commands to generate the user interface 112. The interface commands may be sent in response to input received from a user. For example, the user may navigate to a different interface or perform other actions on the interface. In response to those interactions, the interface engine 108 may generate changes to the interface. For example, input to display the electronic program guide 300 may be received from the user. The interface engine 108 receives the input and provides interface commands to the interface application 110 to display the electronic program guide with specific content in the layout. Similarly, the interface engine 108 may provide interface commands to the interface application 110 to display a first interface with specific content in the layout.

[0018]

[0027] As discussed above, the user interface 112 may be displayed in different layouts. The home interface generator 114 generates the home interface. The home interface generator 114 may use the 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 the viewing history of entities previously viewed by the user account. Other personalized information may be entities that the user account has expressed interest in, such as entities that the user account has added to a collection or that the user has indicated they like, preferences from the user account, such as the user's favorite sports team or favorite channel, and other personalization characteristics, such as the user's age, the user's gender, the location of the client 104, the time of day, the day of the week, the last episode viewed, the last series viewed, the last movie viewed, 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 currently live. For example, if the current time is 9:00 AM, the ranked list of entities are 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 the ranked list of 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 ranked list of entities. The Live Now collection can have prioritized slots, and the home 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 Now collection, the second entity is added to the second-highest priority slot, and so on. The user interface 112 can also include other collections, and the home interface generator 114 can generate other lists of entities to display in other collections based on different processes. The interface engine 108 then communicates the entities and layout to the interface application 110. For example, the interface engine 108 sends identifying information about the entities and where they should be displayed in the home interface layout.

[0020]

[0029] The guide generator 116 may generate an electronic program guide. As described in the background, the electronic program guide may include channels in a set order. To provide the electronic program guide with personalization similar to that shown in the Live Now collection, the guide generator 116 may 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. Different methods for changing the layout of the electronic program guide based on the list of ranked entities are described in more detail below with respect to Figures 3 and 4.

[0021]

[0030] Home Interface

[0022]

[0031] 2 illustrates an example of a home interface, according to some embodiments. The home interface may include different categories, namely, category #1 204-1, category #2 204-2, category #3 204-3, and category #4 204-4, although other categories may be recognized. Categories may group entities based on characteristics. For example, category #1 204-1 may be the home interface, category #2 204-2 may be videos added by a user, category #3 204-3 may be movies, etc.

[0023]

[0032] In the home interface, different collections 206-1 through 206-N are displayed. A collection 206 may display entities 202 using a selector 208. When selected, the user interface 112 may play content associated with the respective entity 202. A collection 202 may contain more entities 202 than can be displayed on the screen. This may require the user to scroll to view entities 202 that are off-screen. In some embodiments, the user interface 112 displays the entities 202 according to priority; for example, slots in each collection 206 may have an associated priority, and entities 202 are inserted into the corresponding slots. Priority is used to display entities determined to be relevant by the user in higher priority slots that are more likely to be seen by the user. In some embodiments, the first slot has the highest priority and may be positioned differently in the collection based on the layout. For example, the first slot may be the left-most slot on the user interface 112 when the collection 206 is displayed horizontally, or the top-most slot when the collection 206 is displayed vertically.

[0024]

[0033] One collection is the Live Now collection 206-1. As discussed above, the Live Now collection 206-1 may include entities 202 that are currently being provided live at the current time. For example, the Live Now collection 206-1 may include entities 202-1 through 202-4. The Live Now collection 206-1 may display the entities 202 according to a list of ranked entities received from the ranker 118. For example, the ranker 118 may rank entity 1 202-1 as the top-ranked entity for the user account, entity 202-2 as the second-ranked entity in the list, and so on. For example, the first slot may include the highest-ranked entity, entity 1 202-1, the second slot may include the second-highest-ranked entity, entity 202-2, and so on. Therefore, the Live Now collection 206-1 displays entities that are currently live in an order personalized for the user account. By prioritizing entities 202 determined to be more relevant to the user account, the user account may be more likely to find and select that entity 202 for playback.

[0025]

[0034] Electronic Program Guide

[0026]

[0035] Figure 3 illustrates a first layout of an electronic program guide 300, and Figure 4 illustrates a second layout of an electronic program guide 300, although other formats are contemplated. Figure 3 illustrates an example layout for an electronic program guide 300, according to some embodiments. The electronic program guide 300 may arrange the entities 202 in the guide based on a time dimension. For example, the entities may be arranged based on a time range that progresses sequentially in time from the current time. The time range may also cover a time from before the current time.

[0027]

[0036] 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 categories #1 304-1 through #4 304-4. The selector 208 may be used to select different layouts for the electronic program guide 300. For example, the layout for category #1 304-1 is illustrated in FIG. 3 and the layout for category #2 304-2 is illustrated in FIG. 4.

[0028]

[0037] The electronic program guide 300 may include different slots associated with different priorities. For example, slots may be different rows that display entities 202. Rows may be containers or areas of the user interface 112 associated with groupings of entities 202. In some embodiments, each row may be associated with a channel 302, which may be associated with a grouping of linear live programming. For example, a channel may be associated with a network that offers a particular lineup of live programming for the channel. Channels 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 dimension used to organize the layout of the electronic program guide 300. For example, the timeline 308 may include different time ranges, which may include a time range for the current time and a future time range. As shown, the current time is shown at 306, which is between the time range of 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 layout of channels in rows based on priority for the list of ranked entities. For example, entity #1 202-1 is the number one 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 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 other channels associated with each entity 202 in the ranked list of entities. For example, in the ranked list of entities, channel #10 302-10 is associated with entity #3, respectively. 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 correspondingly alters the layout of the electronic program guide 300 to change the channel layout sequence. Channel #2 302-2 is currently playing the highest-ranked entity of entity #1 202-1 live, 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 account sees the channel containing the highest-ranked entity #1 202-1 in the first row. Also, the user does not have to scroll to find the channel that may be playing the entity the user is most likely to want to watch. This is not only advantageous for providing focus to the channel in the first row, but is also important when higher-ranked channels that may be off-screen are moved on-screen during the initial display of the electronic program guide 300. For example, channel #10 302-10 may have appeared off-screen if sequential channel numbering was used in the electronic program guide 300. However, when the electronic program guide 300 is first displayed, it displays channel #10 302-10 in the third row, which makes it more likely that the user account will view the channel containing the entity 202 that the user account wants to play.

[0032]

[0041] Using the ranked entity list to arrange channel sequences in rows in the electronic program guide 300 also coordinates the visual display of the entities with the home interface shown in FIG. 2. For example, the home interface listed entities #1 202-1 through #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 through #4 202-4 in the same row order. The layout may be in a different format, such as having the rows in the electronic program guide 300 stacked vertically in this example, but the order of entities #1 202-1 through #4 202-4 remains the same. By keeping the order the same, the user experience for the user account is consistent across the home interface and the electronic program guide 300 with respect to the order of the ranked entity list.

[0033]

[0042] The electronic program guide 300 is based on a time dimension, which allows other entities to be listed for channels at future times. For example, instead of simply displaying entity #1 202-1 through entity #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 may offer entity #5 202-5 from 9:30 AM to 10:30 AM, and then entity #6 202-6 at 10:30 AM. Channel #1 302-1 may offer entity #7 202-7 from 9:30 AM to 10:00 AM, and then 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 shown in the electronic program guide 300. Entities 202-5 through 202-9 may or may not be ranked 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 home interface because they are not currently live.

[0034]

[0043] 4 illustrates another example of a layout for an electronic program guide 300, according to some 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 of FIG. 4 may also be based on a time dimension, displaying entities in time range groupings. For example, the electronic program guide 300 may display different time ranges 402-1 through 402-3, such as 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 associated with the respective 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 through #4 202-1 through 202-4 are shown over the time range from 9:00 AM to 9:30 AM, including the current time, because these entities 202 begin during that time range. Electronic program guide 300 may arrange entities 202 in prioritized slots according to a ranked entity list. For example, entity #1 202-1 is listed as the number one ranked entity during the first slot in the time range, entity #2 202-2 is listed as the number two ranked entity during the second slot in 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 ranked entity list is for entities that are currently live, entities 202 listed during future time ranges may not be found in the ranked entity list. 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 the channel for each entity in the ranked entity list. For example, in the time range from 9:30 AM to 10:00 AM, entity #5 202-5 and entity #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. Entity #8 202-8 associated with channel #2 302-2 and entity #9 202-9 associated with channel #10 302-10 are shown over the time range of 10:00 AM to 10:30 AM in 402-3. Other entities 202 from channels other than the channel associated with the ranked entity list may also be shown during the future time range, and entities 202 from channels associated with the ranked entity list need not be shown during the future time range.

[0036]

[0045] Therefore, electronic program guide 300 arranges entities during a time range based on the ranked list of entities. Although channels may not be displayed in rows, electronic program guide 300 may arrange entities during a future time range based on the channels associated with the ranked list of entities.

[0037]

[0046] Entity Creation

[0038]

[0047] 5 illustrates a simplified flowchart 500 of a method for generating a list of ranked entities, according to some embodiments. At 502, the interface engine 108 receives input from a user account to display a home interface. Then, at 504, the ranker 118 determines personalized information for the user account, or the home interface can be automatically displayed. The personalized information can include real-time information about the context associated with the user account and / or the client 104, as well as historical information, such as viewing history, for the user account.

[0039]

[0048] At 506, the ranker 118 generates a list of ranked entities based on the personalized information. For example, the ranker 118 may determine entities that are currently live based on the current time. The ranker 118 may then use a predictive network to rank entities based on the personalized information. For example, the ranker 118 may use a machine learning model trained based on personalized information about the user account to predict the ranking of the entities. Although a machine learning model is described, other methods, such as a set of rules, may be used to rank entities. The ranker 118 may input features associated with the personalized information into a predictive model, and the predictive model may rank entities that are currently live based on the features.

[0040]

[0049] At 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 other examples, the home interface generator 114 may select all of the entities in the ranked list of entities. At 510, the home interface generator 114 outputs at least a portion of the entities for a live now collection for currently live entities.

[0041]

[0050] At any time, a user account may display the electronic program guide 300. For example, after displaying the home interface, the electronic program guide 300 may be displayed. However, the electronic program guide 300 may not necessarily be displayed after the home interface.

[0042]

[0051] 6 illustrates a simplified flowchart 600 of a method for generating entities for the electronic program guide 300, according to some embodiments. At 602, the interface engine 108 receives input for displaying the electronic program guide 300. At 604, the ranker 118 generates a list of ranked entities that are currently live 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 a list similar to that used to generate the home interface. For example, the ranker 118 may output entities that are currently live.

[0043]

[0052] At 606, the guide generator 116 may filter any entities that are not eligible for the electronic program guide 300. For example, because the ranker 118 is generating entities for the home interface, the ranker 118 may have ranked entities that are not eligible for the electronic program guide 300. In some examples, the ranker 118 may include some content that is not currently live, and the guide generator 116 may remove those entities. Different rules for filtering entities may be used. 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 are similarly removed. In some examples, some entities may be based on on-channel marketing campaigns that may be marketing content on upcoming channels. The guide generator 116 may retain on-channel marketing campaigns for display in the electronic program guide 300 because the programs may be displayed immediately in the electronic program guide 300.

[0044]

[0053] At 608, the guide generator 116 selects at least a portion of the entity. The selection is described in more detail with respect to FIG.

[0045]

[0054] At 610, the guide generator 116 selects additional entities based on timing information for the guide. For example, the guide generator 116 may select entities at future times from channels associated with some of the entities. Then, at 612, the guide generator 116 outputs the entities based on the 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 using channels displayed in rows, the following process may be used to display the entities 202. Figure 7 illustrates a simplified flowchart 700 of a method for generating an electronic program guide 300, according to some embodiments. At 702, the guide generator 116 determines channels for each of a portion of the entities 202 for the electronic program guide 300. At 704, the guide generator 116 sorts the channels in the electronic program guide 300 based on the rankings of the entities 202.

[0047]

[0056] At 706, the guide generator 116 may determine entities 202 for the sorted channels for a time range in the electronic program guide 300. In some examples, the guide generator 116 may query information about the channels to determine the entities 202. The entities 202 may include entities that are currently live and future entities.

[0048]

[0057] At 708, the guide generator 116 outputs the channels and entities 202 for the electronic program guide 300 with layout information based on the sorting. For example, the layout information may indicate a row for each respective channel.

[0049]

[0058] 4, the guide generator 116 may determine a time range for the electronic program guide 300. The guide generator 116 inserts a list of ranked entities into the time range for the current time. The guide generator 116 then determines entities 202 for future time ranges, such as by determining entities 202 from channels associated with the list of ranked entities for the future time range.

[0050]

[0059] Guide Refresh

[0051]

[0060] The electronic program guide 300 is refreshed at certain times. For example, the electronic program guide 300 may be refreshed at different set time intervals and / or when the rankings of the live now collection on the home interface are refreshed. FIG. 8 illustrates a simplified flowchart 800 of a method for refreshing the 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 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 certain 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 another example, the electronic program guide 300 may be refreshed when new rankings from the ranker 118 are output. In some examples, the guide generator 116 may minimize refreshes to eliminate a disruptive experience with the electronic program guide 300. For example, electronic program guide 300 may list channels in rows, and dynamically switching the order of the rows while the user is viewing the rows may be confusing to the user. Therefore, guide generator 116 may wait a certain amount of time since the last refresh to refresh electronic program guide 300 again.

[0052]

[0061] At 804, the guide generator 116 determines whether a guide refresh should be performed. If not, the process returns to 802 to continue monitoring the refresh status. If a guide refresh is determined, the refresh may be performed because the entities are out of date for the current time or because new rankings of the entities are available. Also, any marketing updates for new campaigns may be out of date and are also removed.

[0053]

[0062] If a guide refresh should be performed, processes at 806 and 808 may be performed, if applicable. At 806, the guide generator 116 determines whether any entities are out of date with respect 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 ended at 9:30 AM and the current time is 9:35 AM, the entity 202 is out of date, and the guide generator 116 removes the entity 202 from the list of ranked entities. At 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 rankings to replace the old rankings.

[0054]

[0063] At 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 at 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 third priority, and Program #2 is found on Channel #2. Electronic program guide 300 is then transitioned to reposition Channel #2 in the third row of electronic program guide 300.

[0058]

[0067] conclusion

[0059]

[0068] Therefore, the electronic program guide 300 may be prioritized based on the ranked list of entities for the Live Now collection. When a user switches interfaces between the Live Now 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 Now collection. This provides a smooth transition between the home interface and the electronic program guide 300. Also, because the entities are ranked in order of relevance to the user's account in the Live Now collection, the electronic program guide 300 may be organized to display entities 202 that may be more relevant to the user in higher priority positions, such as at the top of the electronic program guide 300. This may increase engagement between the user account and the electronic program guide 300 and allow the user to more easily find entities 202 that are more relevant to the user. Finding more relevant entities 202 may also increase engagement of the user account by causing the user account to request more videos to play.

[0060]

[0069] Illustrative Embodiments

[0061]

[0070] In some embodiments, a method comprises receiving, by a computing device, 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; using, by the computing device, the list of ranked entities to determine an ordering of the entities in slots of an electronic program guide, wherein the slots of the electronic program guide display the entities in a second layout based on a time dimension; and outputting, by the computing device, 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 ranked list of entities based on a predictive model that ranks the entities based on the personalized information.

[0063]

[0072] In some embodiments, generating the list of ranked entities comprises determining entities that are currently live and ranking the live entities 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 programming.

[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 programming, 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, an input to display an electronic program guide is received, and a list of ranked entities used to display the entities in the first interface is used to determine an ordering of the entities in the electronic program guide.

[0067]

[0076] In some embodiments, using the list of ranked entities to determine the ordering of entities in the electronic program guide comprises determining channels associated with entities in the list of ranked entities and moving the channels to corresponding priority slots in the electronic program guide based on the priorities of the entities in the list of ranked entities.

[0068]

[0077] In some embodiments, using the list of ranked entities to determine an ordering of entities in the electronic program guide comprises determining additional entities for channels associated with entities in the list of ranked entities and adding the additional entities to corresponding priority slots in the electronic program guide.

[0069]

[0078] In some embodiments, using the list of ranked entities to determine the ordering of entities in the electronic program guide comprises determining a channel associated with each entity in the list of ranked entities and inserting each channel into a corresponding priority slot in the electronic program guide based on the priority of the entity in the list of ranked entities.

[0070]

[0079] In some embodiments, using the list of ranked entities to determine the ordering of entities in the electronic program guide comprises inserting at least a portion of the entity into a slot in the electronic program guide designated with the highest priority.

[0071]

[0080] In some embodiments, using the list of ranked entities to determine the ordering of entities in the electronic program guide comprises inserting at least a portion of the entities into a time range in the electronic program guide designated for entities that are currently live.

[0072]

[0081] In some embodiments, using the list of ranked entities to determine an ordering of entities in the electronic program guide comprises determining additional entities for channels in at least a portion of the entities in the future time range and inserting the additional entities into the electronic program guide in the future time range.

[0073]

[0082] In some embodiments, a non-transitory computer-readable storage medium includes instructions that, when executed, control a computer system to be operable to: receive 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; use the list of ranked entities to determine an ordering of the entities in slots of an electronic program guide, wherein the slots of the electronic program guide display the entities in a second layout based on a time dimension; and output 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, a method comprises: displaying, by a computing device, a first interface in a first layout, wherein the first interface includes a list of ranked entities that are currently live at a given time, the entities in the list of ranked entities being ordered according to priority; receiving, by the computing device, an 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 list of ranked entities in the electronic program guide, wherein at least a portion of the entities are ordered based on the priority of the list of ranked entities.

[0075]

[0084] In some embodiments, displaying at least a portion of the entity in the electronic program guide comprises moving a channel associated with an entity in the list of ranked entities to a corresponding priority slot in the electronic program guide based on a priority of the entity in the list of ranked entities.

[0076]

[0085] In some embodiments, displaying at least a portion of the entity in the electronic program guide comprises displaying additional entities for channels associated with the entity in a list of ranked entities in a corresponding priority slot in the electronic program guide.

[0077]

[0086] In some embodiments, displaying at least a portion of the entities in the electronic program guide comprises displaying each channel associated with each entity in the list of ranked entities in a corresponding priority slot in the electronic program guide based on a priority of each respective entity in the list of ranked entities.

[0078]

[0087] In some embodiments, displaying at least a portion of the entity in the electronic program guide comprises displaying at least a portion of the 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 the entity in the electronic program guide comprises displaying at least a portion of the entity during a time range in the electronic program guide designated for the entity that is currently live.

[0080]

[0089] In some embodiments, displaying at least a portion of the entities in the electronic program guide comprises displaying additional entities for channels in the at least a portion of the entities during a future time range in the electronic program guide.

[0081]

[0090] system

[0082]

[0091] Features and aspects disclosed herein may be implemented in conjunction with a video streaming system 900 in communication with multiple client devices over one or more communications networks, as shown in Figure 9. Aspects of the video streaming system 900 are described merely to provide an example application for enabling distribution and delivery of content prepared in accordance with the present disclosure. It is to be appreciated that the present technology is not limited to streaming video applications and may be adapted to other applications and delivery mechanisms.

[0083]

[0092] In one embodiment, a media programming provider may include a library of media programming. For example, the media programming may be aggregated and provided through a site (e.g., a website), an application, or a browser. A user may access the media programming provider's site or application and request a media program. The user may be limited to requesting only media programs provided by the media programming provider.

[0084]

[0093] 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 comprise raw or edited frame-based video data in any suitable digital format, such as Moving Pictures Experts Group (MPEG)-1, MPEG-2, MPEG-4, VC-1, H.264 / Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC), or other formats. Alternatively, 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 comprise various types of video clips or programs, such as television episodes, movies, and other content produced as the primary content of interest to consumers. The video data may also include audio, or audio alone 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 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 definite portion of frame-based video data, such as may be used in a streaming video session to view a television episode, a movie, a recorded live performance, or other video content.

[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 particular advertisers or messages. The advertisements may be offered for advertisers in exchange for some type of payment, or may comprise promotional messages, public service messages, or some other information for the system 900. The video ad server 904 may serve video ad segments as directed by a user interface controller (not shown).

[0087]

[0096] The video streaming system 900 may further include an integration and streaming component 907 that integrates 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 suitable algorithm or process. The video streaming system 900 may include other modules or units not shown in FIG. 9 , such as a management server, a commerce server, a network infrastructure, an advertisement selection engine, etc.

[0088]

[0097] The video streaming system 900 may be connected to a data communications network 912. The data communications 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 some combination of these or similar networks.

[0089]

[0098] One or more client devices 920 may be in communication with the video streaming system 900 via the data communications network 912, the 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 combinations thereof, via a router 918 for a LAN, via a base station 917 for the wireless cellular telecommunications network 914, or via some other connection. In operation, such client devices 920 may send and receive data or instructions to the system 900 in response to user input or other input received from a user input device. In response, the system 900 may provide video segments and metadata from the data store 909 to the client device 920 in response to a selection of a media program. Client device 920 may output video content from streaming video segments in a media player using a display screen, projector, or other video output device, and may receive user input to interact with the video content.

[0090]

[0099] Distribution of audio-video data can be accomplished in various ways, such as using streaming, from a streaming component 907 to a remote client device through a computer network, a telecommunications network, and a combination of such networks. In streaming, a content server continuously streams audio-video data to a media player component running at least partially on the client device, and the media player component may play the audio-video data simultaneously upon receiving the streaming data from the server. Although streaming is discussed, other distribution methods may be used. The media player component may begin playing video data immediately after receiving the first portion of data from the content provider. Traditional streaming techniques use a single provider that delivers a stream of data to a set of end users. Delivering a single stream to a large audience can require high bandwidth and processing power, and as the number of end users increases, the provider's required bandwidth may increase.

[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 a media file to begin playback or change playback to any point in the media file. Thus, end users do not have to wait for a file to download incrementally. 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 needed to play the video, along with information about the format, bandwidth, and structure of those files, at the speed needed to play it. The streaming media server may also take into account 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 and data messages to adapt to changing network conditions as the video plays. These control messages can include commands to enable control functions such as fast-forwarding, fast-rewinding, pausing, or seeking to a specific part of the file at the client.

[0092]

[0101] Because the streaming component 907 transmits video data only as needed and at the rate needed, precise control over the number of streams provided can be maintained. A viewer would not be able to watch high-data-rate video over a lower-data-rate transmission medium. However, a streaming media server (1) provides users with random access to video files, (2) allows monitoring of who is watching what video programs and for how long, (3) uses transmission bandwidth more efficiently because only the amount of data needed to support the viewing experience is transmitted, and (4) video files are not stored on the viewer's computer but are discarded by the media player, thereby allowing more control over the content.

[0093]

[0102] The streaming component 907 may use HTTP and TCP-based protocols such as RTMP (Real Time Messaging Protocol). The streaming component 907 can also deliver live webcasts and perform multicasting, which allows more than one client to tune into a single stream, thereby saving bandwidth. Streaming media players may not rely on buffering the entire video to provide random access to any single 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 Hypertext Transfer Protocol Live Streaming (HLS) (HTTP) or Dynamic Adaptive Streaming over HTTP (DASH). The HLS and DASH protocols deliver video over HTTP via a playlist of small segments, typically 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] Delivery of video content via streaming can be accomplished under a variety of models. In one model, users pay to view video programs, for example, by paying a fee for access to a library of media programs 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 present advertisements during or adjacent to the presentation of the program. In some models, advertisements are inserted at predetermined times during the video program, which may be referred to as "ad slots" or "ad breaks." With streaming video, media players may be configured to prevent client devices from playing the video without playing predetermined advertisements during designated ad slots.

[0095]

[0104] Referring to Figure 10, a diagram of an apparatus 1000 for viewing video content and advertisements is illustrated. In selected embodiments, the apparatus 1000 may include a processor (CPU) 1002 operatively coupled to a processor memory 1004, which holds binary-coded functional modules 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, such as modules for performing other operations described elsewhere herein.

[0096]

[0105] A bus 1014 or other communication components may support communication of information within the device 1000. The processor 1002 may be a specialized or dedicated microprocessor configured or operable to perform particular tasks in accordance with the features and aspects disclosed herein by executing machine-readable software code that defines those tasks. Processor memory 1004 (e.g., random access memory (RAM) or other dynamic storage device) may be connected to the bus 1014 or directly to the processor 1002 and may store information and instructions executed by the processor 1002. The memory 1004 may also store temporary variables or other intermediate information during the execution of such instructions.

[0097]

[0106] A computer-readable medium in storage device 1024 is connected to bus 1014 and may store static information and instructions for processor 1002; for example, storage device (CRM) 1024 may store modules 1006, 1008, 1010, and 1012 when apparatus 1000 is powered off, from which the modules may be loaded into processor memory 1004 when apparatus 1000 is powered on. Storage device 1024 may include a non-transitory computer-readable storage medium that holds information, instructions, or some combination thereof, for example, instructions that, when executed by processor 1002, configure or enable apparatus 1000 to perform one or more operations of the methods as described herein.

[0098]

[0107] A 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 the streaming system 900, via a router / modem 1026 and a wired or wireless connection. Alternatively or additionally, the device 1000 may include a transceiver 1018 connected to an antenna 1029, through which the device 1000 may communicate wirelessly 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. In another alternative, 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] Apparatus 1000 may be connected to a display unit 1028 (e.g., via bus 1014 and graphics processing unit 1020). Display 1028 may include any suitable configuration for displaying information to an operator of apparatus 1000. For example, 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 a user of apparatus 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 bus 1014 via user input port 1022 for communicating information and commands to apparatus 1000. In selected embodiments, input device 1030 may provide or support control over cursor positioning. Such cursor control devices, also referred to as pointing devices, may be configured as mice, trackballs, trackpads, touchscreens, cursor direction keys, or other devices for receiving or tracking physical movements and converting the movements into electrical signals indicative of cursor movement. The cursor control device may be incorporated into display unit 1028, for example, using a touch-sensitive screen. The cursor control device may communicate directional information and command selections to processor 1002 and control cursor movement on display 1028. The cursor control device may have two or more degrees of freedom, for example, allowing the device to specify a cursor position in a plane or three-dimensional space.

[0101]

[0110] As used in this description and throughout the claims that follow, the terms "a," "an," and "the" include plural references unless the context clearly dictates otherwise. Also, as used in this description and throughout the claims that follow, the meaning of "in" includes "in" and "on" unless the context clearly dictates otherwise.

[0102]

[0111] The above description illustrates various embodiments, along with examples of how aspects of some embodiments may be implemented. The above examples and embodiments should not be considered the only embodiments, but have been 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.

Claims

1. 1. A method comprising: receiving, by the computing device, 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; using, by the computing device, the list of ranked entities to determine an 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 a time dimension; outputting, by the computing device, information for displaying at least a portion of the entities in the electronic program guide based on the ordering of the entities; A method comprising:

2. generating the ranked list of entities based on a predictive model that ranks entities based on the personalized information; The method of claim 1 further comprising:

3. generating the ranked list of entities includes: Determining which entities are currently live; and ranking the entities that are live in the list of ranked entities; The method of claim 1 , comprising:

4. The method of claim 1 , wherein the ranked list of entities is determined from a linear schedule of live television programming.

5. the first interface includes entities in the ranked list of entities that are live from a linear schedule of live television programming; the first interface includes other entities that are available on demand; The method of claim 1.

6. The first interface in the first layout is displayed; an input for displaying the electronic program guide is received; the ranked list of entities used to display entities in the first interface is used to determine an ordering of the entities in the electronic program guide; The method of claim 1.

7. using the list of ranked entities to determine an ordering of the entities in the electronic program guide, determining channels associated with entities in the ranked list of entities; moving said channel to a corresponding priority slot in said electronic program guide based on the priority of said entity in said ranked list of entities; The method of claim 1 , comprising:

8. using the list of ranked entities to determine an ordering of the entities in the electronic program guide, determining additional entities for the channel associated with the entities in the ranked list of entities; adding the additional entity to the corresponding priority slot in the electronic program guide; The method of claim 7, comprising:

9. using the list of ranked entities to determine an ordering of the entities in the electronic program guide, determining a channel associated with each entity in the ranked list of entities; inserting each channel into a corresponding priority slot in said electronic program guide based on the priority of said entity in said ranked list of entities; The method of claim 1 , comprising:

10. using the list of ranked entities to determine an ordering of the entities in the electronic program guide, 2. The method of claim 1, comprising inserting the at least a portion of the entity into a slot in the electronic program guide designated with the highest priority.

11. using the list of ranked entities to determine an ordering of the entities in the electronic program guide, 10. The method of claim 1, comprising inserting the at least a portion of the entity into a time range in the electronic program guide designated for an entity that is currently live.

12. using the list of ranked entities to determine an ordering of the entities in the electronic program guide, determining additional entities for channels in the at least a portion of the entities in a future time range; inserting the additional entity into the electronic program guide during the future time range; The method of claim 11 , comprising:

13. 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 a user account; using the list of ranked entities to determine an ordering of entities in slots of an electronic program guide, wherein the slots of the electronic program guide display the entities in a second layout based on a time dimension; outputting information for displaying at least a portion of the entities in the electronic program guide based on the ordering of the entities; A non-transitory computer-readable storage medium containing instructions for controlling a computer system to be operable to perform the steps of:

14. 1. A method 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 currently live at the current time, the entities in the list of ranked entities being ordered according to 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; displaying, by the computing device, at least a portion of the entities in the ranked entity list in the electronic program guide, wherein the at least a portion of the entities are ordered based on the priority of the ranked entity list; A method comprising:

15. Displaying the at least a portion of the entity in the electronic program guide comprises:

15. The method of claim 14, comprising moving channels associated with entities in the list of ranked entities to corresponding priority slots in the electronic program guide based on the priority of the entities in the list of ranked entities.

16. Displaying the at least a portion of the entity in the electronic program guide comprises:

16. The method of claim 15, comprising 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.

17. Displaying the at least a portion of the entity in the electronic program guide comprises:

15. The method of claim 14, comprising displaying each channel associated with each entity in the list of ranked entities in a corresponding priority slot in the electronic program guide based on a priority of each respective entity in the list of ranked entities.

18. Displaying the at least a portion of the entity in the electronic program guide comprises:

15. The method of claim 14, comprising displaying the at least a portion of the entity in a slot in the electronic program guide designated with the highest priority.

19. Displaying the at least a portion of the entity in the electronic program guide comprises:

15. The method of claim 14, comprising displaying the at least a portion of the entity during a time range in the electronic program guide designated for the entity that is currently live.

20. Displaying the at least a portion of the entity in the electronic program guide comprises:

20. The method of claim 19, comprising displaying additional entities for channels in the at least a portion of the entities during a future time range in the electronic program guide.