In recent years there has been a move away from the traditional model of delivering media via broadcast TV or closed ecosystems like linear cable or satellite TV to Over the Top (OTT) media services which deliver content directly to consumers via the Internet. OTT media services are delivered through streaming platforms that bypass the traditional broadcast, satellite and cable platforms. The content delivered by the streaming platforms may include both video on demand and select live channels of content.
There are a number of different video formats used by the streaming platforms to deliver streaming content including MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH or DASH) and HTTP Live Streaming (HLS). Both DASH and HLS are adaptive bit rate techniques and work by dividing the stream of content into smaller segments delivered over HTTP. The segments are encoded before transmission by the streaming platform and decoded by the video/media player on the receiving device prior to display of the content.
Embodiments of the present invention provide techniques for identifying shows being streamed following a request from a streaming platform for additional content that is to be inserted into a stream break. Embodiments enable selection of appropriate content to be provided by a third party in response to the request even when the request fails to fully identify the show for which the additional content is needed.
In one embodiment, a computing device-implemented method to identify content being delivered by a separate streaming platform includes receiving at an additional content server a request for additional content suitable for insertion into a stream of content being delivered by the streaming platform to a user device where the request is accompanied by at least one of a genre and rating for the content being delivered by the streaming platform to the user device but is not accompanied by a name or identifier of the content being delivered by the streaming platform to the user device. The method also includes identifying an app on the user device which is receiving the content. The method further repeatedly downloads manifest files or playlists for streams currently available to the identified app. Additionally the method includes analyzing the manifest files or playlists to identify scheduled breaks in the streams and mapping a time window of the request against the scheduled breaks to identify possible programs in the streams that are currently available. Further, the method includes filtering a list of the possible programs based on at least one of the genre and rating to identify a filtered list of possible programs and delivering or facilitating delivery of additional content to the requesting streaming platform based on pre-determined criteria associated with an identified program when the filtered list identifies only a single program.
In another embodiment, a system for identifying content being delivered by a separate streaming platform includes a computing device that includes at least one processor, the computing device hosting a supply side platform. The supply side platform is configured to receive a request for additional content suitable for insertion into a stream of content being delivered by a streaming platform to a user device, the request accompanied by at least one of a genre and rating for the content being delivered by the streaming platform to the user device but not accompanied by a name or identifier of the content being delivered by the streaming platform to the user device. The supply side platform is further configured to identify an app on the user device which is receiving the content and repeatedly download manifest files or playlists for streams currently available to users of the identified app. The supply side platform is also configured to analyze the downloaded manifest files or playlists to identify upcoming scheduled breaks in the streams and map a time of the request against the upcoming scheduled breaks to identify possible programs in the streams that are currently available to which the request could apply based on the time of the request. The supply side platform is further configured to analyze a list of the possible programs based on the genre and rating to identify a filtered list of possible programs corresponding to the at least one of a genre and rating accompanying the request. The supply side platform is also configured to deliver or facilitate delivery of additional content to the requesting streaming platform based on pre-determined criteria associated with an identified program when the filtered list identifies only a single program. The system also includes a network-accessible source of additional content.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments of the invention and, together with the description, help to explain the invention. In the drawings:
The content being delivered by streaming platforms to a user's device may include breaks in the stream where additional content may be inserted for display. For example, the additional content may be relaxing videos such as nature scenes. The additional content may be public service announcements. Likewise the additional content may be additional information related to the program being shown in the stream. The additional content may also be advertisements inserted into the stream. The streaming platform may request this additional content from a 3rd party source. However, when requesting the additional content the streaming platform frequently will not fully identify the program in the stream currently being viewed by the user. This presents a problem for the 3rd party source of additional content who is seeking to provide appropriate additional content as some additional content may not be appropriate for particular programs and/or the additional content providers may have placed restrictions on where the additional content may be shown.
Embodiments of the present invention address this issue of determining appropriate content by providing techniques to identify the content a user is viewing (e.g.: a TV show or movie) by combining the incomplete data from a request for additional content from the streaming platform with other identified data. As used herein, the request data is incomplete in the sense that it doesn't fully identify the current content being viewed by the user with which the additional content is to be paired. To attempt to address this issue, embodiments use the information contained in the request in combination with other data listing the different streams/channels being provided by particular streaming apps. For example, in one embodiment, the other data may be gathered from a publicly available Electronic Programming Guide (EPG). The data that is provided in the request, such as the time of the request, and the genre and/or rating for the content being streamed, is compared to the EPG or other listing data on current video streams available to the streaming app of the user device receiving content. The comparison finds any channels on the particular streaming platform that are running a program at that time with that information (e.g. genre and/or rating). The manifest files or playlists associated with the identified streams are then examined to attempt to identify a channel within that subset of channels that has a scheduled break in the stream delivering the content that is near the time of the request. Manifest files and playlists are discussed in more detail further below. It should be appreciated that the techniques described herein provide a technical solution to a technical problem that exists only in distributed streaming environments as previous mechanisms for delivering content, such as conventionally providing content via cable TV providers, did not have to address the technical challenge of dynamically providing appropriate additional content while dealing with incomplete information regarding the show into which the additional content was to be inserted.
Currently, requests from publishers/streaming platforms for additional content do not include content data such as the show title, season, episode, or movie title. Publishers do not share this information with the additional content provider for various reasons such as economic and privacy reasons. The additional content provider on the other hand is seeking transparency to identify the content that the additional content is being paired with in order to ensure that appropriate content is provided in response to the request. In traditional linear/broadcast television, additional content providers providing content such as public service announcements, additional content related to the program and additional content in the form of advertisements are able to specify what programs they want to provide additional content against. With OTT media services, such as Free Ad Supported Television (FAST) services the additional content providers are not usually afforded this same opportunity. Embodiments address this issue by using the partial data accompanying the request for additional content in combination with other publicly available data to dynamically determine the additional content to be provided to the requesting publisher/streaming platform.
Each stream of content being transmitted by the streaming platform has an associated manifest file/playlist 106 (depending on the format) that includes metadata and other information about the set of segments making up the stream that are read by the media player on user device 110 in order to properly display the streamed content. Content publisher server 100 and/or streaming module 105 may also provide an Electronic Program Guide (EPG) 109 to user device 110 listing information about the current and upcoming scheduled content being delivered to an app from the streaming platform. It should be appreciated that in alternate embodiments EPG 109 may be made available to the user of user device 110 from a different network accessible location rather than being provided directly from content publisher server 100 and/or streaming module 105.
User device 110 is equipped with one or more processor(s) 112 and receives an encoded stream of file segments 107 of content 104 via network interface 113 for an app receiving FAST services. Received file segments 107 and associated manifest files/playlists 106 are provided to video/media player 114. Decoder 115 in video/media player 114 uses the information in the manifest files/playlists to decode file segments 107 so they may be properly displayed to a user on display 116. Display 116 may be wired or wirelessly coupled to user device 110 or integrated into user device for displaying the decoded streamed content to a user. It will be appreciated that user device 110 may take many forms including, without limitation, smartphones, tablets, smart TVs, laptops, desktop computers and Internet connected TVs connected to network 130 in various ways including via the use of connectable network devices such as Roku® devices and Amazon Fire® sticks.
Network host 20 hosts additional content server 120 and includes one or more processor(s) 122. Additional content server 120 has access to, assists in the provision of, and/or stores additional content 124 and receives a request for additional content via network interface 123. In some embodiments, additional content server may include a Supply Side Platform (SSP). Additional content 124 may be stored remotely from additional content server 120 such as on one or more network-accessible remote locations, 130A, 130B and 130C, each of which may be equipped with one or more processors 132A, 132B . . . 132N and a network interface 133A, 133B . . . 133N. Additional content 124 may be provided by network-accessible remote locations, 130A, 130B and 130C and/or by additional content server 120. In some embodiments remote locations 130A, 130B and 130C may be an Ad Exchange, Ad Network or Demand Side Platform (DSP). Additional content 124 may be, without limitation, public service announcements, nature videos (e.g. relaxing nature scenes), additional information related to specific streaming content, and/or advertisements. In some embodiments, additional content server 120 includes analysis module 125. Embodiments utilize analysis module 125, which includes executable software instructions, to attempt to identify current content being streamed to a user by a streaming platform requesting additional content so that appropriate additional content may be displayed during stream breaks of that current content. Analysis module 125 performs at least some of the steps of
Content publisher server 100 and additional content server 120 may be implemented using hardware or software located on one or more network hosts that request/process requests for additional content sent over network 130. Content publisher server 100 and additional content server 120 may be provided via a computing platform that includes one or more processors such as, but not limited to a central processing unit (CPU), graphical processing unit (GPU) and volatile memory such as random access memory (RAM). The computing platform may be, but is not limited to, a server, desktop computer, laptop computer, smartphone, mobile computing device, etc. and may be equipped with one or more flash devices. The computing platform may also include non-volatile storage such as a hard drive holding an operating system (OS) and non-volatile Read Only Memory (ROM) which may hold platform firmware and other data or instructions.
Adaptive bit rate streaming is a streaming technique that dynamically adjusts the presentation of video or audio data based on network conditions and device resources. Adaptive bit rate streaming first prepares the content for streaming by encoding the same content into different files at multiple different bitrates. Each file is split into smaller segments so the receiving video/media player can select an appropriate quality based on network conditions. A manifest file that describes the available stream segments and their bitrates is downloaded by the client device which then requests segments of an appropriate stream for the current network conditions. The media player will frequently switch between different bitrates as conditions change. This adaptive approach reduces buffering which allows the video/media player to deliver an optimal experience for the current conditions.
Dynamic Adaptive Streaming over HTTP (DASH) was developed by the Moving Pictures Expert Group and for that reason is also referred to as MPEG-DASH. DASH is an international standard widely supported on client devices. The content in a multimedia file is partitioned into one or more segments. The segments are encoded at different bitrates and are compressed for delivery over HTTP to a receiving client device. A media presentation description (MPD) document (an XML document) provides information for a receiving media player about the available media content including the time of the media presentation, the different types of content, the different bitrates available and URLs to different media segments. The client uses the MPD information to request the transmission of appropriate audio or video segments.
HTTP Live Streaming (HLS) is a streaming communications protocol that was initially developed by Apple™ but is now supported by many devices beyond just the Apple™ ecosystem. Content is broken down into media segments which are stored as MPEG-TS or MP4 files. The segmenting of the content is performed at multiple bitrates by a segmenter/packager application (hereafter “segmenter”). The segmenter generates a set of playlist files that describe the media segments. These playlist files may be stored in the M3U8 format with each playlist associated with a specific bitrate and containing an URL to the segments for that specific bitrate.
The streams of segments that are delivered to the client media player may include markers, such as, but not limited to SCTE or cuetone markers indicating positions at which additional content may be inserted into the stream. As one example, SCTE-35 markers may be used to identify points where additional content can be inserted into media that is being delivered. SCTE-35 markers are attached to video stream samples as sc35 metadata. For HLS the SCTE-35 markers may be added to the playlist (M3U8) for each variant stream. For MPEG-DASH the markers may be added to the MPD as an eventstream element. Similarly cuetones are sub-audible tones inserted in the stream that indicate points for insertion of content. In other embodiments, an ad break may be identified through the use of discontinuity tags or detecting changes in the URL (from content CDN to SSAI CDN). In one embodiment video, can alternatively be analyzed using machine learning to detect changes in the scene and other factors that could indicate that it's a location where an ad is shown.
Embodiments may identify appropriate additional content for insertion into streaming content despite an initial request for the additional content including incomplete identifying information. For example in the case of a request for an advertisement, publishers/streaming platforms may send advertisement bid requests to a Supply Side Platform (SSP) for advertisements to be displayed during an upcoming stream ad break in a stream being delivered to a user device. The bid requests may include information about the app, sometimes including device info, user agent, and other signals that advertisers are interested in for targeting. However, publishers generally do not include content related information specific to what channel or show the user is watching. Often the only content related information is the genre (e.g. Action, Documentary, Comedy, Romance, etc.) and/or rating (e.g. G, PG, R, NR) of the program being watched. However, streaming platforms offering FAST services (e.g. Pluto TV™, The Roku Channel™, TUBI™, etc.) often have a publicly available Electronic Programming Guide (EPG) and embodiments may use its information, or equivalent sources of information, to supplement the request information. These FAST services resemble cable television, with an offering of channels with pre-scheduled content. The EPG is the guide to those channels indicating what is scheduled on each channel throughout the course of the day.
Embodiments leverage incomplete information in a request for additional content (incomplete in that it doesn't specifically indicate the program against which the additional content will be displayed) such as by leveraging the genre and/or rating information contained in a request along with analysis of the EPG in order to identify the specific program being viewed on the user device that will eventually receive the additional content. As noted above, in some embodiments, the request for additional content may be a request for an advertisement.
Continuing with the example of
With respect to the example in
It should be appreciated that the vast majority of advertisements that people see online or when receiving FAST services are programmatically generated via programmatic bid requests and these bid requests frequently include an auction process. Publishers make their ad space inventory available with the aid of SSPs. The SSP provides information about the available ad space from the bid request coupled with any additional information known about the user gathered either from the bid request or gathered from external sources. Advertisers use Demand Side Platforms (DSPs) to purchase the available ad space setting various criteria in the form of what they are willing to pay and what attributes are desired for a target audience. In some cases, the advertisers may want ads shown against a specific program and in other cases they may want to avoid a specific program if it is not consistent for example with the brand being advertised in the creative. Ad Exchanges work as intermediaries between the SSPs and DSPs. Embodiments of the present invention provide an analysis module that provides additional information in the form of determining specific program identity that can be added to the bid request. In some embodiments, the analysis module may be part of the SSP which specifically identifies the program before attempting to process the request. In another embodiment, the analysis module may be part of an Ad Exchange that has received a bid request from an SSP without the specific program being identified and supplements the information from the bid request by adding the program identity to the request information e.g. before conducting an auction.
In some embodiments, further data can be queried once channel and show information is known including detailed descriptions of the program, actors and directors, ratings, and other metadata that is available through third party data sources. This channel and show information and associated metadata can then also be targeted for advertising by including the information in the bid request.
As previously discussed, in some embodiments the request for additional content may be a request for an advertisement to be inserted into an ad break in a stream being delivered by the streaming platform.
Portions or all of the embodiments of the present invention may be provided as one or more computer-readable programs or code embodied on or in one or more non-transitory mediums. The mediums may be, but are not limited to a hard disk, a compact disc, a digital versatile disc, a flash memory, a PROM, a RAM, a ROM, or a magnetic tape. In general, the computer-readable programs or code may be implemented in many computing languages.
Since certain changes may be made without departing from the scope of the present invention, it is intended that all matter contained in the above description or shown in the accompanying drawings be interpreted as illustrative and not in a literal sense. Practitioners of the art will realize that the sequence of steps and architectures depicted in the figures may be altered without departing from the scope of the present invention and that the illustrations contained herein are singular examples of a multitude of possible depictions of the present invention.
The foregoing description of example embodiments of the invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, while a series of acts has been described, the order of the acts may be modified in other implementations consistent with the principles of the invention. Further, non-dependent acts may be performed in parallel.
This application claims the benefit of, and priority to, U.S. Provisional Patent Application No. 63/705,826, entitled “System and Method for Identifying Contextual Information in Streaming Content”, filed Oct. 10, 2024, and to U.S. Provisional Patent Application No. 63/544,788, filed Oct. 19, 2023, entitled “System and Method for Streaming Content Identification”, the contents of both applications incorporated herein by reference in their entirety.
| Number | Date | Country | |
|---|---|---|---|
| 63705826 | Oct 2024 | US | |
| 63544788 | Oct 2023 | US |