US-12621515-B2 - Methods and systems for generating and providing program guides and content
Abstract
A prediction model is generated for a user using data regarding how the user responded to different positionings of items of ancillary content. The prediction model is used to determine respective positionings of a plurality of items of ancillary content. The items of ancillary content are streamed to and displayed by a user device as interstitial content using the determined respective positionings. Frames of an item of primary content may be analyzed to identify appropriate interstitial insertion points and to generate labels. The labels may be utilized by a remote system to select and stream interstitial content for the insertion points. The user's location may be determined and used to determine a maximum amount of ancillary content for a corresponding time period. Different amounts of ancillary content for a given time period may be provided to different users based on a registration state.
Inventors
- Vibol C. Hou
- Spencer Adam Shanson
- Pavlo Kalymkov Vasilievich
- Jonathan Michael Jesperson
- Adrian Chiu
- Steven Ernest Riedl
- Upendra Mohan Sharma
- Dinh Khang Duong
- Clayton Andrew Marshall
Assignees
- Pluto Inc.
Dates
- Publication Date
- 20260505
- Application Date
- 20241218
Claims (20)
- 1 . A system, comprising: a network interface; at least one processing device; non-transitory memory storing programmatic code that when executed by the at least one processing device, causes the system to: generate, for a first user, a first prediction model, the first prediction model generated based at least in part on a determination, with respect to a plurality of different positionings in time of items of ancillary content relative to corresponding reference time points, of: how quickly the first user fast forwarded through, skipped, and/or navigated away from items of ancillary content; access, using the network interface, data that enables identification of the first user; use the identification of the first user to access associated user data; determine a first number of items of ancillary content that are to be presented during streaming of a first item of primary content to a first user device of the first user; select, using at least the accessed user data, a prediction model from a pool of prediction models, the pool of prediction models comprising prediction models, including the first prediction model, configured to generate predictions of user responses to different positionings in time of ancillary content with respect to items of primary content; execute the prediction model, selected from the pool of prediction models, to generate predictions of user responses to a plurality of different positionings in time of the first number of items of ancillary content to: determine respective positionings in time of the first number of items of ancillary content based at least in part on the generated predictions of user responses to the plurality of different positionings in time of the first number of items of ancillary content; based at least in part on the determined respective positionings in time of the first number of items of ancillary content, enable at least a portion of the first number of items of ancillary content to be streamed to and displayed by the first user device as interstitial content using the determined respective positionings in time.
- 2 . The system as defined in claim 1 , wherein the at least one processing device comprises a plurality of cores arranged in a grid configured to perform one or more operations in a synchronized manner, wherein a given core comprises a cache, a tensor processor, and arithmetic logic units, the at least one processing device comprising silicon.
- 3 . The system as defined in claim 1 , wherein the system is configured to: monitor at least one response of the first user to one or more items of ancillary content displayed using the determined respective positionings in time by the first user device; based at least in part on the monitored at least one response of the first user to the displayed one or more items of ancillary content, displayed using the determined respective positionings in time, enhance the prediction model, wherein the prediction model comprises nodes, the nodes associated with node weights, wherein enhancing the prediction model comprises adjusting one or more node weights; and use the enhanced prediction model to enable a second number of items of ancillary content to be streamed to and displayed by the first user device in accordance with second respective positionings in time.
- 4 . The system as defined in claim 1 , wherein determining the first number of items of ancillary content that are to be presented during streaming of the first item of primary content to a first user device further comprises: determine a location of the first user device; determine a maximum ancillary content load for a first amount of time based at least in part on the location of the first user device; and use the determined maximum ancillary content load for the first amount of time in determining the first number of items of ancillary content that are to be presented during streaming of the first item of primary content to the first user device.
- 5 . The system as defined in claim 1 , wherein determining the first number of items of ancillary content that are to be presented during streaming of the first item of primary content to a first user device further comprises: determine that the first user is a registered user; based at least on the determination that the first user is a registered user, determine the first number of items of ancillary content that are to be presented during streaming of the first item of primary content to the first user device; determine that a second user is not a registered user; and based at least on the determination that the second user is not a registered user, determine a second number of items of ancillary content that are to be presented during streaming of the first item of primary content to a second user device associated with the second user, the second number greater than the first number.
- 6 . The system as defined in claim 1 , wherein the system is configured to: determine that a second user, associated with a second user device, is a registered user; and based at least on the determination that the second user is a registered user, inhibit the streaming of at least one item of ancillary content to the second user device.
- 7 . The system as defined in claim 1 , wherein the system is configured to: access a second item of primary content, the second item of primary content comprising a first plurality of frames; analyze the first plurality of frames and select at least a first ancillary content insertion breakpoint based at least in part on detected changes in sound, color, texture, movement, and/or audio; analyze a plurality of frames adjacent to the first ancillary content insertion breakpoint to identify a mood and/or object in the plurality of frames adjacent to the first ancillary content insertion breakpoint; provide one or more keywords associated with the identified object and/or mood to a remote system that enables the remote system to select a corresponding item of ancillary content; and enable the corresponding item of ancillary content to be streamed to the first user device at the ancillary content insertion breakpoint.
- 8 . The system as defined in claim 1 , wherein the system is configured to: access a second item of primary content, the second item of primary content comprising a first plurality of frames; analyze the first plurality of frames to select ancillary content insertion breakpoints based at least in part on detected changes in sound, color, texture, movement, and/or audio; and cause at least one item of ancillary content to be streamed to and displayed by at least one device at a corresponding ancillary content insertion breakpoint in the second item of primary content.
- 9 . The system as defined in claim 1 , wherein the system is configured to: access a second item of primary content, the second item of primary content comprising a first plurality of frames; analyze at least a first subset of the first plurality of frames and identify an object and/or a mood of the first subset of the first plurality of frames; and provide one or more keywords associated with the identified object and/or mood to a remote system that enable the remote system to select a matching item of ancillary content; and enable the matching item of ancillary content to be streamed to the first user device proximate to a frame of the first subset of the first plurality of frames.
- 10 . The system as defined in claim 1 , wherein the system is configured to: analyze a first plurality of frames of the item of primary content to select ancillary content insertion breakpoints based at least in part on detected changes in sound, color, texture, movement, and/or audio, wherein enabling at least a portion of the first number of items of ancillary content to be streamed to and displayed by the first user device as interstitial content using the determined respective positionings in time further comprises adjusting a first of the determined respective positionings in time so as to be at a closest ancillary content insertion breakpoint selected based at least in part on detected changes in sound, color, texture, movement, and/or audio.
- 11 . A computer-implemented method comprising: generating, for a first user, a first prediction model, the first prediction model generated based at least in part on a determination, with respect to different positionings in time of items of ancillary content relative to corresponding reference time points, of: how quickly the first user fast forwarded through, skipped, and/or navigated away from items of ancillary content; determining a first number of items of ancillary content that are to be presented during streaming of a first item of primary content to a first user device of the first user; select a prediction model from a pool of prediction models, the pool of prediction models comprising prediction models, including the first prediction model, configured to generate predictions of user responses to different positionings in time of ancillary content with respect to digital programs; execute the prediction model, selected from the pool of prediction models, to generate predictions of user responses to a plurality of different positionings in time of the first number of items of ancillary content to: determine respective positionings in time of the first number of items of ancillary content based at least in part on the generated predictions of user responses to the plurality of different positionings in time of the first number of items of ancillary content; and based at least in part on the determined respective positionings in time of the first number of items of ancillary content, enabling at least a portion of the first number of items of ancillary content to be streamed to and displayed by the first user device as interstitial content using the determined respective positionings in time.
- 12 . The computer-implemented method as defined in claim 11 , wherein the selected prediction model is executed using at least one processing device comprising a plurality of cores arranged in a grid configured to perform one or more operations in a synchronized manner, wherein a given core comprises a cache, a tensor processor, and arithmetic logic units, the at least one processing device comprising silicon.
- 13 . The computer-implemented method as defined in claim 11 , the method further comprising: monitoring at least one response of the first user to one or more items of ancillary content displayed using the determined respective positionings in time by the first user device; based at least in part on the monitored at least one response of the first user to the displayed one or more items of ancillary content, displayed using the determined respective positionings in time, enhancing the prediction model, wherein the prediction model comprises nodes, the nodes associated with node weights, wherein enhancing the prediction model comprises adjusting one or more node weights; and using the enhanced prediction model to enable a second number of items of ancillary content to be streamed to and displayed by the first user device in accordance with second respective positionings in time.
- 14 . The computer-implemented method as defined in claim 11 , wherein determining the first number of items of ancillary content that are to be presented during streaming of the first item of primary content to a first user device further comprises: determining a location of the first user device; determining a maximum ancillary content load for a first amount of time based at least in part on the location of the first user device; and using the determined maximum ancillary content load for the first amount of time in determining the first number of items of ancillary content that are to be presented during streaming of the first item of primary content to the first user device.
- 15 . The computer-implemented method as defined in claim 11 , wherein determining the first number of items of ancillary content that are to be presented during streaming of the first item of primary content to a first user device further comprises: determining that the first user is a registered user; based at least on the determination that the first user is a registered user, determining the first number of items of ancillary content that are to be presented during streaming of the first item of primary content to the first user device; determining that a second user is not a registered user; and based at least on the determination that the second user is not a registered user, determining that a second number of items of ancillary content are to be presented during streaming of the first item of primary content to a second user device associated with the second user, the second number greater than the first number.
- 16 . The computer-implemented method as defined in claim 11 , the method further comprising: determining that a second user, associated with a second user device, is a registered user; and based at least on the determination that the second user is a registered user, inhibiting the streaming of at least one item of ancillary content to the second user device.
- 17 . The computer-implemented method as defined in claim 11 , the method further comprising: accessing a second item of primary content, the second item of primary content comprising a first plurality of frames; analyzing the first plurality of frames and select at least a first ancillary content insertion breakpoint based at least in part on detected changes in sound, color, texture, movement, and/or audio; analyzing a plurality of frames adjacent to the first ancillary content insertion breakpoint to identify a mood and/or object in the plurality of frames adjacent to the first ancillary content insertion breakpoint; providing one or more keywords associated with the identified object and/or mood to a remote system that enables the remote system to select a corresponding item of ancillary content; and enabling the corresponding item of ancillary content to be streamed to the first user device at the ancillary content insertion breakpoint.
- 18 . The computer-implemented method as defined in claim 11 , the method further comprising: accessing a second item of primary content, the second item of primary content comprising a first plurality of frames; analyzing the first plurality of frames to select ancillary content insertion breakpoints based at least in part on detected changes in sound, color, texture, movement, and/or audio; and causing at least one item of ancillary content to be streamed to and displayed by at least one device at a corresponding ancillary content insertion breakpoint in the second item of primary content.
- 19 . The computer-implemented method as defined in claim 11 , the method further comprising: accessing a second item of primary content, the second item of primary content comprising a first plurality of frames; analyzing at least a first subset of the first plurality of frames and identifying an object and/or a mood of the first subset of the first plurality of frames; providing one or more keywords associated with the identified object and/or mood to a remote system that enable the remote system to select a matching item of ancillary content; enabling the matching item of ancillary content to be streamed to the first user device proximate to a frame of the first subset of the first plurality of frames; and causing at least one item of ancillary content to be streamed to and displayed by at least one device at a corresponding ancillary content insertion breakpoint in the second item of primary content.
- 20 . The computer-implemented method as defined in claim 11 , the method further comprising: analyzing a first plurality of frames of the item of primary content to select ancillary content insertion breakpoints based at least in part on detected changes in sound, color, texture, movement, and/or audio, wherein enabling at least a portion of the first number of items of ancillary content to be streamed to and displayed by the first user device as interstitial content using the determined respective positionings in time further comprises adjusting a first of the determined respective positionings in time so as to be at a closest ancillary content insertion breakpoint selected based at least in part on detected changes in sound, color, texture, movement, and/or audio.
Description
INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS Any and all applications for which a foreign or domestic priority claim is identified in the Application Data Sheet as filed with the present application are hereby incorporated by reference under 37 CFR 1.57. COPYRIGHT RIGHTS A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the reproduction by any one of the patent document or the patent disclosure, as it appears in the patent and trademark office patent file or records, but otherwise reserves all copyright rights whatsoever. BACKGROUND Field of the Invention The present invention is related to the identification, generation, organization, and distribution of content. Description of the Related Art Video sharing sites have become ever more popular. Users upload videos to a video sharing website. Other users can then navigate to and within the website to locate videos of interest. Users then watch the videos independent of other users, that is, users do not watch the videos on a schedule, but rather at whatever random time a given user accesses the video. Thus, using conventional techniques, it is difficult for users to locate videos of interest. Further, video viewing is an isolating experience, where users are viewing videos at different times, and often, because of the difficulty in locating content, friends infrequently view the same videos. In addition, video streaming services (e.g., of movies, scripted episodic shows, unscripted shows, live sporting events, concerts, etc.) have become ever more popular. Certain video streaming services provide on-demand content, while others provide linear programmed streaming content, where video content is streamed to viewers in accordance with an electronic program guide schedule. However, particularly in the instance of linear programmed streaming content, it is difficult to provide customized ancillary content experiences to users in a computer resource efficient manner. For example, using conventional approaches, it may not be possible or practical (from a computer resource utilization point of view or latency point of view) to ensure that a content viewer that is rapidly switching among channels of programmed streaming primary content (e.g., a movie, television episode, a program assembled from video clips, etc.) is consistently presented with the appropriate ancillary content as interstitials (e.g., video clips of a director of the primary content, a quiz regarding the primary content, or other content that may be of interest to the viewer) and is not inadvertently presented with a repeat of interstitial content that had just been viewed by the viewer. Further, technical challenges are posed in synchronizing content being streamed according to a published streaming schedule. Yet further, maintaining content streaming according to a published streaming schedule for large numbers of target devices may conventionally require an inordinate amount of memory, processor, and network utilization. SUMMARY The following presents a simplified summary of one or more aspects in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated aspects, and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that is presented later. It is understood that the various aspects and features described herein may be used together, separately, or in any combination. An aspect of the present disclosure relates to systems and methods configured to manage streaming video content. A first time length specification for a content pod is accessed. If a determination is made that a response to a request for ancillary content of a duration corresponding to the first time length of the content pod includes ancillary content of insufficient duration to populate the first time length of the content pod, the content pod time length is reduced. Ancillary content items associated with the response to the request are streamed to a user device as part of a streaming channel comprising primary content having scheduled start times. A primary content item, having a scheduled start time, is streamed to the user device after the items of ancillary content, and earlier than the scheduled start time of the item of primary content. An aspect of this disclosure relates to systems and methods for receiving over a network from a first user terminal data that enables identification of the first user, accessing program information for a first digital program comprising video content, determining how many interstitials are to be presented during a playback of the first digital program, selecting a prediction model, executing the prediction model to generate